web-dev-qa-db-ja.com

iTunesStoreのビルド後にiOS10 / Xcode8.0の「MissingPushNotificationEntitlement」エラーを投稿する

ITunes Store用にビルドしてアーカイブを送信しているときに、Appleから次のエラーが表示されます。

親愛なる開発者、

「XXXXXXXXX」の最近の配信で1つ以上の問題が見つかりました。配信は成功しましたが、次の配信で次の問題を修正することをお勧めします。

プッシュ通知エンタイトルメントがありません-アプリにはAppleのプッシュ通知サービス用のAPIが含まれていますが、アプリの署名にaps-environmentエンタイトルメントがありません。これを解決するには、プロビジョニングポータルでアプリIDがプッシュ通知に対して有効になっていることを確認してください。次に、aps-environmentエンタイトルメントを含む配布プロビジョニングプロファイルを使用してアプリに署名します。これにより正しい署名が作成され、アプリを再送信できます。詳細については、ローカルおよびプッシュ通知プログラミングガイドの「プロビジョニングと開発」を参照してください。アプリがAppleプッシュ通知サービスを使用しない場合、アクションは不要です。今後の送信からAPIを削除して、この警告を停止できます。サードパーティのフレームワークを使用している場合は、 APIの削除については、開発者に問い合わせる必要があります。

問題を修正したら、XcodeまたはApplicationLoaderを使用して新しいバイナリをiTunesConnectにアップロードできます。

よろしく、

AppStoreチーム

フォーラムで提案されているようにプロビジョニングプロファイルを再作成しようとしましたが、それでも同じメールが届きます。

[機能]タブでビルドされた.xcodeprojを開いている間、プッシュ通知設定がオフになっているようです。

11
fahad86

プロジェクトのルートにEntitlements.plistファイルを作成してみてください。

<?xml version="1.0" encoding="UTF-8"?>
<!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>production</string> <!-- Either development or production -->
  </dict>
</plist>

したがって、Xcode 8より前では、Xcodeはプロビジョニングプロファイルを読み取り、プロファイルにプッシュエンタイトルメントが設定されている場合、ビルドにエンタイトルメントが自動的に追加されます。 Xcode 8以降、これは当てはまらず、使用するエンタイトルメントを具体的に指定する必要があります。

16
StephenFeather

以下にリンクされているこの回答は、ここで提案されているソリューションよりも少し簡単です。新しいファイルを手動で作成しなくても、xCodeUIを使用して簡単に修正できます。機能セクションのプッシュ通知のスイッチを切り替えるだけです。

https://stackoverflow.com/a/39420213/4076298

2
delrox

Appceleratorは、今後のリリース5.5.1でこの問題を実際に修正しており、ここからダウンロードできます: http://builds.appcelerator.com.s3.amazonaws.com/index.html#5_5_X

0
fahad86