1

最初のアプリを Apple のアプリ ストアにリリースしたところ、プッシュ通知が機能していないことに気付きました。

Stackoverflow で多くの重複した投稿に出くわしましたが、それらのいくつかについては、対処方法を十分に理解していないようです。

1 . 私のプッシュ通知サーバーは、サンドボックスではなく本番サーバーを使用して、(php 経由で) 通知をリンゴのプッシュ サービスに正しく配信します。

2.エラーは、電話での受信に関係していると思います。リリース証明書と登録に何か問題があるのでしょうか?

3 . このような問題をデバッグするにはどうすればよいですか? Build Configuration: Release - 電話が Apple の apns に登録されているかどうかを確認するために、xCode 経由でアプリを起動することを検討しました。しかし、それは常に言う:

この実行可能ファイルの有効なプロビジョニング プロファイルが見つかりませんでした。

しかし、私は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>
4

2 に答える 2

0

あなたのphpサーバーは、登録されたデバイスを追跡していますか? デバイスがサーバーに登録されているかどうかを確認することはできますか?

直接デバッグする方法はありませんが、ログを取得する必要がある場合は、Xcode -> オーガナイザーでデバイスのコンソールからログを読み取ってみてください。トークンまたは無効なサーバー応答の登録に問題がある場合は、そのログから明らかになる可能性があります。

于 2012-07-25T09:04:02.827 に答える
0

didFailToRegisterForRemoteNotificationsWithError を呼び出します。didRegisterForRemoteNotificationsWithDeviceToken は、アプリがサードパーティの php サーバーに既に登録されているため、呼び出されません

そのため、登録自体で何か問題が発生しています。

「私のphpサーバーへのデバイスの登録は機能しています」とはどういう意味ですか?

didFailToRegisterForRemoteNotificationsWithError を呼び出した後でも、デバイスから deviceToken を取得しますか? エラー情報をログに記録して、エラーの内容を確認してください

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

デバイスがデバイス トークンの取得に失敗した場合 (これは通常、アプリによってサード パーティ サーバーに渡されます)、古いトークンを保存した場合でも、トークンを正常に送信した場合でも、プッシュ通知は送信されません。

また、携帯電話 (または設定のアプリ) で通知が無効になっていませんか?

于 2012-07-25T17:19:39.473 に答える