拒否されたときに送信するアプリがあり、メッセージが表示された
プッシュ通知資格の欠落-アプリはAppleプッシュ通知サービスに登録されているように見えますが、アプリの署名の資格には「aps-environment」資格が含まれていません。アプリがAppleプッシュ通知サービスを使用している場合、プロビジョニングポータルでアプリIDがプッシュ通知に対して有効になっていることを確認し、「aps-environment」を含むDistributionプロビジョニングプロファイルでアプリに署名した後に再送信します資格。
アドホックプロビジョニングを確認したところ、aps-environmentとproductionが見つかりましたが、ディストリビューションプロビジョニングを開いたときに、そのようなものが見つかりません。
これがこのエラーメッセージとApple拒否の原因ですか?どうすれば修正できますか?
はい、それがApp Store拒否の原因です。アドホックプロビジョニングプロファイルにaps-environmentキーがある場合は、Apple Provisioning Portalでアプリが正しく構成されていることを意味します。必要なことは、ローカルマシンのApp Store配布プロファイルを削除してから、プロビジョニングポータルから配布プロファイルを再ダウンロードしてインストールすることだけです。この新しいものにはaps-environmentキーが含まれている必要があります。
最初のアプリID
本番側でIDプッシュ通知が有効になっていることを確認してください
写真に現れるように
第二の証明書
本番セクションから、IDを使用して2つの証明書を作成します(プッシュ通知が有効)
App StoreおよびAd Hoc証明書
Appleプッシュ通知サービスSSL(サンドボックス)証明書
サードプロビジョニングプロファイル
DistributionセクションからApp StoreあなたのIDでプロファイルを作成します
最後に
binをアップロードしている間、どのプロビジョニングプロファイルが使用され、多くの資格があるかを確認する必要があります
これはすべてのケースでこの問題を引き起こします。
XCode 8では、プロビジョニングと証明書のすべてを有効にすることに加えて、ターゲットの[機能]タブでプッシュを有効にする必要があります。 Xcode 8 "送信時に
これについての私のブログ投稿 here 。
別の理由でこのメッセージを受け取りました。最初にアプリ専用のApp Store配布プロファイルを作成せずにXcode経由でアプリを送信しました。 Xcodeは、インストールされている場合、ワイルドカードApp Storeプロファイルを自動的に使用すると考えています。ただし、アプリでプッシュ通知を使用するには、独自のプロファイルが必要です。
修正方法は、アプリの新しいApp Store Distributionプロファイルを作成することです。次に、それをダウンロードし、Xcodeにドラッグして、プロジェクトの[ビルド設定]> [コード署名]> [リリース]を変更して、新しいプロファイルを使用します。
@Vaidenの回答に続いて、Xcode 8では、ターゲットを選択して[問題の修正]をクリックすることでこの問題を解決できます。もちろん、 Apple Developer portal でプッシュ通知を設定する必要があります(手間を省く新しい「自動署名管理」オプションを使用すると、プロセスを少し簡素化できますプロビジョニングプロファイルをダウンロードします)。
実際にアプリでプッシュ通知を使用しているこの問題に直面している人向け:
Push証明書は最近期限切れになりそうだったので、Appleで概説されている標準的な方法で新しいdev/prod Push証明書を作成しました(ここでは詳しく説明しません。プッシュ証明書をもう1年間使用するために更新するときに、ウェブ全体で使用できます)。
しかし、そうすると、この質問の問題が浮かび上がりました。何をしても、アプリを送信した後、Appleからこのメールを受け取りました。 Appleメンバーセンターでディストリビューションプロビジョニングプロファイルの設定を確認したところ、すべて正常に見えました(prod/devの両方でアプリIDのプッシュが有効になっており、ディストリビューションプロビジョニングプロファイルはこのアプリに接続されたままです) ID、私たちは文字通り、標準的な慣行であるように、もう1年間新しいPush証明書を作成しました。
最後に、これは私にとってそれを解決することになったものです:
私はこれがスクリーンショットがあるべきほど詳細ではないことを知っています。可能な場合はスクリーンショットで更新しようとしますが、当分の間、私は今時間のクランチになっていて、私がそこにしたこと。また、ここで説明した手順の一部または大部分は不要である可能性が非常に高いです。それらを実行したので、ここに配置しています。
iOSプロビジョニングポータルのdeveloper.Apple.comで、アプリIDがプッシュ対応かどうかを確認し、有効になっていない場合は、アプリIDのプッシュSSL証明書を構成してダウンロードし、キーチェーンにもう一度再インストールしてから、Distrubution ProfileをダウンロードしますXcode Liabraryで
私もこの問題に直面していました私はプッシュ通知をまったく使用していませんでした私のアプリで新しいプロビジョニングプロファイルがうまくいかなかった
1。Ad hoc&App Storeのみの新しい証明書を作成します。
2。この証明書を使用して配布プロファイルを作成し、プロファイルをXcodeと統合します。
その後、警告なしで承認されたこのプロファイルで新しく送信されたビルド。
私の場合、myapp.profileを作成して手動でxcodeに設定し、「Finderで表示」を選択してembedded.mobileprovisionを見つけ、aps-environmentがファイルにあることを確認すると、エラーが発生しました。まだそこに。
その後、デベロッパーセンターにアクセスして、XC:myapp.profileのステータスが無効であることがわかりました。私はそれを更新し、XC:myapp.profileをインストールしましたが、うまくいきました。
Xcodeはプロファイルを管理しようとしているため、バイナリをストアに送信するときにプロビジョニングプロファイルを確認し、それが正しいことを確認する必要があると思います。他の回答によると、それはさまざまな理由で引き起こされる可能性があるため、本当に迷惑です。
更新:
ダウンロードしたプロファイルで署名し、aps-environment
に送信しようとしたときにApp Store
が存在することを確認したら、プロファイルとコード署名エンティティを自動およびiOS Developer
に変更できるはずです。 Xcode 7で改善できることを願っています。
エキスポ「イジェクトされた」アプリでこれを解決するために、機能タブに移動し、プッシュを有効にしてから再度無効にしました。これにより、APNSの「資格」設定が.entitlementsファイルから削除されました。
私は同じ問題を抱えていました。私の解決策は、Target-> Capabilitiesからプッシュ通知の資格を追加することでした。
これは、アプリの配布プロファイルの有効期限が切れたために突然起こりました。 Xcodeは、代わりにワイルドカードプロファイルの使用を開始しました。このプロファイルでは、プッシュ通知の資格が有効になっていませんでした。警告は表示されませんでした。修正は簡単でした。 Apple Developer Member Centerでアプリの別の配布プロファイルを生成し、ダウンロードし、ダブルクリックしてXcodeにインストールする必要がありました。
ここにいくつかの本当に良い提案があります。
Minaが提供した最後のスクリーンショットを参照すると、最初にアプリをアーカイブした後、アップロード時に言及したプロビジョニングプロファイルにワイルドカード(XC。*)が含まれていました。これは間違っています。
これを解決するには、かなりの努力が必要でした。 Simon WoodsideとMina Fawzyが提供した提案を組み合わせて実行する必要がありました。
プロジェクトに関連する既存の証明書とプロビジョニングプロファイルがある場合は、それらすべてをローカルで削除し、それらをすべてリモートで取り消すのがよいでしょう。新たなスタートを切りましょう。
Mina Fawzyの詳細な提案は素晴らしいものです。 Minaの提案を正しく実行すると、オンラインであなたの面倒を見るはずです。
サイモンの提案を入力してください。プロジェクト内で確認する必要がある2つのこと。 XCodeを使用して、ここに移動します。
プロジェクト->ビルド設定->コード署名
コード署名IDおよびプロビジョニングプロファイルプロパティを確認します。これらの2つのプロパティをプロジェクト名のプロパティに設定してください。 XCodeが自動的に選択することを許可しないでください。また、一般的なコード署名ID(Iphone Developerなど)を使用しないでください。
アーカイブを決定する前に、実際にデバイスにアプリをインストールできることを確認してください。
Capabilities
からPush Notification
を有効にしてすべての証明書を作り直した後の最大の問題は、ターゲット名とフォルダー名が保存された場所がプロジェクトが2つの文字列で構成されていたことですスペースで区切られます。スペースを削除した後、すべてがうまくいきました!