プッシュ通知の資格がありません


126

却下され、メッセージを受け取ったときに提出するアプリがあります

プッシュ通知エンタイトルメントがない-アプリはAppleプッシュ通知サービスに登録されているようですが、アプリ署名のエンタイトルメントに「aps-environment」エンタイトルメントが含まれていません。アプリがAppleプッシュ通知サービスを使用している場合は、プロビジョニングポータルでアプリIDのプッシュ通知が有効になっていることを確認し、「aps-environment」資格を含む配布プロビジョニングプロファイルでアプリに署名した後で再送信します。

アドホックプロビジョニングを確認したところ、aps-environmentとproductionが見つかりましたが、ディストリビューションプロビジョニングを開いたときに見つかりませんでした。

これがこのエラーメッセージとアップルの拒否の原因ですか、どうすれば修正できますか?

回答:


80

はい、それがApp Storeの拒否の原因です。アドホックプロビジョニングプロファイルにaps-environmentキーがある場合、それはアプリがAppleプロビジョニングポータルで正しく設定されていることを意味します。ローカルマシン上のApp Storeディストリビューションプロファイルを削除してから、プロビジョニングポータルからディストリビューションプロファイルを再ダウンロードしてインストールするだけです。この新しいものには、aps-environmentキーが含まれている必要があります。


もう少し霧を取り除くために、これは「配布プロファイルにはaps-environmentなどが含まれている必要がある」とテキストエディタでプロビジョニングを開いたときに、そこに横になっているのを見つけなければならないことをかなり述べています...
mirageservo

特に配布プロファイルから何かを変更した場合、新しいssl証明書を生成する必要がありますか?
mirageservo 2013

2
いいえ、新しい開発者証明書は必要ありません。プッシュ通知の配布を有効にした場合(アドホックプロファイルにaps-environmentキーがあるため、ある時点でこれを行う必要があります)、iTunes Provisioning Portalはaps-environmentキーを含む新しいアプリストア配布プロファイルを生成します。あなたはおそらく最新のものをダウンロードしてインストールしたばかりです。
トム

この質問が銀河に到達する前にもう1つ、プロジェクトのビルド設定が変更されるため、IPAを再コンパイル(再アーカイブ)する必要がありますか、それとも再コンパイルを気にせずにアプリを直接配布できますか?
mirageservo 2013

再アーカイブする必要があります。アプリに関連付けられているプロビジョニングプロファイルは.ipaに埋め込まれます。
トム

43

最初のアプリID

本番側でIDプッシュ通知が有効になっていることを確認してください

写真のように

ここに画像の説明を入力してください

2番目の証明書

製造セクションから、IDを使用して2つの証明書を作成します(プッシュ通知が有効)

App Storeとアドホック証明書

Appleプッシュ通知サービスSSL(サンドボックス)証明書

ここに画像の説明を入力してください

3番目のプロビジョニングプロファイル

配布セクションから、自分のIDでApp Storeプロファイルを作成します

最後に

ビンをアップロードするときに、使用したプロビジョニングプロファイルを確認し、多くの資格を持っている必要があります。

ここに画像の説明を入力してください

これはすべての場合にこの問題を引き起こしますこれがあなたに役立つことを願っています


1
これは私が欠けていたものです。プッシュ通知でApp IDを使用して、Apple開発者サイトで新しいプロビジョニングプロファイルを作成する必要がありました。新しいプロビジョニングプロファイルにより、最終的にaps-environmentエンタイトルメントがアプリに追加されました。ありがとうございました!
M.ルイザカリオン2016年

38

XCode 8では、プロビジョニングと証明書のすべてを有効にすることに加えて、ターゲットの[機能]タブでプッシュを有効にする必要があります。 Xcode 8「aps-environmentエンタイトルメントがアプリの署名にありません」

これに関する私のブログ投稿はこちら


8
これはそのような古典的なアップルです。ビルドを送信してから2時間後に、私が長い間解決してきた問題(開発ポータルでプッシュ通知アプリケーションサービスを有効にする)に関するエラーメッセージが送信され、404へのリンクが表示されます。問題は、新しいバージョンのソフトウェア(私がロックされている)にアップグレードするときに私の設定が移行されなかったことです。ああ。
レンブラントQ.アインシュタイン

3
ここで同じ話。エラーメッセージをAppleのバグとしてほぼ無視しました。
Vaiden

23

別の理由でこのメッセージが表示されました-最初にアプリ専用のApp Store配布プロファイルを作成せずにXcode経由でアプリを送信しました。Xcodeは、ワイルドカードのApp Storeプロファイルがインストールされている場合、それを自動的に使用すると思います。ただし、プッシュ通知を使用するアプリには独自のプロファイルが必要です。

修正は、アプリの新しいApp Store配布プロファイルを作成することです。次に、それをダウンロードしてXcodeにドラッグし、新しいプロファイルを使用するようにプロジェクトのビルド設定>コード署名>リリースを変更します。


11

@Vaidenの回答に続き、Xcode 8では、ターゲットを選択して[問題を修正]をクリックすることで、この問題を解決できます。もちろん、Apple開発者ポータルでプッシュ通知を設定する必要があります(プロビジョニングプロファイルをダウンロードする手間を省く新しい「署名を自動的に管理する」オプションを使用すると、プロセスを少し簡略化できます)。

私を修正するオプション


8

アプリでプッシュ通知を実際に使用しているこの問題が発生している場合:

私たちのプッシュ証明書は最近有効期限が近づいているので、Appleによって概説されている標準的な方法で新しいdev / prodプッシュ証明書を作成しました(ここではこれについて詳しく説明しません。更新中にWeb全体にたくさんの情報があります。別の年のプッシュ証明書)。

しかしそうした後、この質問の問題が浮上しました。私たちが何をしたにせよ、私たちはアプリを提出した後にAppleからこのメールを受け取りました。Apple Member Centerでディストリビューションプロビジョニングプロファイルの設定を確認したところ、すべてが正常に見えました(prod / devの両方のアプリIDでプッシュが有効になっており、ディストリビューションプロビジョニングプロファイルがこのアプリIDに接続されたままでした。標準的な慣行であるように、別の年の新しいプッシュ証明書)。

最後に、これは私のためにそれを解決することになったものです:

  1. アプリIDを指す新しい配布プロビジョニングプロファイルを作成します(現在のプロファイルをそのままにしておきます)
  2. Xcodeで、[設定]> [アカウント]> [アカウントを選択]> [詳細]> [更新]アイコンをクリックして、プロビジョニングプロファイルを更新します
  3. アプリのエンタイトルメントplistファイルを手動で作成します。
    • ファイルメニュー>新規ファイル...
    • [iOS]> [Resource]> [Property List]を選択します
    • 新しいファイルに「foo.entitlements」という名前を付けます(通常、「foo」はターゲット名です)。
    • 「資格ファイル」の横の(+)をクリックして、最上位のアイテムを追加します(プロパティリストエディターは、ファイル拡張子により正しいスキーマを使用します)。
  4. このエンタイトルメントファイルがターゲットのビルド設定で使用されていることを確認します([ターゲット]> [ビルド設定]> [エンタイトルメント]を検索し、CODE_SIGN_ENTITLEMENTSで作成したエンタイトルメントファイルへのパスを設定します)
  5. ターゲットのプロビジョニングプロファイル/コード署名IDが適切なディストリビューションプロビジョニングプロファイル/署名IDに正しく設定されていることを確認してください(これは明らかです)
  6. これが影響したかどうかは100%わかりません(ターゲット設定がプロジェクト設定をオーバーライドしているため、そうではありませんが、とにかくこれを行いました)。プロジェクトのプロビジョニングプロファイル/署名IDがターゲットのものと一致していることを確認してください
  7. 作成したエンタイトルメントファイルで、空のファイルを右クリックして[未加工のキー/値を表示]を選択します。
  8. 「aps-environment」という資格ファイルに新しいエントリを追加し、その値を「production」に設定します
  9. 重要な注意点の1つは、以前にkeychain-access-groups資格を使用していた場合は、何らかの理由で手動でこれを実行するとクリアされたため、ここにもそのキーを追加する必要があります。値が以前のビルドで使用された値と同じであることを確認します(オーガナイザーで以前のビルドを見つけ、アプリストアへの送信を試み、チームを選択してから、アプリを送信する前に、 「(X)Entitlements」文字列。資格を展開し、keychain-access-group資格の値を表示します。
  10. アプリをアーカイブし、最後の[送信]ボタンに到達するまで送信を試みます。このアプリが、メンバーセンターで作成した新しいプロビジョニングプロファイルを使用して作成されていることを確認します。これを今キャンセルしてください。
  11. Appleメンバーセンターに戻り、手順1で作成した新しいプロビジョニングプロファイルを削除します。
  12. Xcodeに戻り、手順2を繰り返して、プロビジョニングプロファイルリストをもう一度更新します。
  13. アプリを再度アーカイブすると、アプリが、使用したい古いディストリビューションプロビジョニングプロファイルでビルドされ、aps-environmentエンタイトルメントが正しく設定されていることがわかります。送信すれば完了です。

これはスクリーンショットがあるほど詳細ではないことを知っています。可能な場合はスクリーンショットで更新してみますが、とりあえず今は時間の危機に瀕しており、私がそこでやったこと。また、ここで説明した手順の一部またはほとんどが不要である可能性が非常に高いので、ここに配置します。私が行ったので、最終的な解決策につながった可能性があります。


ありがとうございました。私にとっての#8は開発に向けられていました。
ingage

本当にありがとうございました。この派手な1日が無駄になりました。手順4が問題でした。CODE_SIGN_ENTITLEMENTSを指定せずに、資格がアプリストアのアップロードでのみ無視されました。
マークカザコフ2018年

5

iOSプロビジョニングポータルのdeveloper.apple.comでアプリIDがプッシュ対応であるかどうかを確認します。そうでない場合は、アプリIDのプッシュSSL証明書を設定してダウンロードし、キーチェーンに再インストールしてから、ディストリビューションプロファイルのインストールをダウンロードしますXcode Liabrary


4

アプリでプッシュ通知をまったく使用していなくても、この問題に直面していました。新しいプロビジョニングプロファイルを作成しても機能しませんでした。

1.アドホックおよびApp Store専用の新しい新しい証明書を作成します。

2.次に、この証明書を使用して配布プロファイルを作成し、プロファイルをXcodeと統合します。

その後、警告なしに承認されたこのプロファイルでビルドを新しく送信しました。


2
私はこれを試しました-助けにはなりませんでした。不足しているプッシュ通知がまだ表示されます。プッシュ通知は使用しません。
アダム

2

私の場合、myapp.profileを作成してxcodeに手動で設定し、「ファインダーに表示」を選択してembedded.mobileprovisionを見つけ、aps-environmentがファイルにあることを確認すると、エラーが発生しましたまだあります。

その後、デベロッパーセンターにアクセスしたところ、XC:myapp.profileのステータスが無効であることがわかりました。私はそれを更新し、XC:myapp.profileをインストールしましたが、うまくいきました。

xcodeがプロファイルを管理しようとしていると思います。バイナリをストアに送信するときにプロビジョニングプロファイルを確認し、それが正しいものであることを確認する必要があります。そして、他の回答によると、それはさまざまな理由で引き起こされる可能性があるので、それは本当に迷惑になる可能性があります。

更新:

ダウンロードしたプロファイルで署名し、それaps-environmentをに送信しようとしたときにそこにあることを確認したらApp Store、プロファイルとコード署名エンティティを自動およびに変更できるはずiOS Developerです。Xcode 7で改善できることを願っています。


すべてのプロファイルとXCをチェックしました。プロファイルが更新され、asp-environmentキーが含まれていないため、同じ問題が何度も発生します。任意の助けをいただければ幸いです。そして、はい、アプリケーションにプッシュ通知を実装する必要はありません
iOSDev

プロビジョニングプロファイルのバイナリコンテンツを確認して、「aps-environment」という文字列が内部にあるかどうかを確認してください。内部にある場合は、それを取り除くための方法を見つける必要があります。それ以外の場合は、プロファイルがアプリの署名に使用するプロファイルであることを確認する必要があります。いずれにせよ、問題があるはずです。
superarts.org 2015

1
私はそれを2度確認しましたが、もっと詳しく調べようとしましたが、運はありませんでした。そのような文字列はありませんが、2日間の検索と試行の後に、この問題はコードではなくXcode 7ベータ版であることを確認しました。Xcode6.4による同じビルドは完全に機能し、Appleからのメールは報告されていません。この問題は、コードやプロファイルではなく、Xcode 7ベータ4で発生します。
iOSDev 2015

2

これは私のためにそれを修正したものでした。(私はすでに機能のオン/オフの切り替え、プロビジョニングプロファイルの再作成などを試みました)。

ではビルド設定 ]タブでコード署名資格、私の.entitlementsのファイルには、すべてのセクションのリンクはなかったです。Any SDKセクションに追加すると、エラーは解決されました。

ここに画像の説明を入力してください


2

expoの「排出された」アプリでこれを解決するには、機能タブに移動し、プッシュを有効にしてから、再度無効にしました。これにより、.entitlementsファイルからAPNSの「資格」設定が削除されました。


私の「排出された」プロジェクトでこれを試しましたが、それでもこれらの通知が
届きます


0

アプリの配布プロファイルの有効期限が切れたため、これは突然起こりました。Xcodeは、代わりにワイルドカードプロファイルの使用を開始しましたが、プッシュ通知の資格が有効になっていませんでした。警告を受けませんでした。修正は簡単でした。Apple Developer Member Centerでアプリの別の配布プロファイルを生成してダウンロードし、ダブルクリックしてXcodeにインストールするだけで済みました。


0

ここには本当に良い提案がいくつかあります。

Minaが提供した最後のスクリーンショットを参照すると、最初にアプリをアーカイブした後、アップロード中に言及されたプロビジョニングプロファイルにワイルドカード(XC。*)が含まれていました。これは間違っています。

これを解決するにはかなりの努力が必要でした。Simon WoodsideとMina Fawzyの提案を組み合わせて実行する必要がありました。

プロジェクトに関連する既存の証明書とプロビジョニングプロファイルがある場合、ここでそれらをすべてローカルで削除し、それらをすべてリモートで取り消すのがよいでしょう。新たなスタートを切りましょう。

Mina Fawzyの詳細な提案は優れています。ミナの提案を実行すると、正しく実行されれば、オンラインで対応することができます。

サイモンの提案を入力してください。プロジェクトの内部を確認するために必要な2つのこと。XCodeを使用して、ここに行きます:

プロジェクト->ビルド設定->コード署名

確認コード署名アイデンティティプロビジョニングプロファイルをプロパティを。これらの2つのプロパティをプロジェクト名のプロパティに設定してください。XCodeが自動的に選択することを許可しないでください。また、いくつかの一般的なコード署名ID(Iphone Developerなど)を使用しないでください。

アーカイブを決定する前に、実際にデバイスにアプリをインストールできることを確認してください。


0

Push Notificationfrom Capabilitiesを有効にしてすべての証明書を再作成した後の最大の問題は、プロジェクトが格納されているターゲット名フォルダー名が、スペースで区切られた2つの文字列で構成されていることです。スペースを削除した後、すべてうまくいきました!


1
私のアプリはプッシュ通知を使用していませんが、それでもアップルからこの警告を受けています。提案してください
チャンドニー

0

以前の手動編集が原因で資格ファイルが不正であったため、この問題が発生しました。誤ってフォーマットされた資格エントリ構文を削除した後、機能タブで[修正]をクリックすると、Xcodeが資格をファイルに追加しました。

以下は、適切にフォーマットされた資格ファイル( " Runner.entitlements")の例です。

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.applesignin</key>
    <array>
        <string>Default</string>
    </array>
</dict>
</plist>

0

FIX IDEA こんにちは、私はアプリを作成し、プッシュ通知機能を使用しませんでしたが、それでもメールが届きます。Apple Store Connectでアプリを作成するために使用したバンドル識別子の証明書、ID、プロファイルをApple Developer Portalで確認した後、プッシュ通知がオンになっていることに気付きました。

あなたがしなければならないのは:

証明書を管理できるApple開発者ログインサイトにアクセスします2.右側の「証明書、ID、プロファイル」タブを選択します3.次に「識別子」を選択します4.リストから右側にバンドルIDを選択します5。プッシュ通知が表示されるまで下にスクロール6.オフにする7.ビルドをアーカイブし、Apple Store Connectに再アップロードする

それが役に立てば幸い!

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