1

我已经在 Xcode 中配置了权利,但它们没有被放入已编译的应用程序包中。我需要做一些额外的步骤吗?

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

我已经在 Xcode 中配置了 App Groups,我在 plist 中看到了$Extension.entitlements它们$ParentApp.entitlements

但是,在构建的产品中$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

4

1 回答 1

0

神奇的是,它在以下之后开始工作:

  • 我已替换$(TeamIdentifierPrefix)为实际标识符
  • 到处删除DerivedData文件夹并重建所有内容
于 2015-07-05T14:59:47.547 回答