Я настроил Права в Xcode, но они не помещаются в скомпилированный пакет приложений. Мне нужно сделать какие-то дополнительные шаги?
Я пишу приложение, подписанное OS X "Developer 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
.
<key>com.apple.security.application-groups</key>
? - person l'L'l   schedule 04.07.2015NSUserDefaults
в свои собственные контейнеры, поскольку в описании контейнера группы приложений упоминается только следующее: Этот контейнер предназначен для содержимого, не предназначенного для пользователя, такого как общие кеши или базы данных, что, возможно, может объяснить поведение возможно. - person l'L'l   schedule 04.07.2015