Objective c 应用程序从应用程序商店返回设备令牌的空值
我发布了带有推送通知的应用程序更新,但是当我检查服务器时,我注意到发送到数据库的令牌为“null”。我使用开发证书和生产证书进行了大量测试。两者都很成功,但应用商店上的版本没有,我也不知道为什么。大约两周前,我发布了关于此问题的帖子,有人告诉我不应该使用我用于临时设置的配置文件,因此我创建了一个具有相同id的新配置文件。更新昨天发布,但我仍然存在相同的问题。我需要找到一个永久的解决方案,因为我的用户对所有这些更新都很恼火,但我不知道如何测试,直到它在应用商店上得到批准 如果有人能提供想法或帮助,我将不胜感激。提前谢谢Objective c 应用程序从应用程序商店返回设备令牌的空值,objective-c,ios,xcode,push-notification,Objective C,Ios,Xcode,Push Notification,我发布了带有推送通知的应用程序更新,但是当我检查服务器时,我注意到发送到数据库的令牌为“null”。我使用开发证书和生产证书进行了大量测试。两者都很成功,但应用商店上的版本没有,我也不知道为什么。大约两周前,我发布了关于此问题的帖子,有人告诉我不应该使用我用于临时设置的配置文件,因此我创建了一个具有相同id的新配置文件。更新昨天发布,但我仍然存在相同的问题。我需要找到一个永久的解决方案,因为我的用户对所有这些更新都很恼火,但我不知道如何测试,直到它在应用商店上得到批准 如果有人能提供想法或帮助,
另外,如果有帮助的话,我从我的设备上删除了我的应用程序,并从应用程序商店重新安装了它。。。它没有询问我是否希望接收推送通知,但已通过电话设置为应用程序启用推送功能…如果您已为应用程序创建了新的配置文件,我认为您还需要在服务器上生成新证书。您使用的是gateway.push.apple.com而不是gateway.sandbox.push.apple.com吗?APNs通信有三个步骤:
我敢打赌,如果你检查你以前存档的应用程序,你会看到一个不正确的配置文件这是您的应用程序不返回deviceToken的唯一原因。(除非它接收到设备但未正确发送到服务器,这是上述通信步骤2中的一个问题)。如果您可以在“控制台应用程序”(管理器>设备>控制台)中检查应用程序日志通过将安装的设备与包含设备令牌null问题的应用程序连接
基于此
问题是由于当前的配置配置文件不包含 APNS信息,如之前创建的配置文件 正在创建APNS证书 解决方案:创建新的配置文件并在Xcode中选择配置文件将清除错误- 您可以执行terminal命令来检查“临时生产” profile'是否支持apns环境,其外观应类似于以下内容:
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>H22LLUHM4D.com.company.appName</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
</dict>
权利
应用程序标识符
H22LLUHM4D.com.company.appName
aps环境
生产
获取任务允许
否证书链接到Appid而不是应用程序provison@StevenKramer有很多代码。如果它适用于ad hoc,为什么它不适用于app store?我觉得没有代码是必要的?嗯,是的,但是这里有一个bug。无论是在代码中还是在系统框架中。文档中说“当应用程序成功注册到Apple Push Service(APS)时发送给代理。”整个过程取决于APN和操作系统之间交换的有效设备令牌。我认为在apple developer portal中启用生产推送通知后,您需要重新生成p12文件。他如何提交具有错误分发配置文件的应用程序?它会被iTunes拒绝,不是真的。它可以是正确的配置文件,但使用通配符作为绑定ID。这将正常工作,但不适用于APN。事实上,在部署支持APNs的应用程序时,这是一个非常常见的问题。我使用gateway.push.apple.com。。。谢谢,虽然我知道这是一个典型的错误。顺便说一句,我很确定如果是的话,它不会为临时工作。沙盒