找不到仅针对发行版构建中的应用程序的有效“ aps-environment”权利字符串

时间:2019-02-08 09:19:25

标签: ios xcode apple-push-notifications

我满足有关推送通知的所有要求。 iTunes连接中已启用的功能,然后创建分发条款配置文件。

在调试模式下,我的应用程序调用:didRegisterForRemoteNotificationsWithDeviceToken。 但是在发布版本中,应用程序调用:didFailToRegisterForRemoteNotificationsWithError,错误:

  

Domain = NSCocoaErrorDomain代码= 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是团队ID,并且每个地方都相等。

谁能告诉我是什么导致了此错误?预先感谢!

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为在启用推送功能之后,我在项目设置中使用了手动签名。之后,在 project.pbxproj 中,对应版本(发布)的buildSettings部分不包含

  

CODE_SIGN_ENTITLEMENTS = MyApp / MyApp.entitlements;字符串。

通过在项目设置中重新启用推送功能来解决此问题。