開発証明書を使用する場合、プッシュ通知は正常に機能しています。アドホックディストリビューションで本番証明書に切り替えたとき、アプリはプッシュ通知の登録に失敗します。UIApplicationDelegateでは、呼び出されることも呼び出されることもdidRegisterForRemoteNotificationsWithDeviceToken
ありませdidFailToRegisterForRemoteNotificationsWithError
ん。さらに、デバイスログを調べたところ、次のことがわかりました。
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'application-identifier' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
Sep 30 12:47:09 Heshams-iPad amfid[483] <Error>: entitlement 'application-identifier' has value not permitted by a provisioning profile
プロビジョニングプロファイルのエンタイトルメントキーは次のようになります。
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>KUK8W9TW2G.com.startappz.ConversableDemo</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>KUK8W9TW2G.*</string>
</array>
</dict>
Xcodeとポータルの両方からプロビジョニングプロファイルを削除して再作成しようとしました。また、証明書を取り消して再作成しようとしました。アプリIDも変更し、すべてをゼロから行いました。
また、個別のエンタイトルメントファイルがある場合とない場合でビルドを試みました。
アップデート
現在、配布プロビジョニングプロファイルを使用してデバイスでデバッグしています。これで、アプリは本番サーバーでプッシュ通知を正常に登録および受信しますが、アプリをアーカイブするとプッシュ通知が中断されます。
だから今、私はアプリをアーカイブするときにXcodeが何かを台無しにしているとほぼ確信しています。