App Store & Developer Portal Setup
In order to publish the app, you will need to enroll in Apple’s Developer Program (link) if you haven’t done so already. For the following sections, we will outline which values or files you will need to save and send to us.
Once you’ve enrolled, you will first need to create a new bundle identifier in the developer portal (link). When creating the bundle you should use an explicit Bundle ID and you will need to enable the following capabilities:
- Associated Domains
- iCloud (with CloudKit support for Xcode 6+)
- Push Notifications
- Sign In With Apple
You will not need to configure any of these, simply enabling the capabilities is sufficient. For the bundle ID, we suggest following Apple’s guidelines. For a company called Acme who wants to call their app Connect you’d register com.acme.connect for example. Note that bundle identifiers have to be unique, so if you have an existing app, you can not reuse that bundle identifier!
Values needed from this step:
- App ID Prefix (Team ID)
- Bundle ID
Once you’ve created your bundle identifier, you can head to App Store Connect (link) and create a new app. None of these details are relevant to us, except the User Access. If you select limited for that option, you will have to explicitly grant us (and any other App Store Connect user) access to the app. Make sure you select iOS as platform and the Bundle Identifier created in the previous step.
Next, head to Users and Access (link) and grant access to the following accounts:
- systems@the-dots.com (this is an Apple ID we use for integration)
- luigi.trevisi@the-dots.com
- paul@werelds.net
We require the Developer role permissions at a bare minimum, and we do recommend granting App Manager permissions so that we can release critical versions of the app when necessary. This may include, but is not limited to, hotfixes for P1 bugs, or cases where we have to time releasing the app to coincide with updates to our infrastructure and backends. Additionally, you will have to grant us access to Certificates, Identifiers & Profiles and Cloud Managed Distribution Certificate. These are required in order for us to submit builds.
If you do not grant us the App Manager permissions, you will need to ensure that there is someone available from 8AM to 8PM (GMT/BST) to release a new version when required. Regrettably, The Dots cannot be held responsible for any delays or problems caused by lack of client staff availability if we are not granted App Manager permission.
In addition to this account, you will also need to add members of our team to your account as Customer Support. We will then set these up in TestFlight as Internal Testers later. A full list of these team members and their Apple Ids can be provided on request.
While we’re in Users and Access, head over to Keys and create a new API key.
You can call it whatever you want (we suggest The Dots Automation), but it must have the App Manager or Admin role.
We will use this API key for our automated build process.
It will be used to generate certificates to sign the app with, and to submit builds.
Without this API key our automated process will not be able to function, so it is required.
Once generated, download it and make sure to store this file in a safe place, as you will not be able to download it again.
What we need:
- Issuer ID
- API Key file
- Key ID (if you kept Apple’s default filename of AuthKey_XXXXXXXXXX.p8 we can deduce the key ID from this instead)
Note that if you already have 3 Distribution certificates (listed here, note that Distribution Managed certificates do not count towards this limit), or if you do not want us to generate one, you will need to generate one yourself. If your account is at the limit of 3 certificates already, you will need to revoke an existing certificate first. You will also need to permanently store the certificate and associated key in a safe place. Note that these certificates and keys can be used by multiple developers, so might not be used exclusively by The Dots. (The process of generating a certificate is relatively complex, so is not covered in this document.)
Now, head to Apps and click on your new app. Now click on the TestFlight tab and click on the plus icon next to Internal Testers. Call the new group The Dots, leave Enable automatic distribution enabled and create it. Once created, add each of our team’s members from above to this group as testers. We use Internal Testing instead of External Testing because the latter requires full review by Apple before a build becomes available to us.
You can create an internal testing group for your own team using the same mechanism.
The last thing to do is to take care of Push Notifications. For this you will have to go into Apple’s developer portal and then Keys (link). If you already have an existing app, you might already have some keys listed here; click into each to see if they have the Apple Push Notifications service (APNs) service enabled. If any of them do, you will have to send us the file for whichever one is considered your production key. This should be stored in a safe location somewhere, because as with the API key, Apple allows you to download this only once.
If you have no keys or none have Push Notifications enabled, go ahead and create a new one, but make sure APNs is enabled (none of the other services need to be enabled). Click continue, register and then make sure to download it and store it in a safe place before clicking Done.
What we need:
- APNS Key file
- Key ID (if you kept Apple’s default filename of AuthKey_XXXXXXXXXX.p8 we can deduce the key ID from this instead)
Deliverables
These are all the deliverables we need in order to proceed with development:
Note
For both key IDs: if you kept Apple’s default filename of AuthKey_XXXXXXXXXX.p8 we can deduce the key ID from this instead.
- Team ID (App ID Prefix)
- Bundle ID
- API Key .p8 file
- API Key ID*
- APNS Key .p8 file
- APNS Key ID*
- systems@the-dots.com added as App Manager
- Our team added as testers in TestFlight

