How to upload an app to an Individual Developer Account

In this article we will make the certificate and profile manually step by step - so the developer, who was added to the idnidivisual account, will be able to upload a build

Help in our Twitter Community for iOS developers

You want to add a developer to the account so that they can upload apps. If you have a company account, everything works out of the box.

But if you have an individual account, a third-party developer will be able to upload applications only with a special profile.

It's not safe to pass your Apple ID username-password, don't do that

Сертификаты можно сделать вручную или через API. В этой статье разберем ручной способ.

Step by step what we are going to do:

  1. First, request a signature for the certificate
  2. Create the certificate
  3. Combine this certificate with the key
  4. Register the app (you may already have it registered).
  5. Create a profile based on the certificate — it is the one we need to upload app

Certificate Request

We make a special request for a certificate — this is a file with the extension .certSigningRequest.

Open Keychain Access and create the file CertificateSigningRequest.certSigningRequest:

 Inquiry at the certification center
Inquiry at the certification center

Enter your email, name and select Saved to disk. In the next window, just save the file:

 Save the certificate request
Save the certificate request

You'll have a file, it'll still come in handy:

 Ready .certSigningRequest file
Ready .certSigningRequest file
If the account holder doesn't have macOS, the request-file is made by the developer and sent to the account holder

Making a Certificate

The certificate confirms that the app is yours. The extension of the certificate file is .cer.

Open the Certificates tab in Developer Account:

 Certificate tab
Certificate tab

To make a new certificate, click the plus sign:

 Adding a Certificate
Adding a Certificate

Select Apple Distribution and click Continue:

 Apple Distribution
Apple Distribution

This page will ask for the .certSigningRequest certificate request file we made above. Select the file:

 Add .certSigningRequest
Add .certSigningRequest

The certificate is ready — download it, it will still come in handy:

 Download the certificate
Download the certificate

Merge certificate and key

Next we need a file with the extension .p12. It stores the certificate-key mapping.

Double-click on the distribution.cer file and it will open Keychain Access.

If nothing happens, just search for the last downloaded Apple Distribution certificate by date. The expiration date will be one year from now
 Apple Distribution Certificate
Apple Distribution Certificate

Expand the drop-down box (to the left of the certificate), highlight the certificate and private key. Next, right-click and select Export 2 items....

 Export Certificate with key
Export Certificate with key

Save the file:

 Name for the Certificate
Name for the Certificate

Set a password for the certificate, you can leave it blank:

 Password for Certificate
Password for Certificate

It will ask for your mac password - enter it and click Always Allow:

 Enter your mac's password
Enter your mac's password

Get the file Certificates.p12:

 Certificate .p12'
Certificate `.p12'

Register the App

If you already have an application, skip this step

The App ID is a unique identifier for an app. It links apps to Apple services such as Push Notifications, iCloud, Game Center, etc.

Go to Developer Account under the Identifiers tab and click the plus sign:

 Identifiers Tab
Identifiers Tab

Select App IDs, then App:

 App IDs & App
App IDs & App

Here in Description enter the name of the app, and in Bundle ID enter the bundle. Explicit - used to sign only one application. Wildcard - used to sign multiple apps.

Learn more about Explicit and Wildcard at link
 App ID registration
App ID registration

When you have filled in the fields, click Register:

If you get an error, check the Bundle ID field
 Registering an App ID
Registering an App ID

The Identifiers page will display the ID of the new app:

 Application Identifier
Application Identifier

Provisioning Profile

The `Provisioning Profile' ties everything together: Apple Developer Account, App ID, certificates, and devices.

This is a file with the extension .mobileprovision.

Go to the Profiles tab, click the Generate a profile button:

 Profiles Tab
Profiles Tab

Select App Store Connect:

 App Store Connect
App Store Connect

In App ID select the desired Bundle ID from the list:

 Select App ID
Select App ID

Select the newly created certificate (check the date when it expires):

 Adding a certificate
Adding a certificate

Fill in the Provisioning Profile Name and click Generate:

 Name for Provisioning Profile
Name for Provisioning Profile

All that's left is to download the file:

 Downloading Provisioning Profile
Downloading Provisioning Profile

We get a file with your name and extension .mobileprovision:

 Provision Profile
Provision Profile

Transfer files to the developer

Pass the .p12 file and Provision Profile to the developer. Next, the developer needs to double-click the .p12 file or import it into Keychain Access:

 Import .p12
Import .p12

Now the developer goes to Xcode-project - Project Settings and selects the target. On the Signing & Capabilities tab disable Automatically manage signing, select Team ID and import Provisioning Profile:

 Importing a Provision Profile
Importing a Provision Profile

Done! The developer will be able to upload apps to an individual account.

Repeat the steps only if the Profile is changed. It does not need to be repeated for each app
We try to translate the tutorial well, but we aren't native. We appreciate if you can submit a Pull Request with fixes