我满足有关推送通知的所有要求。 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,并且每个地方都相等。
谁能告诉我是什么导致了此错误?预先感谢!
答案 0 :(得分:0)
发生这种情况是因为在启用推送功能之后,我在项目设置中使用了手动签名。之后,在 project.pbxproj 中,对应版本(发布)的buildSettings
部分不包含
CODE_SIGN_ENTITLEMENTS = MyApp / MyApp.entitlements;字符串。
通过在项目设置中重新启用推送功能来解决此问题。