How to resign an iOS App
In case you are going to distribute your evenTwo iOS app with your own iTunes Connect account or with an Enterprise account, we will provide you with an IPA file that needs to be resigned with your Provisioning Profiles:
Prerequisites
- Follow the the steps to create the App Ids in the Developer Portal.
- A Mac computer
- Xcode 10 or newer installed and opened at least one time, so the initial assistant configures the machine. Note that we do not support Beta versions of Xcode
- Command Line Tools installed
- To check they are installed: xcode-select --version
- To install: xcode-select --install
- Your Apple Distribution Certificate installed, and its associated private key too.
- In Keychain Access -> My Certificates, check the certificate appears and the private key is linked to the certificate
- Download the script to resign the IPA.
Files needed to resign the IPA
- The provisioning profiles, created in the developer portal. Follow the the steps to create the App Ids in the Developer Portal. in case you have not done it yet You have to create two provisioning profiles in the Developer portal and download them to your computer
- One provisioning profile for the bundle id of your application
- Another provisioning profile for the extension we use to customise the Push Notifications. It's bundle id will be like the application's bundle id followed by `.NotificationServiceExtension`
- The IPA file of your application. It will have a different bundle id, and which will be changed with the resign script
Steps
- Create a folder and save the IPA file inside
- Open a Terminal window and change the current directory to that folder
- Execute the resign script, the assistant will ask you the data needed to resign the IPA
- The full path of the IPA file
- The full path of the Application provisioning profile
- The full path of the Push notifications extension provisioning profile
- If the resigning is successful, you will find the resigned IPA inside a subfolder named with the Bundle ID of your App, in the folder where you saved the IPA file
- With the Transporter app, you can upload your evenTwo iOS app to App Store Connect.
Troubleshooting
The active Xcode version is a Beta, beta versions are not supported
We only support Xcode releases, as Beta releases could have issues with the resign script
Xcode Command Line Tools are not installed.
Install Xcode, run it and execute xcode-select --install in a terminal window
Unzip is not installed
You need to install the unzip command or add it to the shell $PATH
The IPA or the provisioning profiles have not been found
Only full paths are supported, do not enter relative paths or paths using the ~ character
Could not create working directory
The current user does not have permission to write in the Operating System temporary folder
The IPA could not be unzipped
It can happen that the IPA file has corrupted when it was downloaded. Try to download it again or contact support so it is sent to you again
The Provisioning Profile for the Application is expired
You will need to create a new Provisioning Profile for the Application, as it has passed its valid date
The Provisioning Profile for the Push Notification extension is expired
You will need to create a new Provisioning Profile for the Application, as it has passed its valid date
The provisioning profiles have the same bundle identifiers
You have to use different provisioning profiles for the Application and the Push Notification extension
The Notification extension provisioning profile should have the bundle ID xxx.xxx.NotificationServiceExtension
The provisioning profile for the Push Notification Extension does not have the correct Bundle Id, check it is the correct one
Data protection must be enabled for the bundle id in the Developer portal, and with the value 'Complete Protection'
The Application Id does not have the Data Protection Service properly configured in the Developer Portal
Signing certificate issues
If you see any of these errors:
You have 0 valid signing identities for the notification service extension, it is needed to install a valid distribution certificate for the notification extension
The correct distribution certificate is not present in Keychain Access for the notification extension
You have 0 valid signing identities for the Application, it is needed to install a valid distribution certificate for the Application
The correct distribution certificate is not present in Keychain Access for the Application
The script has not been able to find a correct iOS Distribution certificate in the Keychain. It could happen that it has not been installed successfully or its private key is not present in the machine where you are executing the resign script.
Verify in the Keychain Access app that the certificate appears in My Certificates and has a triangle, that when opened, shows the Private key of the Distribution certificate
The Application provisioning profile doesn't have push entitlements configured
So the Application can receive Push Notifications, in the Apple Developer portal, the App Id needs to have enabled Push Notifications and Data protection: Complete
After enabling the capabilities, you will need to delete the old provisioning profiles and create a new ones
In case of any other errors, contact evenTwo support and include and screenshot with the output of the resign script