尝试设置Keychain共享后代码签名问题和崩溃

时间:2014-12-03 18:36:01

标签: macos keychain

我正在开发一款适用于Mac OS的应用程序,它包含三个二进制文件:

  1. 主应用程序,将安装在Applications文件夹中。
  2. 小部件(适用于OS X Yosemite)
  3. 一个LoginItem,用于监视后台的某些内容(类似守护进程,始终在运行)
  4. 所有三个二进制文件都使用相同的OAuth令牌连接到某个Web服务。令牌由主应用程序检索(在用户登录服务后首次运行)并存储在系统的钥匙串中。

    为了确保应用的其他两个部分也可以访问相同的令牌,我正在尝试设置Keychain共享。在Apple的Developer Portal中,我创建了三个App Store Provisioning配置文件,每个配置文件对应一个二进制文件。所有这些都使用相同的开发人员证书(“3rd Party Mac Developer Application”)进行签名。

    在这种情况下,没有任何二进制文件会在我的开发系统上运行,并引用“Code Signature Invalid”。此外,在系统控制台中,taskgated会写入以下消息:“killed [app] because its use of the keychain-access-groups entitlement is not allowed (error code -67050)”。

    在Xcode的每个目标的功能页面中,没有任何错误地启用了Keychain共享功能,这是值得的。

    如何解决此问题?我唯一想到的就是禁用Keychain共享,但这需要用户在第一次运行窗口小部件时单击(Always)Allow。

    另一种解决方案是完全消除钥匙串,但将OAuth令牌存储在NSUserDefaults等不安全的地方是不可取的。我找不到钥匙链的安全替代品,如果它起作用,我认为这是最好的解决方案。

0 个答案:

没有答案