How to disable notifications from WatchOS target to remove ITMS-90078 warning? - xcode

I selected include notification scene when creating a watchOS target app. After finishing development I did not use the notification scenes and deleted:
the related interface controllers from the watch storyboard
the related notification controller from the extensions
the .apns file
After upload I received the following warning information:
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, ...
I use automatically managed signing and an Xcode managed provisioning file.
I have not found other code or settings in the Xcode settings related to notification.
After searching for a while I need some help to eliminate all notification related settings and code from my app to resolve the warning leading to rejection. Thanks for help!

Related

Adding aps-environment entitlement to UITest Target in Xcode

I am testing an app that uses Push notifications. Within the main app target, the 'Push Notifications' (inside the Capabilities tab) is set to on.
I created a UITest target for UI Automation Testing. UITest targets do not contain a 'Capabilities' tab so I am unable to set this target to use push notifications. When I try and Automatically manage signing, I get the following error message:
"Automatic signing can't add the aps-environment entitlement to your provisioning profile. Switch to manual signing and resolve the issue by downloading a matching provisioning profile form the developer website."
The trouble is the Xcode managed provisioning profiles do not seem to appear in the Developer Portal anymore.
Does anyone know a way round this? Is there perhaps a build setting within the UITest Target that I can set to add the aps-environment entitlement (instead of using the Capabilities tab).
PS - looking online all accepted answers for this error are to switch on Push notifications in the 'Capabilities' tab (something we don't have in the UITest target):
e.g. Error when running ionic cordova run ios - seems to be related to push notification
Fixed this by removing the need for entitlements from the XCUITest Target. Here are the details:
Selected the UITest target >
Went to the UITest 'Build Settings' tab >
Searched for 'Code Signing Entitlements' >
Removed all entitlement values here (since only removing them from the XCUITest target not the app itself)
This fixed the error and allowed it to work.

APNS Invalid token error using Parse

I have an iOS app in Xcode 7 that used Push Notifications via Parse in development mode. I had to format my Mac’s hard drive and reinstall El Capitan and Xcode. Running my same old code, all my push notifications now get a “APNS Invalid token” error. I’m assuming the error is due to changes on my Mac.
I have revoked and replaced my APN certificate at the Apple Member Center, downloaded the new certificate, put in it my keychain, exported it to a p12, deleted my old certificate at Parse and installed the new p12 file. I also edited and renewed my Provisioning Profile at Apple.
I’m still getting the Invalid token error from Apple. I haven’t changed any other settings so I don’t believe I am trying to use a development token against Apple’s production Push notifications service, or vise-versa.
Can anyone suggest how to correct this? Thanks!
Possibly because Xcode cannot find a correct provisioning profile linked with with your app Bundle identifier and it is relying on its default profile.
In the menu go to: Xcode > Preferences > Accounts
Then click on View Details.. button to see all the provisioning profile associated with your account. Make sure you download them all so that Xcode can find them on your disk. Alternatively you can download your provisioning profiles from member centre on your mac and double click on them so that Xcode loads them internally.
I had to re-enable Push Notifications in the apps Capabilities.

iOS Parse Push Notifications in Adhoc exported ipa

I've an application which uses Parse.com push notification service. When I run app on my iPhone with xCode notifications are received well but when I install app with exported ipa with Itunes notifications aren't received.
What is the problem ?
It sounds like a provisioning profile problem. When you export the .ipa, it uses a particular provisioning profile, and that profile is different for Xcode and for ad-hoc.
To enable push for ad-hoc builds, you can find a detailed list of steps here: Enabling Apple Push Notifications for ad hoc distribution environment
I fixed the problem with creating "Production SSL Certificate" in my push notification identifier.

WatchKit Upload

I am trying to submit my WatchKit app t iTunesConnect. I click "Archive" and then validate and I am shown the message below. I have created an App Id for the app, extension and WatchKit App as well as distribution profiles.
Where am I going wrong?
Thanks
To properly sign a watch app, you need three different App IDs and each App ID needs a provision profile.
Go to Developer Member Center
Add/Edit the three App IDs:
One for your main App bundle, you may need to add the entitlements you need, like App Groups, Keychain Access Group.
One for your watchkit extension bundle, you may need to add the entitlements you need.
One for your watchkit app bundle. No entitlements needed.
Delete the distribution provision profiles for the three App IDs, if they already exists.
Add three new distribution provision profiles for the three App IDs.
Now go back to Xcode, open Preference and go to Accounts.
Choose your Apple ID, click View Details on the bottom right.
Click the refresh button on the bottom left, wait for the list of provision profiles to change.
In Build Settings for all your targets, configure the Code Signing part as below.
Try Archive again.
When you submit your app, XCode will ask you to confirm the provision profile it uses to sign each of your bundles. You need to be sure that the provision profile names match those you configured in Developer Member Center.
I have uploaded one app to itunesconnect with watch app.
This is very simple. You need to create 3 appstore provisioning profiles and the bundle identifier for the extention and watchApp are like
com.abc.app - Phone app
com.abc.app.extention - Extention
com.abc.app.watchapp - watch app
and also sync app group in capabilities tab in all 3 targets.
All are well.
you just needs to create Archive for only Phone App (Main Target). That's It. When user will download your app. And if phone have attached Watch then this will automatically get informed to you for watchapp download.
Judging by the screenshot, it looks like your profiles need to have the missing entitlements (beta-reports-active, keychain-access-groups) added to them.
You will need to create a provisioning profile for the watchkit extension as well as the provision that you have for your app.
If you download the Apple Lister App Code Sample there is a guide to getting started that show you everything that you need to do to setup your app to work properly on a device with Apple Watch.
https://developer.apple.com/library/ios/samplecode/Lister/Introduction/Intro.html
Click on the Download Sample Code button, and in that folder there is a file called iOS and Watch Quick Start.pdf
Using XCode 6.3 solved the problem to me.
I previously used 3 provisionning profiles for watch apps
source : Watchkit Extension - No matching provisioning profiles found

iCloud set up and provisioning

I am trying to set up iCloud within my iOS application, I have done the following:
Removed all old certs on mac.
Added iCloud to the App in Dev Console - created new container and added to app
Redone the dev provision and downloaded
Installed the provision
Added the iCloud Entitlement to the app
And this is where is all goes wrong...
I can't get the app running again, the app is building but I am getting an error saying:
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
(0xE8008016).
Any ideas??
UPDATE: I have managed to be able to run the application to get everything programmed and put in place, everything is set up iTunes Connect end, all provisions are valid and sync'd.
Now I am getting errors during validation...
There are 4: Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported by iOS. Specifically, key 'com.apple.developer.icloud-container-identifiers' in Payload ------- not supported
Other 3 are similar for other containers!
Maybe it's a late comment, but I post it here in case that somebody is struggling for the same reason.
I encountered this issue on Xcode8 recently when I was trying to archive. Generally, I enabled iCloud with Xcode in following steps:
Enable iCloud inCapabilities panel in my target by setting the toggle to ON.
Check iCloud under my App Identifier in Member Center turns green automatically, and a iCloud container is created automatically with my App Identifier. (Apple's system does this for us.)
Regenerate my certificate with my App Identifier.
Create a new provisioning profile.
Download and install the new certificate and provisioning profile
Select the new provisioning profile in Signing(Release) section in General panel in my target.
Then I got errors like:
Provisioning profile "iCloud Test" doesn't include the com.apple.developer.ubiquity-container-identifiers,
com.apple.developer.icloud-container-identifiers,
and com.apple.developer.icloud-services entitlements.
Code signing is required for product type 'Application' in SDK 'iOS 10.1'
Code signing is required for product type 'Application' in SDK 'iOS 10.1'
At last I found that there were two options in iCloud section under my App Identifier in Member Center. By default, the Compatible with Xcode 5 was selected, but I succeeded by selecting the other option.
If you're just adding iCloud to an app for the first time or want to upgrade to use CloudKit after using an older iCloud container:
Go to the Apple Development Center.
Choose Certificates, IDs & Profiles.
Use the dropdown on the top left to switch between iOS/tvOS/watchOS or macOS
Choose App IDs under the Identifiers section.
Choose your app from the list.
Scroll down to iCloud and make sure it is enabled with a green dot.
If it's not enabled or has a yellow dot, click the button at the bottom of the page to Edit and make sure you've checked iCloud service.
You may also need to create a container under the iCloud Containers section then associate it with this app.
After submitting a report to Apple, it turns out that Apple systems are useless AGAIN!
Ok, so if you are creating a NEW application or you are only just adding iCloud to your application - you will need to make sure the system doesn't pick up or create a iOS8 cloud container!
If it does you need to remove it from your app entitlements file, remove the selected containers in the Apple Developer Console and re-download certs again!
Thanks Apple again!
I got blamed for using pre-released software! I haven't touch Xcode 6 yet!!!
What I did:
- leave only com.apple.developer.icloud-services in entitlements file
- in Capabilities under iCloud marked key value storage and iCloud Documents (cloud kit EMPTY)
- Containers set to specify custom but do not select any of your containers
- This will probably give you RED warning sign under steps but leave it as it is DO NOT FIX
- Regarding provisioning profile Development and Distribution profiles have to have App ID which has iCloud enabled but NOT linked to any container
- In those provisioning profiles set under iCloud OLD version for Xcode 5 etc. not a new one related to iCloud containers
I had an error of "Add iCloud Containers to your App ID".
Automatic signing was unable to resolve an issue with target's entitlements.
I don't even use iCloud Containers, only Key-value storage(keychain).
I also switched in iCloud section under my App Identifier in Member Center from "Compatible with Xcode 5" to "Include CloudKit support (requires Xcode 6)" problem still remains.
So I fixed it like this:
Enable iCloud Capabilities panel in my target by setting the
toggle to ON.
Turn on "Include CloudKit support (requires Xcode 6)" in Member
Center (still got same error).
in Xcode in iCloud Capabilities TURN ON CloudKit (even if you don't
need it) and then turn OFF.
And then problem solved for me!

Resources