iOS:推送通知在生产中无效

时间:2012-07-24 18:51:52

标签: ios push-notification ssl-certificate distribution apple-push-notifications

我刚刚将我的第一个应用程序发布到苹果的应用程序商店,我发现推送通知无效。

我偶然发现了Stackoverflow上的许多重复帖子,但似乎对于其中一些帖子我还不知道如何处理它们。

1 即可。我的推送通知服务器使用生产服务器而不是沙箱将通知(通过php)正确传递给苹果推送服务。

2。所以我认为错误与在手机上接收错误有关。发布证书和注册可能有问题吗?

第3 即可。我该如何调试这样的问题?我考虑通过xCode使用Build Configuration:Release启动我的应用程序 - 检查手机是否注册Apple的apns。但它总是说:

  

找不到此可执行文件的有效配置文件。

但我对 3 的假设是正确的吗? - 应用程序可能无法在发布模式下注册?

您将在下面找到我的分发配置文件的一部分。但对我来说,一切似乎都没问题。

<key>Entitlements</key>
    <dict>
        <key>application-identifier</key>
        <string>***YGJ2X89.de.gruener.war***</string>
        <key>aps-environment</key>
        <string>production</string>
        <key>get-task-allow</key>
        <false/>
        <key>keychain-access-groups</key>
        <array>
            <string>***YGJ2X89.*</string>
        </array>
    </dict>

2 个答案:

答案 0 :(得分:0)

你的php服务器是否跟踪注册的设备?是否可以检查设备是否已在服务器上注册?

没有办法直接调试它,但是如果您需要获取一些日志,请尝试从Xcode中的设备控制台读取日志 - &gt;组织者。如果注册令牌或服务器响应无效,则可能会从该日志中清楚地看到。

答案 1 :(得分:0)

  

它调用didFailToRegisterForRemoteNotificationsWithError。   didRegisterForRemoteNotificationsWithDeviceToken不称为bacause   该应用程序已经注册我的第三方PHP服务器我认为

因此注册本身出了问题。

当你说“我的php服务器上的设备注册工作正常”时,你的意思是什么?

即使在调用didFailToRegisterForRemoteNotificationsWithError之后,您是否从您的设备获得了deviceToken?尝试记录错误信息,看看错误是什么

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
    NSLog(@"FAILED TO REGISTER FOR PUSH NOTIFICATIONS");
    NSLog(@"%@", error.userInfo);
}

如果设备未能获得设备令牌(通常由应用程序传递给第三方服务器),则无法获得推送通知,无论您是保存旧令牌还是成功发送。

另外,您确定手机上没有禁用通知(或设置中的应用)吗?