ちゃんとpush通知用の設定済みでXcode7とiOS9では正常にdeviceTokenが取得できるのに
Xcode8(Beta2)とiOS10ではなぜかdeviceTokenが取れず失敗する。
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
error => (NSError)Error Domain=NSCocoaErrorDomain Code=3000 "Appの有効な“aps-environment”エンタイトルメント文字列が見つかりません" UserInfo={NSLocalizedDescription=Appの有効な“aps-environment”エンタイトルメント文字列が見つかりません}
このような場合はTarget -> Capabilities -> Push Notificationsを確認してみる
Xcode8(Beta2)ではXcode7ではなかっかStepが追加されている
Add the Push Notifications entitlement to your entitlements file
Fix Issueボタンを押すとprojectname.entitlementsにaps-environment
を追加してくれる
<?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>development</string>
</dict>
</plist>
これで一応開発環境でdeviceTokenが取得できる。
https://developer.apple.com/library/prerelease/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingLocalAndPushNotifications.html
とか見るとaps-environmentの値はdevelopmentとproductionが可能だがXcode8任せではdevelopmentのみ可能な状況
まだBeta2なので何が正解かはわからないが、とりあえず参考までに、、、
ーーーーーーーーーーーーーーーーーーーーー