Skip to main content

1. Create your Apple Developer account

Go to developer.apple.com/programs and enroll. The annual fee is $99 USD. Apple accepts payment by credit card or PayPal. Enrollment typically takes 24 to 48 hours for individual accounts. Organization accounts may take longer if Apple needs to verify your legal entity.

You must use an Apple ID that has two-factor authentication enabled. If your Apple ID does not have 2FA set up, Apple will prompt you to enable it before you can complete enrollment.

Individual vs organization enrollment

If you operate as a sole proprietor or individual, enroll as an individual. Your legal name will appear as the developer name on your app's App Store listing — for example, "Mohamed Talaat." Customers see this name on the app's product page.

If you operate as a registered company, enroll as an organization. Your company's legal name appears as the developer name instead. Organization enrollment requires a D-U-N-S number, a nine-digit identifier for legal entities issued by Dun and Bradstreet. You can request one for free at dnb.com. D-U-N-S verification can take 5 to 14 business days.

For most Appolar merchants, individual enrollment is faster and sufficient. You can switch from individual to organization later, but the process requires contacting Apple support and can take several days.

2. Create an app record in App Store Connect

Once your enrollment is approved, go to appstoreconnect.apple.com and sign in with your Apple ID. Navigate to My Apps and click the + button to create a new app.

Fill in the new app form:

  1. Platform: iOS
  2. Name: your app name as it will appear on the App Store. You can change this before your first submission if needed, but not after.
  3. Primary language:English. You can add more languages later from the app's product page.
  4. Bundle ID: Select or create a bundle ID in reverse-domain format, for example com.zaraeg.app. Use all lowercase letters, numbers, and dots only. This value must match exactly what you enter in the Appolar builder.
  5. SKU: a unique identifier for your internal records. Using the same value as your bundle ID is a common convention.

Click Create. The app record is now created. You do not need to fill in screenshots, description, or pricing yet — Appolar will populate the binary. You will need to complete those fields before your first submission to App Store Review.

3. Generate an API key

Appolar uses the App Store Connect API to submit builds on your behalf without ever needing your Apple ID password. To grant this access, generate an API key in App Store Connect.

In App Store Connect, go to Users and Access > Integrations > App Store Connect API. Click Generate API Key.

  1. Set the Name to Appolar so it's easy to identify later.
  2. Set the Access role to App Manager. This grants permission to upload builds and manage app metadata, which is the minimum Appolar needs.
  3. Click Generate.
  4. Download the .p8 file immediately. Apple only allows you to download it once.
  5. Note the Key ID and the Issuer ID shown on the same page. You will need all three values.
i

Note. The .p8 file cannot be re-downloaded after you leave the page. If you lose it, you must revoke the key and generate a new one — which requires updating the credentials in Appolar as well. Store the file somewhere safe before proceeding.

4. Upload to Appolar

In the Appolar builder, go to Builder > Publishing > Apple. Enter the following:

  1. Issuer ID— found in App Store Connect under Users and Access > Integrations. It looks like a UUID, for example 57246542-96fe-1a63-e053-0824d011072a.
  2. Key ID — the 10-character alphanumeric ID shown next to your API key in the list.
  3. .p8 file — use the upload button to select the file you downloaded.
  4. Bundle ID — must match exactly what you created in App Store Connect, including case.

Click Save. Appolar encrypts these credentials with AES-256-GCM and stores them in an isolated credential store. They are used only to submit builds to your App Store Connect account — never accessed for any other purpose.

Was this helpful?
Edit this page on GitHub