web-dev-qa-db-ja.com

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

だから、私は約1か月前に公開したDripperと呼ばれるこのアプリを持っています。そして数日前に更新します。この更新では、プッシュ通知といくつかの小さな調整が追加されました。開発プロファイルを使用してサンドボックスAPNでテストしたところ、うまくいきました。それから私は物事を生産apnに切り替え、それをテスト飛行にプッシュしました、再び物事は完全に機能しました。更新を市場に出して実行すると、サーバーで新しいプッシュ登録を取得していないことに気付きました。デバイスのコンソールログを見ると、次のことがわかりました。

12月4日17:55:15 Ina-touch-it coffco [1210]:リモート通知の登録
Dec 4 17:55:15 Ina-touch-it SpringBoard [52]:アプリケーション 'Dripper'の有効な '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}

アドホックビルドとアプリストアビルドの間で本番APが同じように機能すると考えたため、少し混乱しています。

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

アプリストアのプロビジョニングプロファイルは次のとおりです-> http://i.stack.imgur.com/AYOV5.png

81
Jessiah

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

.xcodeproj-> Capabilities-> Enable Push Notificationをクリックします

240
wei

この問題を次のように修正しました。

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

そしてさらに試みる!

ソース:

103
Erwan

ターゲット->機能->プッシュ通知を有効にする必要があります。 Xcode 8を使用してこの問題に直面しました。 enter image description here

56
Ram G.

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

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

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

19
Fahim Parkar

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

以下の手順を使用して修正しました

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

そして今、プロジェクトを確実に実行します。

4
Venky Chittala

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. 公式マニュアルenter image description here
  2. 機能セクションで、プッシュ通知を有効にします enter image description here
3
micaball

なんらかの理由で、Weiのソリューションはうまくいきませんでした。 [資格を修正]をクリックすると、Xcodeは2つのファイルを生成しましたが、まだ機能しませんでした。実際、生成された資格ファイルは空でした。

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

3
GOR

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

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

1
Alex Ryltsov

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

ただし、ログインしたAppleアカウントが2つあったため、一度失敗しました。削除した後、すべてが機能しました。

0
Desen GUO