如何确保应用OS X app权利?

时间:2015-07-03 23:50:52

标签: xcode macos appstore-sandbox code-signing-entitlements

我已在Xcode中配置了权利,但它们并未放入已编译的应用包中。我还需要做一些额外的步骤吗?

我正在编写OS X"开发者ID"签名应用程序(不是用于AppStore),并且能够实现与之共享首选项的扩展程序我需要将它们放在同一个应用程序组中的父应用程序。

我已在Xcode中配置了应用组,我在$Extension.entitlements$ParentApp.entitlements plist中看到了它们。

但是,在构建的产品中$Extension.app/Contents/_CodeSignature/CodeEntitlements类似于没有配置组的默认权利文件,而在父应用中,此文件根本不存在。

我甚至尝试使用明确的权利文件再次签署应用程序:

codesign --force --entitlements $ParentApp.entitlements -s "Developer ID" \
   Build/Products/Debug/$ParentApp.app

但同样,它并没有被添加到$ParentApp.app/Contents/_CodeSignature/CodeEntitlements

在运行时,父应用和扩展程序似乎不在同一个应用组中:他们将自己的偏好([NSUserDefaults…initWithSuiteName:teamIdEtc])写入~/Library/Containers中自己的子目录,而不是~/Library/Group Containers中的共享目录。

1 个答案:

答案 0 :(得分:0)

奇迹般地,它开始起作用了:

  • 我已将$(TeamIdentifierPrefix)替换为实际标识符
  • 随处删除DerivedData个文件夹并重建所有内容