【问题标题】:Xcode 5 + Sparkle + Code SigningXcode 5 + Sparkle + 代码签名
【发布时间】:2013-11-13 18:03:39
【问题描述】:

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

解压存档时出错

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

这是一个非 MAS 应用程序,我使用我的 Developer ID 应用程序证书对所有内容进行签名。我可以在启用 Gatekeeper 的情况下运行该应用程序(spctl -a -v 说:已接受),我可以手动解压缩并启动它,然后出现正确的消息,所以没有问题。

与旧版本的不同之处在于,这是我在新 Mac 上构建的第一个应用程序版本,我在 Xcode 中添加了我的开发者 ID,并获得了我需要的所有证书。我认为 Xcode 创建了新的,但这不应该是一个问题,我只是使用新的。我不知道这是否也会导致错误。有人知道更多吗?谢谢。

顺便说一句:当我选择“开发人员 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 服务的线路,我需要它吗?我想我的应用中没有使用 xpc 服务。

【问题讨论】:

    标签: xcode cocoa code-signing sparkle


    【解决方案1】:

    这是您在 Mavericks 下构建的第一个版本吗? 如果是,则可能是因为 Mavericks 要求对应用程序的所有嵌入式捆绑包进行签名。 我遇到了这个问题并找到了解决方案:OS X app update issue with Sparkle under Mavericks and XCode 5

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

    【讨论】:

    • 添加了脚本。我需要 xpc 服务吗?
    【解决方案2】:

    使用相同的“新”证书/代码签名设置进行新更新后,问题就消失了。我建议不要像我那样经常更改证书,也许当我创建新证书时出了点问题,Sparkle 不喜欢那样。

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

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      相关资源
      最近更新 更多