私たちは過去6ヶ月間に数十のバージョンを提出したアプリを持っています、そして私たちはAPNSを使います。 Xcode 8にアップグレードした後、私はAppleから次のメールを受け取りました
開発者各位
最近のAPP_NAMEの配信に問題が1つ以上見つかりました。あなたの配達は成功しました、しかしあなたはあなたの次の配達で以下の問題を修正したいかもしれません:
プッシュ通知エンタイトルメントの欠如 - あなたのアプリにはAppleのプッシュ通知サービスのためのAPIが含まれていますが、aps-環境エンタイトルメントがアプリの署名から欠落しています。これを解決するには、プロビジョニングポータルでApp IDがプッシュ通知に対して有効になっていることを確認してください。次に、aps-environmentエンタイトルメントを含むディストリビューションプロビジョニングプロファイルでアプリに署名します。これにより正しい署名が作成され、アプリを再送信できます。詳細については、 『Local and Push Notification Programming Guide』の「Provisioning and Development」を参照してください。アプリがApple Push Notificationサービスを使用していない場合は、何もする必要はありません。この警告を防ぐために、今後の送信からAPIを削除することができます。サードパーティのフレームワークを使用している場合は、APIを削除する方法について開発者に問い合わせる必要があります。
問題を解決したら、XcodeまたはApplication Loaderを使用して新しいバイナリをiTunes Connectにアップロードできます。
よろしく、
App Storeチーム
奇妙なことは私が行ったことですdeveloper.Apple.com - >証明書、識別子とプロファイルそして私のAppIdはまだプッシュ通知が有効になっていません。 Xcode 8アップデートで何か問題が発生した場合は、興味があります。何か案は?
ところで:彼らがプッシュ通知プログラミングガイドにつけるリンクは電子メールで壊れていた、それでそれは良いサインではありません。
実はとても簡単です。何らかの理由でXcode 8では無効になっていましたが、Targets - > Capabilitiesに移動してPush Notificationsがすべて正しいことを確認してください。私にとってそれは、私がクリックしなければならなかった「Fix Me」を持っていた、そして失礼した。
Xcode リリースノート から:
Xcode 8は、ビルド時にプロビジョニングプロファイルからaps-environmentエンタイトルメントを自動的にコピーしません。この動作は意図的です。この資格を使用するには、プロジェクトエディタの[機能]ウィンドウで[プッシュ通知]を有効にするか、資格を手動で資格ファイルに追加します。 (28076333)
Aps-environmentエンタイトルメントがplistを必要としなかったこと、しかし他の多くがそうしていたことは常に非常に奇妙だったので、これは大きな変化です。
盲目的に「Fix Me」を押したくないし、現在エンタイトルメントファイルを持っていないのであれば、それはプロジェクトの「ビルド設定」の「コード署名エンタイトルメント」で参照されているplistファイルです。
Xcode 8に変更がありました。これは、エンタイトルメントがApp Identifierからではなく、アプリターゲットで選択された機能から取得されたものです。したがって、Unome(OP)が言ったように、プッシュ通知がオンになっていることを確認する必要があります。
私にとっては、「Fix Me」ボタンではありませんでしたが、2つのエンタイトルメントファイル(開発用と配布用)がありました。プッシュ通知機能を切り替えると、開発エンタイトルメントファイルにaps-environment
キー(値development
)が追加されますが、配布エンタイトルメントファイルには追加されません。 iTunes Connectにアップロードするときに同じキーを配布にコピーすると、警告の電子メールを取り除くことができました。
ほとんどのプロジェクトでは、プッシュ通知をオンにするだけで十分です。すでにオンになっていてもキーがエンタイトルメントにない場合は、オフにしてからもう一度オンにします。
Firebaseフレームワークを使用していてプッシュ通知を使用していない場合は、2つの解決策があります。1.バイナリをアップロードするたびにチーム全体に送信される「issue」メッセージを表示する。あなたが実際にあなたが警告を無視することができる通知を使用していない限り、アプリはまだ提出として受け入れられます。または2.これを行います。 https://stackoverflow.com/a/46802075/7529450 。これにより、迷惑な電子メール通知が削除され、送信として承認されます。
Xcode 9のプッシュ通知を使用する機能が有効になりました。
Push Notification機能を無効化/再有効化してみました。 (うまくいきませんでした)
署名を自動的に管理するを無効にする/再度有効にすることを試みました。 (うまくいきませんでした)
プロビジョニングプロファイルを削除して再度追加する必要があることがわかりました。 ( やり方はこちらを見てください )ワード後に自動的に署名を管理するを無効にする/再度有効にする必要があるかもしれません。
私にとって問題は、2つのエンタイトルメントファイルEntitlements-Debug.plist
とEntitlements-Release.plist
があるためです。そのうちの1つ(デバッグ)だけに設定が必要です。
ビルド設定>署名>コード署名エンタイトルメントの複数の値を単一のMyAppName/MyAppName.entitlements
に変更してから、ケーパビリティ>プッシュ通知を再度有効にするスイッチャーが私のためにトリックをしました。
それが役に立てば幸い。
もう1つの選択肢は、AppName/Entitlements-Debug.plist
のソースをAppName/Entitlements-Release.plist
にコピーペーストすることです。