我编写了一个使用 CloudKit 的 mac 应用程序,自从我升级到 Sierra 和 XCode 8 后,该应用程序将成功构建,但是当我单击“运行”时 Xcode 不会启动该应用程序。
如果我进入 Derived Data 文件夹并手动双击我的应用程序以启动它,它会立即崩溃并在错误报告中显示以下内容:
Time Awake Since Boot: 12000 seconds
Time Since Wake: 6500 seconds
System Integrity Protection: enabled
Crashed Thread: 0
Exception Type: EXC_CRASH (Code Signature Invalid)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace CODESIGNING, Code 0x1
有趣的是,如果我将应用程序存档并导出开发者 ID 签名的应用程序,导出的构建会成功签名并且可以完美运行。
此外,如果我进入功能选项卡并关闭 iCloud 功能,该应用程序将在 XCode 中成功运行。
每当我在 DerivedData 文件夹中的应用程序上运行 spctl 时,无论我是否启用或禁用了 iCloud,我总是得到这个:
spctl --assess --verbose=4 MyApp.app
MyApp.app: rejected
在 XCode 的“常规”选项卡中,我将其设置为“自动管理签名”,据我所知,我的所有证书都是有效的。
不太确定在这里做什么。我什至尝试过完全禁用 Gatekeeper,但仍然没有运气。