2015-04-23 120 views
1

我正在开发一个使用Apple推送通知的iPhone应用程序。我已按照此处列出的步骤操作:https://parse.com/tutorials/ios-push-notifications并且我的设备通过Xcode连接我的设备来运行应用程序时会收到通知。但是,当我将应用程序上传到Test Flight时,应用程序无法收到通知。经进一步调查,我发现,通过令牌iOS didRegisterForRemoteNotifications从测试航班运行时返回不同的标记

NSString * token = [NSString stringWithFormat:@"%@", deviceToken]; 

当它从试飞运行返回的不同,当应用程序通过Xcode中运行,并且不同。这是为什么?我该如何解决它?我正在使用APNS发送推送通知。

+0

设备令牌可以更改,所以您的应用程序每次启动时都需要重新注册。 – Vaisakh

+0

@vais:应用程序每次启动时都会重新注册。 –

+0

检查http://stackoverflow.com/questions/19524942/ios-7-device-token-is-different-for-same-device这,阿维的答案是绝对正确的.. – Vaisakh

回答

3

您需要检查证书。当您注册捆绑ID时,您可以选择生成两个供应配置文件以及相应的两个推送通知证书,dev和production。当你在Xcode的开发模式下运行应用程序时,也就是说,当你运行Xcode目标时,配置为选择指定的开发配置文件,你的服务器需要使用dev/sandbox证书,它会从苹果的沙箱服务器返回你的令牌(这是发生在你的情况) 。当您使用prod证书签署应用程序时,即在生成ipa时使用prod provisioning配置文件时,您的服务器需要使用prod push证书。可能就你而言,你上传了使用开发证书和服务器签署的应用程序,仍然使用开发证书。检查一下。祝你好运。

相关问题