App Storeのアプリケーションに有効な「aps-environment」資格文字列が見つかりません


103

だから私はこのアプリをDripperと呼んでいます。それは約1か月前に出し、それから数日前にアップデートしました。この更新では、プッシュ通知といくつかの小さな調整が追加されました。開発プロファイルを使用してsandbox-apnでテストしたところ、問題はありませんでした。それから私は物事を本番環境に切り替え、それをテスト飛行にプッシュしましたが、再び物事は完璧に機能しました。更新を市場に出して実行したところ、サーバーで新しいプッシュ登録を取得していないことがわかりました。デバイスのコンソールログを確認したところ、次のことがわかりました。

12月4日17:55:15 Ina-touch-it coffco [1210]:リモート通知の登録
12月4日17:55:15 Ina-touch-it SpringBoard [52]:アプリケーションに有効な「aps-environment」資格文字列が見つかりません'ドリッパー':(null)。通知は配信されません。
12月4日17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

production-apnはアドホックビルドとアプリストアビルドで同じように機能すると思っていたので、少し混乱しています。

これが私のアプリIDとその資格です-> http://i.stack.imgur.com/uf4pB.png

これがアプリストアのプロビジョニングプロファイルです-> http://i.stack.imgur.com/AYOV5.png


ここでは、署名およびアップロードされています-> i.stack.imgur.com/AziCI.png ビルド設定-> i.stack.imgur.com/j2TFG.png
Jessiah

回答:


282

この問題を解決するには、プッシュ通知機能を有効にします。

.xcodeproj->機能->プッシュ通知を有効にするをクリックします


15
XCode 8では、このセクションで、資格ファイルを追加する必要があるというエラーが表示されました。これをクリックして修正すると、問題なく動作しました。
ペレット

Xcode 8での開発を開始したとき、つい最近になってポップアップし、これで修正されました。ありがとう!
Kody R. 2016

以前はXcode 7.3で作業していましたが、突然Xcode 8で登録されませんでしたが、これによりプッシュ通知機能を有効にすることで問題が解決しました。
Vinod Rathod

AppleはこのオプションをXcode 8.1の奥深くに隠すことにしました。誰か見つけられたら教えてください。
トーマスセバスチャン

機能リストに「プッシュ通知」オプションが表示されませんでした。これは、XCodeが私のプロビジョニングプロファイルを自動的に生成しているという事実と関係がありました(私はiOS開発者にとって初めてなので、間違っているかもしれません...)。機能リストにプッシュ通知が表示される前に、自分の開発者アカウントにサインインし、アプリのプロビジョニングプロファイルを手動で作成する必要がありました。最後に、それを有効にすると、この問題が修正されました。
Max Mumford

103

私はこの問題を次のように修正しました:

  • Xcode「環境設定」に移動します
  • 「アカウント」タブに移動します
  • 自分のApple IDを選択し、[詳細を表示]をクリックします
  • 左下の矢印をクリックして更新します
  • 「完了」をクリックします

そしてさらに試みる!

ソース:


6
その後、ビルド設定で正しいプロビジョニングプロファイルを選択する必要があります
Hashem Aboonajmi

2
私の場合、開発センターでプロビジョニングプロファイルを再生成する必要がありました。次に、Xcode> [設定]> [アカウント]> [あなたのApple ID]>右隅にある[詳細を表示]ボタン> [すべてダウンロード]ボタンを使用して、すべてのプロファイルと証明書を再度ダウンロードします。その後、再び機能するはずです。
blackjacx 2016

2
プッシュと展開のプロセスに多くの不具合があるのは悲しいです。私がこれを許容できる唯一の方法は、すべてを手動で100%実行し、Xcodeが何をしようとしているのかを把握し、ファイルシステム上およびiPhone構成ユーティリティを介してキーチェーンIDとプロビジョニングプロファイルを管理することです。
トムペース

57

ターゲット—>機能—>プッシュ通知を有効にする必要があります。Xcode 8を使用してこの問題に直面しました。ここに画像の説明を入力してください


18

このような問題は、APNS証明書を作成する前にプロビジョニングプロファイルが作成されるため、現在のプロビジョニングプロファイルにAPNS情報が含まれていないことが原因です。

したがって、問題を解決するには、新しいプロビジョニングプロファイルを作成し、Xcodeでプロビジョニングプロファイルを選択します。その後、完了です。

また、プッシュを追加すると、キーチェーンの証明書も更新されたと思います。


使用しているプロファイルは、プロダクションプッシュAPNの証明書を作成した後に作成されました。それが欠落しているか、apns情報が含まれていることを確認するために何かできることはありますか?
ジェシア14

@Jessiah:いいえ。Appleが提供する足跡をたどる必要があるようです。
Fahim Parkar 2014

6

Xcode 9に関しては、この特定の問題を解決するための回答の一部が古くなっているか、不完全です。

ここに私のために続くべきステップがあった:

1.プロビジョニングプロファイルを作成する

FCMはプッシュ通知の前提条件はありませんが、ガイドは驚くほど明確です。ここにリンクがあります

開発中のアプリをテストするには、開発用のプロビジョニングプロファイルが必要です。これにより、App Storeでまだ公開されていないアプリをデバイスが実行することを承認できます。

  1. Apple Developer Member Centerに移動してサインインします。
  2. 証明書、識別子、プロファイルに移動します。
  3. 左上隅のドロップダウンメニューで、iOS、tvOS、watchOSが選択されていない場合は選択し、[プロビジョニングプロファイル]> [すべて]に移動します。
  4. +ボタンをクリックして、新しいプロビジョニングプロファイルを作成します。
  5. iOSアプリ開発をプロビジョニングプロファイルタイプとして選択し、[続行]をクリックします。
  6. ドロップダウンメニューで、使用するアプリIDを選択し、[続行]をクリックします。
  7. 前の手順で選択したアプリIDのiOS開発証明書を選択し、[続行]をクリックします。
  8. プロビジョニングプロファイルに含めるiOSデバイスを選択し、[続行]をクリックします。テストに使用するすべてのデバイスを選択してください。
  9. このプロビジョニングプロファイルの名前(Firebase Sample App Development Profileなど)を入力し、[生成]をクリックします。
  10. [ダウンロード]をクリックして、プロビジョニングプロファイルをMacに保存します。
  11. プロビジョニングプロファイルファイルをダブルクリックしてインストールします。

2.プッシュ通知機能をアクティブにする

  1. 公式マニュアルからプロジェクトエディターに移動 ここに画像の説明を入力してください
  2. 機能セクションで、プッシュ通知をアクティブ化 ここに画像の説明を入力してください

4

iOS 8.0以降のバージョンを使用して同じ問題が発生しました。デバイストークンを取得できず、「アプリケーションに有効な「aps-environment」資格文字列が見つかりません」というエラーが表示されました

以下の手順で修正しました

  • アプリIDの新しいプロビジョニングプロファイルを作成しました
  • それをxcodeに追加しました
  • プロジェクトXcode「設定」に移動します
  • [アカウント]タブに移動します。AppleIDを選択し、[詳細を表示]をクリックします
  • プロビジョニングプロファイルを選択します
  • 左下の矢印をクリックして更新します
  • 「完了」をクリックします

そして今、プロジェクトを実行すると間違いなく動作します。


3

どういうわけか、ウェイの解決策は私にとってうまくいかなかった。エンタイトルメントの修正をクリックすると、Xcodeは2つのファイルを生成しましたが、それでも機能しませんでした。実際、生成されたエンタイトルメントファイルは空でした。

これは(明らかに)プロジェクトのPRODUCT_NAMEがかなり長く、スペースと「ä」と「ö」の文字が含まれていることが原因でした。英語のみの文字を含む短いバージョンに変更した後、Weiによる修正は正しく機能しました。


1

有効なaps-environmentエンタイトルメントエラーが発生しない原因を特定するには、しばらく時間がかかりました。問題は、XCodeプロジェクトに2つの.entitlementsファイルがあることでした。1つはplatform / ios //。entitlementsで、もう1つはplatform / ios // Resources / .entitlementsで、XCodeが後者を使用するように構成されている場合にのみ、適切な資格が前者のファイルに存在します。後者のファイルを手動で更新すると、すべてが機能し始めました。これを修正する別のオプションは、XCodeが使用する.entitlementsを変更することです。これは、ビルド設定->署名->コード署名資格の構成パラメーターで実行できます。

XCodeに.entitlementsファイルが2つある理由がわかりません。コルドバプッシュプラグインが2番目のプラグインを作成したのでしょうか(私はハイブリッドコルドバモバイルアプリを開発しています)。そして、.entitlementsファイルの正しい場所は何ですか?


-1

私はこの問題を経験し、最初の解決策でそれを解決しました。

しかし、2つのAppleアカウントでログインしていたため、一度失敗しました。1つを削除した後、すべてが機能するようになりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.