web-dev-qa-db-ja.com

xcode 8プッシュ通知機能と資格ファイルの設定

xcode 8を使用してプッシュ通知設定を行う場合、xcode 7xcode 8とは異なり、開発者はプッシュ通知機能スイッチをオンにする必要があります(次の写真のTARGETS -> AppName -> Capabilitiesにあります)、 Push notifications capabilities

その後、次のようにAppName.entitlementsファイルを生成します

//AppName.entitlements
<key>aps-environment</key>
<string>development</string>

しかし、プロダクションバージョンアプリの場合、文字列を

//AppName.entitlements
<key>aps-environment</key>
<string>production</string>

その後、機能は警告を表示します

Capabilities warning

そして、aps-environmentでどの文字列値が指定されていても、application:didRegisterForRemoteNotificationsWithDeviceToken:でプッシュデバイストークンを取得できます

それでは、プッシュ通知資格の正しい設定は何ですか?ありがとうございました

64
CJ Lin

今日、Xcode 8 GMでそれと格闘していた。設定を無効にし、開発者ポータルのプロビジョニングプロファイルを削除して再生成し、設定を再度有効にした後、Xcodeの警告を削除することができました。私は資格ファイルをいじっていなかったことに留意してください。開発環境に残し、アーカイブした後、正しいaps-environment設定(本番)を取得しました。

XcodeはGMでもまだ非常にバグが多いようです

32
Shardon

私の問題は、プッシャークライアントが古く、トークンをデバッグするためにのみ正常にプッシュすることでした。私がまだ修正に取り組んでいる他の問題は、legacy-apiが有効になっているジムでのみアプリをエクスポートできることです。これはapns-environmentを「生産」に設定せず、「 embedded-mobile.provision」ファイル。しかし、今では、apns(prod)を操作するために、xcodeオーガナイザーを介してアプリを正常にデプロイすることができました。

0
Pellet

より良い解決策は、プロジェクトパッケージを開いてproject.pbxprojを開くことだと思います

CODE_SIGN_ENTITLEMENTSを変更します

CODE_SIGN_ENTITLEMENTS = "your-app/production.entitlements";
0
Rain