2011-11-08 16 views
3

まず、数時間の解決策を探しています。私はこれに関するすべてのSOの質問を読んだことがあり、解決策のどれも働いていません。私はまた、この件に関する公式のリンゴのドキュメントと他のいくつかのチュートリアルを読んだ。基本的には、このような明白な提案は避けてください(サンドボックスなどではないことを確認してください)。iOSプッシュ通知はdevで動作しますがプロダクトでは動作しません

私は、プロビジョニングポータルで私のアプリケーション用の開発通知とプロダクト通知の両方の証明書を持っています。私はdevとprodの両方のPemファイルを作成する手順に従ってきました。

私は、このアプリケーションに結びついた開発者とアドホックディストリビューションの両方のプロビジョニングプロファイルを持っています。

デベロッパープロファイルを使用してxcodeからデバイスに直接ビルドすることも、アドホックディストリビューションプロファイル(私はベータビルダーを使ってデバイスにインストールする)を使ってビルドすることもできます。

デベロッパープロファイルで直接ビルドしても、アドホックプロファイルを使用して(ベータビルダー経由で)、サンドボックス+ dev pemファイルを使用するとプッシュ通知が機能します。しかし、prod servers + prod pemファイルを使用してテストすると、プッシュ通知は送信されません。

私はテスト用に2つ、devに1つ、prodに1つのPHPスクリプトがあります。これらは、サーバーURL(サンドボックスとサンドボックスではない)と参照されているpemファイル(devまたはprod)以外は基本的に同じです。

アドホックなビルドでも、私はまだサンドボックスとdevpemを使用してプッシュ通知を送信できますが、これは正常ですか?

devからprodに行くときに何かできるはずですか?私はこの時点ですべてを試したような気がします。私は証明書とプロファイルを何度も再生成しました。私はdevとprod pemファイルと私のPHPスクリプトとほとんど同じ(prodとdevのための)を生成するためのほぼ同じ手順に従ってください。

これはサーバーの問題かクライアント(アプリ)の問題かどうかはわかりませんが、私が忘れているかもしれないどこかの設定がありますか?

私は狂ったように運転し始めているので、誰かがこれを少し光らせてくれることを願っています!

乾杯。

答えて

11

私は問題を見つけました。私の終わりには愚かな間違いでした。他の誰かが同じミスを犯した場合、私はここで共有します。

私が知らなかった重要なことは、デバイストークンがdevとprod(同じデバイスの場合)で異なることです。私はprodでテストするためにdevでテストするときに得たデバイストークンを使用していました。これはdevでうまくいきましたが、私がprodに切り替えたとき、私は同じデバイストークンをphpスクリプトに入れました(間違って、デバイストークンは同じデバイスで同じになるでしょう)が、prodに登録された実際のデバイストークンは異なる。

実際には、デバイストークンがサーバーに送信されるため、これは起こりませんでしたが、テスト中にハードコードされたデバイストークンを使用していたため、サーバーを関与させたくありませんでした。

これにより、誰かに迷惑をかけないようにしてください。

+0

私は今この問題に苦しんでいます。私はデベロッパーでプッシュノーティフが働いていたプロジェクトに入ったが、今ではAppStoreで承認されたアプリをもう手に入れていない。 AppIDは世界中のすべてのユーザーに共通のものですか?それとも、あなたの電話で生成され、あなたのデバイスに具体的にマッチするものですか? –

0

私のデバイスにXcodeを使ってテストした既存のアプリケーションにプッシュ通知を追加したところ、正常に動作しましたが、アーカイブを作成してiTunes経由でインストールしたときにプッシュ通知が受信されませんでした。 問題は、プッシュ通知のアクセス許可を追加したときにプロビジョニングプロファイルが廃止され(無効)、新しいプロビジョニングプロファイルを生成してiTunes /電話に適用した後、 。