# Set up Apple publishing

> Prepare Apple membership, an App Store Connect API key, the app record and signing for iPhone testing or an App Store release.

Canonical: https://www.rnblocks.dev/docs/publishing/accounts/apple
Updated: 2026-10-01

Apple setup has separate parts: membership, RNBlocks access, your app record and signing. A renewed membership or connected key does not finish every part.

## Before you start

- An Apple Account with two-factor authentication.
- Access to the team that will own the app.
- A saved iOS bundle identifier in Publish → Release settings.

## Choose individual or organization enrollment

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#enrollment

Individual enrollment uses your personal legal name as the App Store seller. Organization enrollment uses the legal entity’s name and requires an authorized representative, organization website and usually a D-U-N-S number.

Enter your legal identity in personal identity fields; do not substitute a brand name. Have the account holder complete verification, agreements and payment on Apple’s site. Membership is US$99 per year, with regional pricing and eligible fee waivers.

- [Apple Developer Program enrollment](https://developer.apple.com/programs/enroll/)

## Already enrolled or working on another app?

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#existing-membership

Sign in with the existing Apple Account and choose the team that owns the app. One membership can hold multiple apps; each app needs its own bundle identifier and store record.

If membership expired, renew the existing membership. Check the account’s status and outstanding agreements afterward. Renewal does not register a device, create a profile or link an app record in RNBlocks.

- [Renew an existing Apple membership](https://developer.apple.com/help/account/membership/renewal/)
- [Create an App Store Connect app record](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app/)

## Create or locate the API key

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#key

1. **Open Apple’s key page** — In RNBlocks Connections, choose Connect Apple → Open App Store Connect keys. In Apple, go to Users and Access → Integrations → App Store Connect API.

2. **Choose the appropriate key** — For iPhone signing, use a Team key. An Account Holder or Admin can create it. Select the role needed for the release; a team key can cover every app in that Apple team.

3. **Download the private file** — For a new key, choose Download API Key and confirm the download. Save the .p8 securely. Record its Key ID and the team’s Issuer ID.

> **No download button?**
> Apple permits the private file to be downloaded once. Use the original file if you have it, or create a separate key. Missing download access alone is not a reason to revoke a key that another service uses. The IDs cannot recreate the private file.

- [Apple API key setup](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api)

## Connect privately in RNBlocks

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#connect

An Individual key can inherit your app access, but cannot set up iPhone signing. Use a Team key for that work. Sign in with Apple for a consumer app is a different feature from publishing access.

1. **Fill the private form** — Set Connection name and Key type. For a Team key, enter Issuer ID and Key ID, then select Private key (.p8). Keep the file out of the conversation.

2. **Check the connection** — Choose Check and connect. Review the result. Read access to apps or signing records does not prove permission for every later write.

3. **Choose it for this app** — Under Apple connection for this app, select the account and check the bundle identifier. Choose Use for this app. Look for the linked App Store Connect app record, or a message that none was found.

### Figure: Connect an Apple account privately

The Apple connection form offers an App Store Connect keys link, Connection name, Key type, Issuer ID, Key ID and Private key (.p8), followed by Check and connect. Team key is selected.

1. Give the saved connection a recognizable name and choose the correct key type.
2. For a team key, enter its Issuer ID and Key ID, then choose the matching .p8 file. Keep these out of the conversation.
3. Check and connect verifies access. It does not create signing keys, start a build or submit your app.

The actual RNBlocks Apple connection form. Secret fields and file upload are empty.


## Create the store app record

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#record

1. **Open the intended team** — In App Store Connect, open Apps → + → New App. For an update, open the existing app instead.

2. **Match the app identity** — Choose iOS, app name and primary language. Select the bundle ID saved in RNBlocks Release settings. If it is missing, register it under the correct Apple team first.

3. **Create and link the record** — Enter a unique internal SKU, set user access and create the record. Return to RNBlocks Connections and choose Use for this app again to check the matching App Store Connect record.

> **Three different identifiers**
> The bundle identifier identifies the app; the internal SKU helps you manage its store record; the API Key ID identifies a credential. They are not interchangeable.

### Figure: Create an App Store Connect app record

Apple’s New App form shows platform checkboxes, Name, Primary Language, Bundle ID, SKU and User Access, then Cancel and Create. Its official example is Backyard Birds.

1. Choose the platform for this release and the app’s name and primary language.
2. Select the bundle identifier that matches your app, then provide your own SKU.
3. Check team access before creating the record. The example values belong to Apple’s sample app.

Apple’s official Backyard Birds example. It selects several platforms; select iOS for your iOS release.

[Apple: Add a new app](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app)

- [Create an App Store Connect app record](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app/)

## Prepare signing for the destination

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#signing

Ask the agent to check the signing setup for the selected app and destination. Review any proposed certificate or profile creation before approval.

For direct iPhone installation, register the intended device and ensure the profile includes it. A registration link completed on the phone is one step; the profile still needs to be prepared for that device.

A TestFlight/App Store build uses store signing instead of a registered-device profile. Choose that destination before preparing the build. An iOS simulator build is a separate artifact and cannot be installed on a phone.

- [Compare testing routes](https://www.rnblocks.dev/docs/publishing/testing)
- [Apple store provisioning profiles](https://developer.apple.com/help/account/provisioning-profiles/create-an-app-store-provisioning-profile/)

## Before you continue

Section: https://www.rnblocks.dev/docs/publishing/accounts/apple#check

If Apple asks for a new agreement or account verification, complete it in your own account and ask the agent to check again. Creating another API key is not the fix for every account problem.

- The correct Apple connection is selected for the current bundle identifier.
- The store app record is linked when the destination needs one.
- Signing checks refer to this team, app and destination.
- For a physical-device build, the intended phone is included.
- Any interrupted signing or upload attempt has been checked before retrying.


## Continue

- [Connect Expo](https://www.rnblocks.dev/docs/publishing/accounts/expo)
- [Testing](https://www.rnblocks.dev/docs/publishing/testing)
- [Submit and review](https://www.rnblocks.dev/docs/publishing/submit-and-review)
- [Social sign-in before review](https://www.rnblocks.dev/docs/publishing/social-sign-in)

## Official references

- [Apple Developer Program enrollment](https://developer.apple.com/programs/enroll/)
- [Renew an existing Apple membership](https://developer.apple.com/help/account/membership/renewal/)
- [Apple API key setup](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api)
- [Create an App Store Connect app record](https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app/)
- [Apple store provisioning profiles](https://developer.apple.com/help/account/provisioning-profiles/create-an-app-store-provisioning-profile/)
