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

3

在使用开发证书时推送通知功能正常。但是当我切换到生产证书进行自定义发布时,应用程序无法注册推送通知。在UIApplication委托中,既没有调用didRegisterForRemoteNotificationsWithDeviceToken也没有调用didFailToRegisterForRemoteNotificationsWithError。此外,当我查看设备日志时,发现以下信息:

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个回答

2

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

ssl://gateway.sandbox.push.apple.com:2195 需要更改为; ssl://gateway.push.apple.com:2195 并且

development_certificate.pem 应更改为; production_certificate.pem


问题出在注册苹果服务器上。我正在使用UrbanAirship,但这并不重要,因为didRegisterForRemoteNotificationsWithDeviceToken从未被调用过。 - Hesham
哦,抱歉,我误解了...我以为你说你没有收到它们,其实你根本没有注册... - Bartu

1
我猜得没错,Xcode在归档应用时确实出了点问题。在选择“保存为企业或Ad-Hoc部署”后,代码签名身份下拉菜单显示我的团队名称为“(null)”。

enter image description here

在刷新代码签名标识后,现在已经正确显示,并且Ad-hoc IPA现在可以在我的设备上正常注册并接收推送通知。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接