Xcode 5 + Sparkle +代码签名

时间:2013-11-13 18:03:39

标签: xcode cocoa code-signing sparkle

我在我的应用程序中使用Sparkle并通过运行shell脚本构建阶段签署框架,该工作正常,没有构建错误。问题是,没有通过Sparkle工作的更新,更新程序说:

  

解压缩档案时发生错误

错误的代码签名是否可能导致此错误?我很确定它不是Sparkle错误,RSS xml文件是100%正确的。更新旧版本也有效。

这是一个非MAS应用程序,我使用我的开发者ID应用程序证书来签署所有内容。我可以使用已启用的Gatekeeper运行应用程序(spctl -a -v表示:已接受),我可以手动解压缩并启动它并显示正确的消息,因此没有问题。

与旧版本的区别在于,这是我在新Mac上构建的第一个应用版本,我在Xcode中添加了我的开发者ID,并且已经收到了我需要的所有证书。我认为Xcode创建了新的,但这不应该是一个问题imho,我只是使用新的。我不知道这是否也会导致错误。有人知道更多吗?感谢。

btw:当我选择“开发者ID”进行代码签名时,然后设置代码签名  在我的Dev ID的构建设置视图中,一般视图中的单选按钮会跳回“无”。

编辑:脚本

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"

因此XPC服务没有线路,我需要它吗?我想我的app中没有使用xpc服务。

2 个答案:

答案 0 :(得分:0)

这是你在Mavericks下建立的第一个版本吗? 如果是的话,它可能来自于Mavericks需要签署应用程序的所有嵌入式捆绑包的事实。 我遇到了这个问题并找到了解决方案:OS X app update issue with Sparkle under Mavericks and XCode 5

你的shell脚本是什么样的?你说你签了Sparkle框架,你也签了XPC服务吗?

答案 1 :(得分:0)

使用相同的' new'进行新的更新后证书/代码签名设置问题消失了。我建议不要像我一样经常更改证书,也许在我创建新证书时出错了,而Sparkle并不喜欢这样。

我没有使用XPC服务,只是您在上面看到的脚本。我没有更改脚本或app cast url / feed等,所以我不确切地知道问题是什么,但现在一切似乎都很好。