1

プッシュは私の開発プロファイルを使用して機能しており、Imはアドホックプロファイルで機能させようとしています。

テキストエディタを使用してアドホックプロファイルを調べたところ、次のことがわかりました。

    <key>aps-environment</key>
        <string>production</string>

したがって、アプリIDに本番証明書を設定しました。

ここに画像の説明を入力してください

  1. プロファイルを再生成し、それを使用してプロジェクトを再構築しました。
  2. アドホックビルドを(フライトをテストするために)正しい証明書でアップロードしました(手動でチェックしました)
  3. デバイスログを確認したところ、デバイストークンが正常に登録されていることがわかりました。

    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)newDeviceToken {{

     // Tell Parse about the device token (this gets called)
     [PFPush storeDeviceToken:newDeviceToken];
     ...
    

インストールオブジェクトは、ParseのWebUIに表示されました。(解析はモバイルアプリのバックエンドサービスです)

ここに画像の説明を入力してください

クライアントのプッシュはプッシュログに表示されます(スクリーンショット3を参照)。また、WebUIツールから手動のテキストプッシュを作成しました。

ここに画像の説明を入力してください

プッシュはデバイスに表示されませんでした。アプリをフォアグラウンドで実行している場合とまったく実行していない場合(タスクバーから削除)の両方で試してみました。

誰かが何か提案がありますか?これにうんざりしています...私はすべてを試したと思います。

4

1 に答える 1

0

証明書とプロビジョニング プロファイルを正しく定義したようです。APNs との解析接続に署名するプロセス、またはプッシュ メッセージを APNs に送信するための証明書に署名するプロセス中に、何かが不足していました。

私のばかげた英語で本当に申し訳ありませんが、これは少し長くなります. 証明書と秘密鍵を使用して手動で APNs に接続しようとしましたか?

それを行い、物事をより簡単にするには、証明書と秘密鍵を同じフォルダーに配置してから、ターミナルを開いて、証明書と鍵ファイルを配置した同じフォルダーに移動し、次のコマンドを実行します。

 openssl s_client -connect gateway.push.apple.com:2195 -cert YourCertFileHere -key YourPrivateKeyFileHere

... キーのパスフレーズを入力します

すべてがうまくいけば、telnet 経由で APNs に接続し、接続が切断されることはありません。それ以外の場合は、有効なファイル (キーと証明書) のペアがありません。

他の考えられる理由は、Parse がプッシュ メッセージをサンドボックス サーバーに送信しようとしている可能性があります。この BaaS の経験がないため、これを確認する方法がわかりません。

これがお役に立てば幸いです。

于 2014-08-19T03:44:42.303 に答える