
What is app signing?
Xcode code signs your app during the build and archive process. If needed, Xcode requests a certificate and adds a signing certificate, the certificate with its public-private key pair, to your keychain. The certificate with the public key is added to your developer account.
During the course of developing your app, you’ll create different certificate types for use in different contexts. You’ll use Apple Development certificates to run your app on devices and use app services, and Apple Distribution certificates to distribute your app for testing and to upload it to App Store Connect.
Development certificates belong to individuals. In your developer account, the computer name is appended to the development certificate name (for example, Gita Kumar (Work Mac)
where Work Mac
is the computer name) so you can identify them.
In Xcode, Accounts preferences shows only the signing certificates on your Mac—the valid signing certificates in your keychain.
Distribution certificates belong to the team but only the Account Holder or Admin role can create distribution certificates (if you’re enrolled as an individual, you are the Account Holder).
The number of development and distribution certificates you can create are limited:
Type | Apple Developer Program | Enterprise | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Apple Development | 2 | 2 | |||||||||
Apple Distribution | 3 | 2 |
To share a signing certificate with another person on your team, export the signing certificate, and on the other person’s Mac, double-click the exported file to install the signing certificate in the keychain.
If you use different Mac computers for development or belong to multiple teams, you may want to manage signing certificates yourself. You maintain signing certificates using either Accounts preferences in Xcode or Keychain Access. You can create and revoke certificates using either Xcode or your developer account. If you enroll as an organization, your program role determines what tasks you can perform using these tools.