仅在使用生产证书时无法注册推送通知

时间:2012-09-30 11:34:52

标签: ios apple-push-notifications

使用开发证书时推送通知正常。当我在ad-hoc分发中切换到生产证书时,应用程序无法注册推送通知。在UIApplicationDelegate中,didRegisterForRemoteNotificationsWithDeviceTokendidFailToRegisterForRemoteNotificationsWithError都不会被调用。另外,当我查看设备日志时,我发现了这个:

Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'application-identifier' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'application-identifier' has value not permitted by a provisioning profile

配置文件中的我的权利键如下所示:

<key>Entitlements</key>
<dict>
    <key>application-identifier</key>
    <string>KUK8W9TW2G.com.startappz.ConversableDemo</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>KUK8W9TW2G.*</string>
    </array>
</dict>

我尝试从Xcode和门户网站删除配置文件并重新创建它们,我也尝试撤销证书并重新创建它们。我甚至改变了应用程序ID并从头开始做了所有事情。

我也尝试使用和不使用单独的权利文件构建。

更新

我现在正在使用分发配置文件在设备上进行调试。该应用程序现在可以在生产服务器上成功注册和接收推送通知,但仍然存档应用程序会中断推送通知。

所以现在我几乎可以肯定Xcode在归档应用程序时会弄乱一些东西。

2 个答案:

答案 0 :(得分:1)

您是否更改了服务器中的APNS脚本?

ssl://gateway.sandbox.push.apple.com:2195需要; ssl://gateway.push.aple.com:2195和

development_certificate.pem应该是; production_certificate.pem

答案 1 :(得分:1)

我猜对了,Xcode在存档应用程序时确实搞乱了。选择“Save for Enterprise或Ad-Hoc Deployment”后,代码签名标识下拉菜单将我的团队名称显示为“(null)”。

enter image description here

刷新代码签名身份后,它现在正常显示,ad-hoc ipa现在可以在我的设备上正常注册和接收推送通知。