2

由于 Apple 为在 Mac App Store 之外分发的应用程序引入了新的公证流程,当我尝试提交通过 CocoaPods 安装了 Sparkle 框架的公证申请时,我收到了这个错误。

强化运行时错误

该错误首先出现在我的应用程序(帮助应用程序和其他框架)中包含的所有包中,但是在我通过项目编辑器启用 Hardened Runtime 后,除了这两个提到的 Sparkle 包之外,它们都消失了。

启用强化运行时

我不太了解这个新公证的指导方针,因为它刚刚发布,我已经看过WWDC 2018关于它的演示文稿并且找不到任何其他文档。

任何想法如何为 Sparkle 的 Autoupdate.app 和 fileop 启用强化运行时?还是 Sparkle 不可能像启用沙盒一样,因为自动更新过程需要访问其他应用程序?

4

1 回答 1

3

Sparkle 的当前版本 1.22.0rc1 启用了“强化运行时”构建选项,但如果您只是将它包含在您的应用程序中,Apple 的服务仍然会拒绝它。编译时也没有用于 fileop 的强化运行时选项。

但是你无论如何都可以使用它,不需要重建它。只需将运行脚本添加到您的构建阶段,如下所示:

构建阶段

这是脚本(来自GitHub 讨论):

LOCATION="${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}"

# By default, use the configured code signing identity for the project/target
IDENTITY="${CODE_SIGN_IDENTITY}"
if [ "$IDENTITY" == "" ]
then
# If a code signing identity is not specified, use ad hoc signing
IDENTITY="-"
fi
codesign --verbose --force --deep -o runtime --sign "$IDENTITY" "$LOCATION/Sparkle.framework/Versions/A/Resources/AutoUpdate.app"
codesign --verbose --force -o runtime --sign "$IDENTITY" "$LOCATION/Sparkle.framework/Versions/A"
于 2019-09-15T05:58:08.260 回答