Signing for iOS
On this page
An iOS build must be signed before any device will install it — there is no "open anyway". The signature also has to match a provisioning profile that names your app and, for anything short of an App Store build, the devices allowed to run it.
What you need
An Apple Developer Program membership, an Apple Distribution certificate, and a provisioning profile.
The certificate
Same procedure as macOS, different certificate type:
- Keychain Access → Certificate Assistant → Request a Certificate — save the request to disk.
- At Certificates, Identifiers & Profiles, create an Apple Distribution certificate with that request.
- Install it, then export it from My Certificates as
.p12with its private key and a password.
Apple Distribution covers the App Store and ad-hoc distribution. Apple Development is for running on your own devices from Xcode and is not what a
build service wants.
The provisioning profile
- Register an App ID matching your game's bundle identifier under Identifiers.
- Under Profiles, create a distribution profile for that App ID:
- App Store to submit to the App Store.
- Ad Hoc to install on a fixed list of registered devices — you must add each device's UDID first.
- Download the
.mobileprovision.
A profile expires after a year, and an Ad Hoc profile stops working for any device added after it was made. Both mean regenerating and re-uploading it.
What to put in Forge
| Field | What |
|---|---|
| Apple Distribution (.p12) | the exported certificate |
| Certificate password | the password you set on export |
| Provisioning profile | the .mobileprovision |
The bundle identifier in your profile has to match the one your project exports with. A mismatch is the single most common iOS signing failure, and the error Apple returns does not always say so plainly.
Then notarise
For App Store submission you also need Apple notarisation.