我已在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
中的共享目录。
答案 0 :(得分:0)
奇迹般地,它开始起作用了:
$(TeamIdentifierPrefix)
替换为实际标识符DerivedData
个文件夹并重建所有内容