xcode 8 push notification capabilities and entitlements file setting

CJ Lin picture CJ Lin · Sep 1, 2016 · Viewed 31.1k times · Source

when using xcode 8 doing the push notification setting, unlike xcode 7, xcode 8 need developer turn on push notifications capabilities switch ( located at TARGETS -> AppName -> Capabilities as following pic ), push notifications capabilities

then it will generate AppName.entitlements file as following

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

but for production version App, if we change the string to

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

then the Capabilities show a warning

Capabilities warning

and it seems no matter which string value specified in aps-environment, we can still get the push device token at application:didRegisterForRemoteNotificationsWithDeviceToken:

so what is the correct setting of the push notification entitlements? thank you

Answer

Shardon picture Shardon · Sep 9, 2016

I was struggling with that today in Xcode 8 GM. After disabling the setting, deleting my developer portal provisioning profile and regenerating it and enabling the setting again, I was able to eliminate the warning in Xcode. Keep in mind that I didn't fiddle with the entitlements file. I left it at development environment and after archiving I got the correct aps-environment setting (production).

Seems Xcode is stilly very buggy tho even in GM