2012-01-05 22 views
11

プッシュ通知が有効になっているはずのアプリがありますが、なんらかの理由でそれらを持っていないアプリがあります。私は他の人がアプリケーションをダウンロードしてインストールするのを見ており、プッシュ通知を送信する権限をユーザーに求めることさえありません。予想どおり、このアプリは[設定]> [通知]に表示されません。iOSディストリビューションプロビジョニングプロファイルでプッシュ通知が有効になっているかどうかを確認するにはどうすればよいですか?

しかし、私のiPadでは、このアプリからプッシュ通知を受け取ることができ、設定>通知に表示されます。私は削除して、他の誰もが(開発バージョンではない)同じものを持っていることを確認するために、アプリケーションを再インストールし、私はまだ通知を得ることができます。

今、このアプリは私にすべてのプロビジョニングプロファイル(dev、adhoc、distribution)とプッシュ通知を送信するために必要なファイルを送ったクライアントのために書かれているので、すべてが適切に作成されました。今

私の理論ということです。私が受け取っアドホックプロファイルは(すなわちプロビジョニングポータルでのアプリのApp IDでのAPNを設定した後に生成)

  • 「正しく作成された」

    • 配信プロファイル私が受け取った配信プロファイルは、このアプリのAPNをに設定する前に生成されています(したがって、プッシュが有効になっていません)。
    • 私のデバイスでプッシュ通知を受け取る理由は、です開発私はアドホックバージョンをインストールしました。プッシュ通知を受け取る権限を要求しました。このアドホックバージョンを削除し、ストアからバージョンをダウンロードしましたが、デバイスは私が喜んでいるという事実を "キャッシュ"しています通知を受け取るようになりました。それ以上のメッセージは表示されません。私は他のアプリをチェックして、削除して再インストールしても、プッシュ通知を受け取る権限をもう一度求められません。

    だから私の質問は以下のとおりです。

    • この理論は理にかなっていますか?
    • これは、クライアントに新しい配布プロビジョニングプロファイルを生成するように依頼する必要があることを意味します。 このプロファイルが「プッシュ対応」であることを確認するにはどうすればよいですか?(すなわち、私はちょうどそれを使用してコンパイルアプリをインストールすることはできませんことを考慮して)
  • 答えて

    22

    [OK]を、私は、プロファイルがプッシュが有効になっているかどうかを確認する方法を発見したかもしれません。

    私は私が配布プロファイルに推測しているが、XMLのビット(明らかなplist)がある、テキストファイルとして.mobileprovisionファイルを開いた場合、この必要があります:

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

    そして実際に、adhocプロファイルはこれを持っていて、配布プロファイルはそうではありませんでした。だから私はこれが問題だと思っています。

    それでも、任意のフィードバックが参考になる:)

    +2

    プロビジョニングプロファイルのXML部分を簡単に表示するには、Terminal.app 'security cms -D -i/path/to/AppStoreProfile.mobileprovision'で次のコマンドを実行します。次に同じaps-environmentを探しますキー。 – Tal

    7

    若干異なるが、それでも便利:あなたはそれが通知(またはその他の資格)を押しているかどうかを確認することができ、接続iTunesにアプリをアップロードする際に有効になります。

    これを行うには、「アプリケーションの管理」でアプリケーションを選択し、確認するバージョンの「詳細の表示」に進みます。

    そこから、「バイナリの詳細」ページに移動します。このバイナリにはエンタイトルメントの内容を示す「エンタイトルメント」フィールドがあります。プッシュ通知を有効にすると、そこに「aps-environment: production」という行が表示されます。

    0

    aps_certificateの作成後に配布プロビジョニングプロファイルが生成されていることを確認してください。プロファイルは、APS-環境

    0

    を逃すかもしれハイ変更は私は非常に包括的なからこれを得たので、私は設定が

    - (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
    { 
        UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; 
    NSLog(@"Receiving Notification Types: %lu", (long)enabledTypes); //0=none 1=badge 2=sound 4=alert 8=NewsStandContantAvailability 
    

    をデバッグに有効にされたまさに見ることができましたAppDelegate.mに以下を追加し、有用なリンク:Apple Push Notification Service Tutorial - Part 1 それは私のために非常に有用でした。

    関連する問題