web-dev-qa-db-ja.com

プッシュ通知からエラーを取得する

私のアプリでは、プッシュ通知が必要です。プッシュ通知ドキュメントのすべての指示を実装しています。しかし、プッシュ通知からエラーが発生しました:

Fail To Register For Remote Notifications With Error:
  Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
  entitlement string found for application" UserInfo=0x2340a0
  {NSLocalizedDescription=no valid 'aps-environment' entitlement string
  found for application}

私が間違っているのは何ですか?

47
arunkumar.p

プッシュを有効にした後、新しいプロビジョニングプロファイルを生成すると、機能します!

44
nithinreddy

Xcode 6.1.1を使用しています

何も削除または再作成する必要はありません。 Xcodeにアクティブな証明書(新しいプッシュ通知証明書を含む)を更新させるだけです。

Xcode>環境設定>アカウント>アカウントを選択>チームを選択>詳細を表示

そこで、左下隅にある更新ボタンをクリックします。 (ビルド設定のコード署名も確認してください)

enter image description here

25
codepushr

私は同じ問題を抱えていた、

ビルト設定コード署名IDfordebugは適切に設定されていますProvisioning Profile

プッシュ通知を有効にしました。

19
Almas Adilbek

最初に、ワイルドカードなしでアプリIDを使用することを確認する必要があります。次に、開発用のプッシュ通知用にそのアプリを有効にする必要があります。

このチュートリアル などを確認してください。

PushのアプリIDを有効にした後でも、機能するまでに数時間かかる場合があります。

18
uvesten

それは私を夢中にさせていました。すべてをクロスチェックしましたが、それでも同じエラーが発生していました。ウェブ上にある他のすべてのソリューションも試してみました。しかし、これは私にとってはトリックでした。 APNSを有効にする前に、.mobileprovisionファイルを作成します。これは本当の間違いでした。この問題の解決:

  1. アプリIDを作成
  2. APNSを有効にする
  3. 次に、プロビジョニングファイルを作成します

プロビジョニングプロファイルを以前に作成し、APNSを有効にした場合は、システムのすべての場所(XCode、keychain、iTuneConnect)からプロビジョニングファイルを削除する必要があります。そして、プロビジョニングファイルを再度作成します。

8

私はこの問題に対処しました。おそらく多くのことが起こっていますが、ここに私が学んだことを示します。

プッシュ通知を有効にするなど、アプリIDに変更を加える場合、新しいプロビジョニングプロファイルを作成する必要があります。アプリIDを作成し、それを使用してプロビジョニングプロファイルを作成し、アプリIDで通知を有効にしておく必要があります。

ポータルとデバイスからプロビジョニングプロファイルを削除したら、変更したアプリIDを使用して新しいプロファイルを作成しました。それをダウンロードし、私のデバイスに放り込んで、ワムバムありがとうございます。これが将来人々に役立つことを願っています!

2
NicholasTGD

これはちょうど私のためにそれを解決したので、私は共有します。アプリIDを更新する場合は、デバイス、xcode、およびdeveloper.Apple.comからプロファイルを削除する必要があります。次に、新しいアプリID設定で更新される新しい一致するプロビジョニングプロファイルを作成します。正しい名前を選択していることがわかるように、少し異なる名前を付けることをお勧めします。

2
Isaiah Turner

私の場合->プロジェクト設定に移動->アプリのターゲット->機能

プッシュ通知を有効にします!

1
Raegtime

enter image description here

プロファイルを正しく設定します。おそらく、プロファイルを設定しないでください。

1
jxdwinter

まず、デバイスでアプリを実行する必要があります。

これは、xcode 3.2.6で発生します。何もかもが完璧になっているからです。ただし、アプリケーションはiPhone、iPad、またはiPodに登録されていません。 Entitlement.plstファイルを生成する必要があります。

  • ステップ:最初にxcodeでプロジェクトを選択し、ファイルを作成します。 entitlement.plistという名前のコード署名ファイルを選択します(デフォルト名)。
  • リソースフォルダーに配置します。
  • [XMLエディターとして開く]を右クリックします。
  • 次に、your_apllicationName.mobileprovision(Apnsサーバー用に作成したもの)などのプロビジョニングファイルをテキスト編集モードで開きます。

次に、プロビジョニングプロファイルから次のような行を資格ファイルにコピーします。

<key>application-identifier</key>
<string>xyz.com.company_name.app_name</string>
  <key>aps-environment</key>        
            <string>development</string>
    <key>get-task-allow</key>   
<true/>
    <key>keychain-access-groups</key>   
<array>
        <string>xyx.*</string>      
    </array>
  • Entitlement.plistファイルを保存します。
  • Apnsサーバーで通知するアプリケーションを実行します。
1
Rajesh

XCode 4.6.1でも同じエラーが発生しましたが、うまくいきました。以前のAPNSプロファイルをMacから削除し、メンバーセンターからAPNSプロビジョニングプロファイルを再ダウンロードしました。ターゲットモードのビルド設定では、コード署名IDはデバッグモードでのみ使用する必要があります。これは、リリース用のiphone開発者がnilにするか、開発者またはディストリビューションを削除するためです。

0
balajiaj

少し恥ずかしいですが、最もばかげたバグに何時間も費やすことがあります-

したがって、アプリケーションをAD-HOCではなく[〜#〜] debug [〜#〜]モードで実行します。

それを変更するには、次のようにします。

scheme->スキームの編集...

左側で「実行」を選択し、「ビルド構成」の下の「アドホック dist」に変更します。

*もちろん、build-setting\code signingの下に適切なアドホックプロビジョニングプロファイルと、プロビジョニングプロファイルを作成するときに適切なAPNS証明書を添付する必要があります。

**実行すると、DEBUGモードではなくクラッシュしますが、デバイスから実行できます。

enter image description here

0
Aviram Net

特定のプロビジョニング証明書を使用していることを確認してください

https://developer.Apple.com/ios/manage/provisioningprofiles/index.action プロビジョニング証明書のステータスを確認し、最悪の場合は新しい証明書を作成し、ダウンロードして割り当てます再びプロジェクトに。

使用しているプロビジョニングのタイプ、「開発」または「配布」を確認してください

0
T.Baba

私も同じです。これが私が解決した方法です。

1)~/Library/MobileDevice/Provisioning Profilesでプロビジョニングプロファイルを削除しました

2)開発者アカウントから削除されたプロファイル

3)新しいプロファイルの作成とインストール

プロファイルの再生成は解決しなかったことに注意してください。

0
Seryozha

1つのサーバーで複数のアプリプッシュを管理している場合は、次の事実を考慮してください。

separatep12としてのプライベートキーファイルを処理してpemファイルを処理する必要があり、このプライベートキーはキーチェーンアプリで作成時に生成されます。certSigningRequestファイル。したがって、この[〜#〜] csr [〜#〜]は有効期限が切れると同じアプリで再利用できますが、他のアプリではseparateが必要です。

0
zeeawan