web-dev-qa-db-ja.com

iOSプッシュ通知はDevでは機能しますが、EnterpriseDistributionでは機能しません

私はここで多くの投稿を読み、Appleドキュメントを一日中読んでいます。ここの投稿には答えがなく、ドキュメントはこの問題について不明確です。

Devプロファイルを使用しているときはプッシュ通知を受信しますが、Enterprise配布プロファイルを使用しているときは受信しないアプリがあります。

アプリIDは、サンドボックスでのプッシュ通知に対して有効になっています。

証明書と両方のプロファイルはアプリIDに関連付けられています。

フォームを作成すると、Xcodeプッシュ通知が正常に表示されます。サーバーをアーカイブして配布すると、次のようになります。

[Failed to Push 6dje7djksis7hyhdjshsjksjd74jdjskshdjd8dhjjdkwu for reason 8]

これは無効なトークンです。

私が気づいたことの1つは、開発プロビジョニングプロファイルにaps-environmentの次のものがあることです。

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

エンタープライズ配布プロファイルには次のものがあります。

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

携帯電話でデバッグビルドを実行すると(プッシュは機能します)、. appファイルの資格は次のとおりです。

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

私がアーカイブするとき、それらは常に(私が使用するプロビジョニングプロファイルやスキームに関係なく):

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

これが予想されるかどうか誰かに教えてもらえますか?私が見つけたこのサイトの他の質問のどれも、Devが機能するが、EnterpriseDistributionが機能しない理由を実際に思い付くものはありません。

アーカイブ常にがaps-environmentの生成を行うのはなぜですか?

御時間ありがとうございます。

更新これは興味深いです。

から:

http://developer.Apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html

「サンドボックス(開発)環境と本番環境で別々の証明書を取得する必要があります。証明書は、プッシュ通知の受信者であるアプリケーションの識別子に関連付けられています。この識別子には、アプリケーションのバンドルIDが含まれます。プロビジョニングプロファイルを作成するとき環境の1つでは、プッシュ通知に固有の資格を含め、必要な資格がプロファイルに自動的に追加されます。2つのプロビジョニングプロファイルは開発と配布と呼ばれます。配布プロビジョニングプロファイルはアプリケーションをAppStoreに送信するための要件。 "

これは、本番環境に移行する場合を除いて、配布プロファイルを使用しないことを意味する場合があります。本当?アプリストアに行く前にエンタープライズディストリビューションプロファイルを作成できるので、それは奇妙に思えます。

誰かがそれについて考えを持っていますか?それに関するドキュメントで特定の情報を見つけることができません。

ありがとう

13
addzo

アプリには2つのプッシュ証明書があります。開発用に1つ、本番用に1つ。プロビジョニングポータルの[プッシュ証明書]セクションを確認します。

したがって、プッシュの送信に使用しているプッシュメカニズムはすべて、正しい証明書を使用して構成する必要があります。あなたの場合、エンタープライズリリースは本番/配布証明書を使用してプッシュを受け取ります。

13
Dancreek
  1. 本番証明書を使用します。
  2. 開発APNの代わりに本番APNホスト:gateway.Push.Apple.comを使用します:gateway.sandbox.Push.Apple.com
  3. 本番APNフィードバックホストを使用します:feedback.Push.Apple.com

詳細については ここ

2
Blerd

AppIDの開発バージョンと製品バージョンの両方で、Apple 'プロビジョニングプロファイル' Webサイトでプッシュ通知を有効にする必要があります。

2
GoZoner