не найдена допустимая строка разрешений 'aps-environment' для приложения только в relesase build - PullRequest
0 голосов
/ 08 февраля 2019

Я выполняю все требования для push-уведомлений.Включенная функция в iTunes connect, а затем создание профиля обеспечения распространения.

В режиме отладки мой вызов приложения: didRegisterForRemoteNotificationsWithDeviceToken.Но в выпуске сборки приложения вызов: didFailToRegisterForRemoteNotificationsWithError с ошибкой:

Domain = NSCocoaErrorDomain Code = 3000 "для приложения не найдена допустимая строка прав доступа" aps-environment "*

В проекте у меня есть xxx.entitlements с:

<dict>
    <key>aps-environment</key>
    <string>production</string>
</dict>

И мое xxx.mobileprovision содержит следующие строки:

<key>Entitlements</key>
<dict>
            <key>keychain-access-groups</key>
            <array>
                    <string>XXXXXXXXXX.*</string>
            </array>
            <key>get-task-allow</key>
            <false/>
            <key>application-identifier</key>
            <string>XXXXXXXXXXX.MyBundleId</string>
            <key>com.apple.developer.team-identifier</key>
            <string>XXXXXXXXXXX</string>
            <key>aps-environment</key>
            <string>production</string>
</dict>

И после экспорта специального пакета я использую команду codesign -d --entitlements MyApp.app

<key>application-identifier</key>
<string>XXXXXXXXXXX.MyBundleId</string>
<key>com.apple.developer.team-identifier</key>
<string>XXXXXXXXXXX</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
    <string>XXXXXXXXXXX.MyBundleId</string>
</array>

, где XXXXXXXXXXX - это Team ID, и везде он равен.

Может кто-нибудь сказать мне, что вызвало эту ошибку?Заранее спасибо!

1 Ответ

0 голосов
/ 08 февраля 2019

Это произошло потому, что я использую ручную подпись в настройках проекта после включения функции push.После этого в project.pbxproj раздел buildSettings для соответствующих сборок (релиз) не содержит

CODE_SIGN_ENTITLEMENTS = MyApp / MyApp.entitlements;строка.

Эта проблема устранена путем повторного включения функции push в настройках проекта.

...