[Documentation](https://fluxnative.app/docs) / Build for devices

# iOS certificates and profiles

With an App Store Connect API key, FluxNative makes the certificate and profiles for you; without one, create them yourself and upload them.

![iOS signing in the Build window: the bundle ID, Shared by the organization with no certificate yet and Open Publish, and Created for this app with a provisioning profile to upload and Save profile for this app](https://fluxnative.app/guide-media/ios-signing.c19aeacc.webp)

With an App Store Connect key FluxNative makes both; without one, upload a .p12 in Publish and the profile here.

## With an API key

Nothing to do. FluxNative creates the organization's distribution certificate (in **Publish** › **Set up app signing**, or on the first IPA build), registers the bundle ID, and makes each app's profile when the IPA builds, renewing it within 14 days of expiry.

## Without a key

1. On a Mac, request a certificate in **Keychain Access** › **Certificate Assistant**, saved to disk.
2. In the Apple Developer site, add an **Apple Distribution** certificate from it and download the `.cer`.
3. Open the `.cer`, then export it from **My Certificates** as a `.p12` with a password.
4. Upload the `.p12` in **Publish**, under **Advanced** when you connect App Store Connect.
5. Under **Profiles**, create an **App Store Connect** profile for this app's bundle ID.
6. Upload it in **Build**, iOS, with **Save profile for this app**.

## Good to know

- Set the bundle ID in **App settings** › **Store identifiers** before the first TestFlight upload; it locks after that.
- Certificates expire after a year. **Publish** warns 30 days before; upload a new one. FluxNative never revokes a certificate.
- Apple limits certificates per team. If one cannot be created, revoke an unused one or upload yours.
- Each app needs its own profile: a profile matches one bundle ID.

## Related

[iOS builds](https://fluxnative.app/docs/ios-builds) · [Connect store accounts](https://fluxnative.app/docs/connect-store-accounts)

Previous: [iOS builds](https://fluxnative.app/docs/ios-builds) · Next: [Versions and build numbers](https://fluxnative.app/docs/versions-and-build-numbers)

---

With an App Store Connect API key, FluxNative makes the certificate and profiles for you; without one, create them yourself and upload them.

Page: https://fluxnative.app/docs/ios-signing
