Question

I use Sparkle in my app and sign the framework via a run shell script build phase, which works fine, no build errors. The problem is, no updates via Sparkle work, the updater says:

an error occurred while extracting the archive

Is it possible that wrong code signing could cause this error? I'm quite sure it's not a Sparkle error, the RSS xml file is 100% correct. Updating older versions works, too.

It's a non MAS App and I use my Developer ID Application certificate to sign everything. I can run the app with enabled Gatekeeper (spctl -a -v says: accepted), I can unzip it manually and start it and the right message appears, so no problems.

The difference to older versions is, that this is the first app version I built on my new Mac, I added my Developer ID in Xcode and have received all certificates I need. I think Xcode created new ones, but this shouldn't be a problem imho, I just use the new ones. I don't know if this could cause the error, too. Does anybody know more about it? Thanks.

btw: when I select "Developer ID" for code signing and afterwards set the code signing in the build settings view to my Dev ID, too, the radio button in the general view jumps back to "None".

EDIT: the script

LOCATION="${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}"
IDENTITY="Developer ID Application: Name"
codesign --verbose --force --sign "$IDENTITY" "$LOCATION/Sparkle.framework/Versions/A"
codesign --verbose --force --sign "$IDENTITY" "$LOCATION/ShortcutRecorder.framework/Versions/A"

So there's no line for XPC services, do I need it? I think I don't use xpc services in my app.

Was it helpful?

Solution 2

After a new update with the same 'new' certificates/code signing settings the problem is gone. I recommend not to change the certificates as often as I did, perhaps something went wrong when I created the new ones and Sparkle didn't like that.

I don't use the XPC Service, just the script u see above. I didn't change the script or the app cast url/feed etc., so I don't know exactly what the problem was, but everything seems to be fine now.

OTHER TIPS

Is it the first version you build under Mavericks? If yes, it can comes from the fact that Mavericks requires all embedded bundles of an app to be signed. I had this problem and found that solution : OS X app update issue with Sparkle under Mavericks and XCode 5

What does your shell script look like? You said you signed the Sparkle framework, and did you also sign the XPC Service?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top