CloudKit, remote-notification, and aps-environment - ios

In setting up CloudKit remote notifications, I enabled the "Remote notifications" capability which adds the remote-notification field to my Info.plist. But then I get this error in the console:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x17db9850
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
And this error is emailed to me when I submit to iTunes Connect:
Missing Push Notification Entitlement - Your app appears to include API used to register with the Apple Push Notification service,
but the app signature's entitlements do not include the
"aps-environment" entitlement. If your app uses the Apple Push
Notification service, make sure your App ID is enabled for Push
Notification in the Provisioning Portal, and resubmit after signing
your app with a Distribution provisioning profile that includes the
"aps-environment" entitlement.
Ok, so I am supposed to update my provisioning profile - but when I attempt to do that and enable Push Notifications, it requires me to create SSL certificates to use on my server. I am using CloudKit though - I don't have a server. How do I update my provisioning profile?

Despite the error, I submitted my app to the app store and it was approved just before Thanksgiving. I told them about the error when I submitted. They didn't respond telling me anything about the error, but my app was approved.
Now I am working on an update, and the error has vanished for me. I didn't do anything that I know would have fixed it. It really seems like just an error in their system.
For anyone who gets this error, if you looked into it and things seem right, just press on. Its probably just an issue on Apple's side and doesn't seem to negatively affect the app's functionality or likelihood to be approved.

Related

Apple Development Xamarin.Forms: ERROR ITMS-90163 When Delivering App to TestFlight

So I created an iOS app in Xamarin.Forms and I want to send it to TestFlight to send for certain people to test. I am using the application Transporter to send the ipa file to TestFlight. The first time I did it, it was successfully sent however in TestFlight it was just hanging on processing forever, I got an email saying:
We identified one or more issues with a recent delivery for your app,
"My App Name" 1.3 (1.3). Please correct the following issues, then
upload again.
with this included:
ITMS-90078: Missing Push Notification Entitlement - Your app appears
to register with the Apple Push Notification service, but the app
signature's entitlements do not include the 'aps-environment'
entitlement. If your app uses the Apple Push Notification service,
make sure your App ID is enabled for Push Notification in the
Provisioning Portal, and resubmit after signing your app with a
Distribution provisioning profile that includes the 'aps-environment'
entitlement. Xcode does not automatically copy the aps-environment
entitlement from provisioning profiles at build time. This behavior is
intentional. To use this entitlement, either enable Push Notifications
in the project editor's Capabilities pane, or manually add the
entitlement to your entitlements file. For more information, see
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.
So in my app in Entitlements.plist I enabled Push Notifications. And in https://developer.apple.com/ I enabled Push Notifications in my Identifiers which is used for my profile. I also add Application Identifier in Entitlements.plist with the value of TEAMID.com.myorganization.MyApp and now I get this error when trying to deliver the app to TestFlight:
ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements
in your app bundle signature do not match the ones that are contained
in the provisioning profile. The bundle contains a key that is not
included in the provisioning profile: 'aps-environment'
What does this error mean and how to do I fix it? It seems to me like I need to include the Application Identifier to my provisioning profile and I have no idea how to do that, can anyone help, I have been stuck on this for days and none of the solutions out there havent worked for me.
Thanks,

Xcode entitlement - how?

I'm not sure what I am doing wrong here. I am trying to push a new version of my app to the App Store but repeatedly get (see below error) in return.
It says I had not set my entitlement in the app. So I checked my old build Xcode environment and did not see anything about entitlements there. On developer.apple.com portal my app is check marked with the Push Notification entitlement.
However, to move on I tried adding the push entitlement on the new build machine
Confusion - there is no "Push Notification" entitlement in the Xcode select menu, only "Notification Content Extension" and "Notification Service Extension". I now used the "Content Exetension"
Confusion. Adding this extension it asked me to add a new product name which in turn appended a new string to my valid bundle id:
my.bundle.id.NewProduct
Accepting this I now see a E in a circle under my proper app build target. Will this be included automatically in the build? I do not understand why it did not happen on my previous build machine since I do not have that circled E etc there. It just might have happened due to update history of Xcode.
What am I doing : I'm trying to enable Firebase Cloud Messaging with my app. Previously I only had APNS.
ITMS-90078: Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the 'aps-environment' entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the 'aps-environment' entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.

Push Notification Entitlement - Issue while uploading app to app store

I get the following mail after submitting my app:
App Store Connect
Dear Developer,
We identified one or more issues with a recent delivery for your app, "Zapit" 1.0.0 (1). Your delivery was successful, but you may wish to correct the following issues in your next delivery:
ITMS-90078: Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the 'aps-environment' entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the 'aps-environment' entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.
After you’ve corrected the issues, you can upload a new binary to App Store Connect.
Best regards,
The App Store Team
I never enabled push notification, and it is not enable in https://developer.apple.com/
So have no idea how to work it out.
What does it mean app signature's entitlements do not include the 'aps-environment' entitlement.? and how to I include it?
Where can I disable Apple Push Notification service?
Will I prevent my app from being approve, or I can dimply ignore this?
More info:
I just saw that under Certificates, Identifiers & Profiles/Generate a Provisioning Profile I had Push Notification under Enabled Capabilities
I deleted the Generate a Provisioning Profile and created a new one
I assume it was cause by choosing the first option here
So I tried to go with the second one, now im getting Profile doesn't include the selected signing certificate.
How do I include the selected signing certificate in the profile?

Missing Push Notification Entitlement even if app does not contain push notification enabled

I have created an app which doesn't use Push notification. In the Capabilities section of the app target Push notification is OFF. The app ID, development and distribution provisioning profiles does not contain Push notification as enabled services. But still i receive below email from iTunes whenever i upload binary to iTunes
Missing Push Notification Entitlement - Your app appears to register
with the Apple Push Notification service, but the app signature's
entitlements do not include the "aps-environment" entitlement. If your
app uses the Apple Push Notification service, make sure your App ID is
enabled for Push Notification in the Provisioning Portal, and resubmit
after signing your app with a Distribution provisioning profile that
includes the "aps-environment" entitlement. Xcode 8 does not
automatically copy the aps-environment entitlement from provisioning
profiles at build time. This behavior is intentional. To use this
entitlement, either enable Push Notifications in the project editor's
Capabilities pane, or manually add the entitlement to your
entitlements file. For more information, see
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.
What could have been gone wrong.
This is the equivalent of a warning, not an error.
However, if you want to remove the warning message, you can simply set Push notification to ON (even though you do not use them), and you won't receive this email on your next build. This will generate an entitlements file.
However, the people in this forum seem to have gotten their apps approved despite the warning (as of September 10, 2015):
https://forums.developer.apple.com/thread/15880

iOS push notifications nightmares, Provisions app IDs and certificates

Hey Apple developers,
I'm pulling my hair out trying to figure out how iOS provisioning profiles, certificates and app IDs work with push notifications. I thought I was close to getting this to work, but maybe not.
When I run my app and attempt to register push notifications, I get this error in the console:
2012-06-26 17:52:29.380 Grouped[1732:707] badgeNumber: 0
2012-06-26 17:52:30.089 Grouped[1732:707] [INFO] device is ready
2012-06-26 17:52:32.654 Grouped[1732:707] JSLOG: Registering with APNS via the App Delegate
2012-06-26 17:52:32.655 Grouped[1732:707] Register success callback set
2012-06-26 17:52:32.661 Grouped[1732:707] didFailToRegisterForRemoteNotificationsWithError:Error
Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for
application" UserInfo=0x18a0c0 {NSLocalizedDescription=no valid 'aps-environment'
entitlement string found for application}
I've done several hours of research now and can't figure out what I'm doing wrong.
I've created a new provisioning profile that is linked to my app ID. I can see it on my phone.
Any ideas?
Bonus question: Why on earth is it so complicated to properly provision an iOS app for push notifications?
A couple things to check:
Do you have any other provisioning profiles for this app on your device? I'd delete them.
Does your App ID have push enabled in the provisioning portal?
Are you sure you're signing with the correct profile? It has to be a non-wildcard development certificate.
Are you specifying your own entitlements.plist file? Modern Xcode generates one, so you don't need to do this. Make sure your "Code Signing Entitlements" build setting is empty.
If you haven't already found it, Apple has a good FAQ about this:
http://developer.apple.com/library/ios/#technotes/tn2265/_index.html
"no valid 'aps-environment' entitlement string found for
application"
Your provision profile doesn't have push notifications enabled. Make sure you enabled them in the provisioning portal, generate a new profile, but more importantly make sure you actually installed it in Xcode and are signing your app with that profile. That last part has bitten me a couple times.
Be sure to create new adhoc/appstore profiles AFTER you created push certificates for your app. The distribution profiles change after enabling the App for push messages.

Resources