1

概要:アプリが XCode 経由でインストールされている場合、プッシュ通知は常に完全に機能しますが、iTunes 経由でインストールされている場合、機能するかどうかは、ディストリビューションの署名に使用されるプロファイルに依存します。しかし、以前は機能していたいくつかのプロファイルの組み合わせが機能しなくなり、現在機能していないプロファイルの組み合わせもあります。

私の主な質問は、プッシュ通知を使用するアドホック配布に署名するためにどのプロファイルの組み合わせを使用する必要があるかということです.

詳細: APNs を使用するアプリを開発していますが、アプリケーションがアドホック アプリとして配布され、iTunes 経由でインストールされたときに、通知が届かないという問題が発生しています。問題は明らかに、正しいプロファイルで署名されていないことに関連していますが、過去数週間にわたるいくつかの観察により、ディストリビューションに署名するためにどのプロファイルを使用する必要があるかについて混乱しました.

アドホック プロファイルは、署名が必要な両方の段階で使用する必要があるという印象を受けていました。最初に、アーカイブが構築されているときに XCode 内でコード署名 ID として設定し、次にディストリビューションに署名します。私はこの方法でそれをやっていて、うまくいっています - デバイスはプッシュ通知を受け取ることができました。

それから数週間前、デバイスはプッシュ通知の受信を停止しましたが、ビルドが私の開発プロファイルで署名され、XCode 経由でインストールされた場合は受信できましたが、受信を停止したのはアドホック ディストリビューションだけでした。数日間すべてを試した後、最終的にプッシュ プロファイルとアドホック プロファイルを削除し、新しいプロファイルを作成しました。数日前に同じことが起こるまで、すべてが再び機能していました。

新しいアドホック プロファイルを再度作成しましたが、プッシュ通知を受信するためのアドホック ディストリビューションを取得できませんでした (ただし、アプリが XCode 経由でインストールされている場合、デバイスは再びそれらを受信します)。最終的に、アドホック プロファイルを使用してディストリビューションに署名することから、Apple プッシュ プロファイルを使用するように変更したところ、再び機能するようになりました。だから今私は混乱しています:

- am I supposed to sign ad-hoc distrubtions using a) the ad-hoc profile for the archive and then ad-hoc profile again when signing the distribtion of the archive or b) the ad-hoc profile for the archive and the push profile when signing the distribution of the archive?

XCode のインストールでは、コード署名 ID を開発プロファイルに設定しました。アドホック配布の場合、アーカイブのコード署名 ID をアドホック プロファイルに設定し、アーカイブの配布部分でアドホックまたはプッシュで再度署名します。ORが存在するのは、ある組み合わせが機能する場合と他の組み合わせが機能する場合があるためです。したがって、私の質問全体は、どの組み合わせが必要であり、どの組み合わせが機能し、どの組み合わせが機能しないかについて矛盾を観察した理由です。

ありがとう

編集: これは存在するプロファイルのリストです。つまり、Apple プロビジョニング ポータルにログオンし、[プロビジョニング] タブをクリックしてから [開発] タブをクリックすると、これらが一覧表示されます。

1) Apple Push Profile - APNs を有効にするために必要

2) NNN 開発プロファイル (NNN はプロジェクトの名前です)

3) iOS 開発プロファイル

4) iOS チーム プロビジョニング プロファイル

プロビジョニング タブをクリックすると、配布タブに次のリストが表示されます。

1) アドホック

何ヶ月にもわたって本、ドキュメント、フォーラムを広範囲に検索した結果、上記のどの組み合わせをどのような状況で使用する必要があるか、どのプッシュ通知を考慮に入れるかについての決定的な説明をまだ見つけていません。問題は、ほとんどのドキュメントと例でプッシュ通知が考慮されていないことです。プロファイルを適切な順序で適切に組み合わせないと、アプリをデバイスにインストールできますが、プッシュ通知は受信されないため、これは重大な省略です。

4

3 に答える 3

3

私も似たような痛みを感じたことがあります。

私は次のように答えます。

  • a) アーカイブのアドホック プロファイルを使用してアドホック ディストリビューションに署名し、アーカイブの配布に署名するときに再度アドホック プロファイルを使用するか、b) アーカイブのアドホック プロファイルとプッシュ プロファイルを使用して署名することになっていますか?アーカイブの配布に署名しますか?

アドホックまたは開発でアーカイブ ビルドに署名することは重要ではありません。すべての違いは、Organizer-Archives の配布ボタンの時点での署名です。

開発プロビジョニング ID で署名します。アドホックではありません。

署名アクションを定義する場所が 2 つ以上あるため、署名はわかりにくいと思います。しかし、この特定のケースでは、制御されたテストを行い、アドホック配布を送信しましたが、アプリが正式にリリースされ、本番ゲートウェイを使用してプッシュできるようになる前に、それらのアプリにリモート通知を取得できるかどうかさえわかりません。 .

それでも、アプリ ストアのリリース前にアドホック ディストリビューションにプッシュすることは可能だと思います。

于 2012-11-27T02:24:56.817 に答える
2

同じ問題の何が問題なのかを突き止めようとして 2 日が経過した後、xcode 経由でインストールすると、通知が開発 (gateway.sandbox.push.apple.com) の URL で機能することがわかりました。ipa (アドホック) としてエクスポートし、手動でインストールするには、製品 URL の gateway.push.apple.com (製品キーを含む) から通知を送信する必要がありました。したがって、両方のキーを作成したので、xcodeで作業しているときに開発URLで通知を送信し、エクスポートされたipaからインストールするときにプロダクションで通知を送信できました。

于 2015-05-26T23:29:44.533 に答える
0

開発アプリケーション証明書とプロビジョニングを使用する開発段階にある場合は、Apple テスト APNS で認証するためにサーバーにインストールする必要がある PUSH 通知用の開発証明書も生成する必要があります。
実稼働前または実稼働段階にある場合は、配布証明書と ADHOC または APPSTORE プロビジョニングを使用してアプリに署名する必要があり、Apple の APNS と通信するサーバーにインストールする必要がある配布 PUSH 証明書も生成する必要があります。ファイアウォールでポートがブロックされていることに注意し (Apple の apns の IP 範囲が広いため、このような問題もあります)、アプリケーションの Apple ID がプッシュ証明書の生成に使用されたものと一致する必要があることに注意することをお勧めします。これが役に立てば幸いです、
アンドレア

于 2012-10-30T15:32:44.913 に答える