私のアプリでは、プッシュ通知が必要です。プッシュ通知ドキュメントのすべての指示を実装しています。しかし、プッシュ通知からエラーが発生しました:
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}
私が間違っているのは何ですか?
プッシュを有効にした後、新しいプロビジョニングプロファイルを生成すると、機能します!
Xcode 6.1.1を使用しています
何も削除または再作成する必要はありません。 Xcodeにアクティブな証明書(新しいプッシュ通知証明書を含む)を更新させるだけです。
Xcode>環境設定>アカウント>アカウントを選択>チームを選択>詳細を表示
そこで、左下隅にある更新ボタンをクリックします。 (ビルド設定のコード署名も確認してください)
私は同じ問題を抱えていた、
ビルト設定、コード署名IDfordebugは適切に設定されていますProvisioning Profile
プッシュ通知を有効にしました。
最初に、ワイルドカードなしでアプリIDを使用することを確認する必要があります。次に、開発用のプッシュ通知用にそのアプリを有効にする必要があります。
このチュートリアル などを確認してください。
PushのアプリIDを有効にした後でも、機能するまでに数時間かかる場合があります。
それは私を夢中にさせていました。すべてをクロスチェックしましたが、それでも同じエラーが発生していました。ウェブ上にある他のすべてのソリューションも試してみました。しかし、これは私にとってはトリックでした。 APNSを有効にする前に、.mobileprovisionファイルを作成します。これは本当の間違いでした。この問題の解決:
プロビジョニングプロファイルを以前に作成し、APNSを有効にした場合は、システムのすべての場所(XCode、keychain、iTuneConnect)からプロビジョニングファイルを削除する必要があります。そして、プロビジョニングファイルを再度作成します。
私はこの問題に対処しました。おそらく多くのことが起こっていますが、ここに私が学んだことを示します。
プッシュ通知を有効にするなど、アプリIDに変更を加える場合、新しいプロビジョニングプロファイルを作成する必要があります。アプリIDを作成し、それを使用してプロビジョニングプロファイルを作成し、アプリIDで通知を有効にしておく必要があります。
ポータルとデバイスからプロビジョニングプロファイルを削除したら、変更したアプリIDを使用して新しいプロファイルを作成しました。それをダウンロードし、私のデバイスに放り込んで、ワムバムありがとうございます。これが将来人々に役立つことを願っています!
これはちょうど私のためにそれを解決したので、私は共有します。アプリIDを更新する場合は、デバイス、xcode、およびdeveloper.Apple.comからプロファイルを削除する必要があります。次に、新しいアプリID設定で更新される新しい一致するプロビジョニングプロファイルを作成します。正しい名前を選択していることがわかるように、少し異なる名前を付けることをお勧めします。
私の場合->プロジェクト設定に移動->アプリのターゲット->機能
プッシュ通知を有効にします!
プロファイルを正しく設定します。おそらく、プロファイルを設定しないでください。
まず、デバイスでアプリを実行する必要があります。
これは、xcode 3.2.6で発生します。何もかもが完璧になっているからです。ただし、アプリケーションはiPhone、iPad、またはiPodに登録されていません。 Entitlement.plstファイルを生成する必要があります。
次に、プロビジョニングプロファイルから次のような行を資格ファイルにコピーします。
<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>
XCode 4.6.1でも同じエラーが発生しましたが、うまくいきました。以前のAPNSプロファイルをMacから削除し、メンバーセンターからAPNSプロビジョニングプロファイルを再ダウンロードしました。ターゲットモードのビルド設定では、コード署名IDはデバッグモードでのみ使用する必要があります。これは、リリース用のiphone開発者がnilにするか、開発者またはディストリビューションを削除するためです。
少し恥ずかしいですが、最もばかげたバグに何時間も費やすことがあります-
したがって、アプリケーションをAD-HOCではなく[〜#〜] debug [〜#〜]モードで実行します。
それを変更するには、次のようにします。
scheme->スキームの編集...
左側で「実行」を選択し、「ビルド構成」の下の「アドホック dist」に変更します。
*もちろん、build-setting\code signingの下に適切なアドホックプロビジョニングプロファイルと、プロビジョニングプロファイルを作成するときに適切なAPNS証明書を添付する必要があります。
**実行すると、DEBUGモードではなくクラッシュしますが、デバイスから実行できます。
特定のプロビジョニング証明書を使用していることを確認してください
https://developer.Apple.com/ios/manage/provisioningprofiles/index.action プロビジョニング証明書のステータスを確認し、最悪の場合は新しい証明書を作成し、ダウンロードして割り当てます再びプロジェクトに。
使用しているプロビジョニングのタイプ、「開発」または「配布」を確認してください
私も同じです。これが私が解決した方法です。
1)~/Library/MobileDevice/Provisioning Profiles
でプロビジョニングプロファイルを削除しました
2)開発者アカウントから削除されたプロファイル
3)新しいプロファイルの作成とインストール
プロファイルの再生成は解決しなかったことに注意してください。
1つのサーバーで複数のアプリプッシュを管理している場合は、次の事実を考慮してください。
separatep12としてのプライベートキーファイルを処理してpemファイルを処理する必要があり、このプライベートキーはキーチェーンアプリで作成時に生成されます。certSigningRequestファイル。したがって、この[〜#〜] csr [〜#〜]は有効期限が切れると同じアプリで再利用できますが、他のアプリではseparateが必要です。