Skip to main content

Overview

Exporting to iOS requires a Mac with Xcode installed and an Apple Developer account. The process involves code signing, provisioning profiles, and App Store submission.

Prerequisites

Required software

1

macOS computer

iOS export requires macOS. Virtual machines are not officially supported by Apple.
2

Install Xcode

Download Xcode from the Mac App Store (free)
3

Install command line tools

4

Apple Developer account

Sign up at https://developer.apple.com ($99/year for App Store publishing)
You can test on your own devices with a free Apple Developer account, but App Store publishing requires a paid account.

Creating iOS export preset

  1. Go to Project > Export
  2. Click Add… and select iOS
  3. Configure preset settings

Basic configuration

Code signing

iOS apps must be signed with certificates and provisioning profiles.

Creating certificates

1

Generate certificate request

  1. Open Keychain Access on Mac
  2. Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority
  3. Enter email and name, save to disk
2

Create certificate in Apple Developer portal

  1. Go to https://developer.apple.com/account
  2. Certificates, IDs & Profiles > Certificates
  3. Create iOS Development and iOS Distribution certificates
  4. Upload certificate request
  5. Download and install certificates

Provisioning profiles

For testing on your devices:
  1. Register device UDIDs in Apple Developer portal
  2. Create App ID matching your bundle identifier
  3. Create Development provisioning profile
  4. Download and install profile

Automatic signing

Automatic signing is simpler but requires Xcode. Manual signing gives more control.

Export process

Export Xcode project

Godot exports an Xcode project that you build with Xcode:

Build in Xcode

1

Open project

Open the exported .xcodeproj file in Xcode
2

Select target

Choose your device or simulator from the target dropdown
3

Configure signing

Go to project settings > Signing & Capabilities Select your team and provisioning profile
4

Build and run

Click the Play button or Product > Run (Cmd+R)

App icons

iOS requires multiple icon sizes:
All icons should be square PNG files without transparency or rounded corners. iOS applies the shape automatically.

Launch screens

Configure launch screen (splash screen):

Capabilities and permissions

Required capabilities

Privacy descriptions

iOS requires descriptions for permission requests:
Configure in export preset:

iOS plugins

Extend functionality with iOS plugins:

Native plugin example

Use from GDScript:

Screen orientation

TestFlight

Test your app with beta testers:
1

Archive app

In Xcode: Product > Archive
2

Upload to App Store Connect

Window > Organizer > Distribute App > App Store Connect
3

Configure TestFlight

In App Store Connect, add beta testers and submit for review
4

Distribute to testers

Once approved, testers receive TestFlight invite

Publishing to App Store

Preparing for submission

1

Create app in App Store Connect

  1. Go to https://appstoreconnect.apple.com
  2. My Apps > + > New App
  3. Fill in app information
2

Prepare metadata

  • App name and subtitle
  • Description and keywords
  • Screenshots (required sizes for each device)
  • App icon (1024x1024)
  • Privacy policy URL
3

Build release version

Create archive in Xcode with App Store provisioning profile
4

Upload to App Store Connect

Use Xcode Organizer or Transporter app to upload

App Review guidelines

Complete app

App must be fully functional, not a demo or beta.

Accurate metadata

Screenshots and descriptions must match actual app.

No crashes

Thoroughly test to ensure stability.

Privacy compliance

Include privacy policy and comply with data regulations.

In-App Purchases

Implement IAP for monetization:

Game Center

Integrate Game Center for leaderboards and achievements:

Performance optimization

Use Metal

Metal is the default graphics API on iOS for best performance.

Optimize for battery

Limit frame rate and reduce background processing.

Test on real devices

Simulator doesn’t reflect actual device performance.

Use mobile renderer

Select Mobile renderer for better performance on iOS devices.

Device-specific code

Troubleshooting

Code signing issues

Ensure provisioning profile matches bundle ID and is not expired.
Install certificates in Keychain Access and ensure they’re valid.
Verify Team ID matches your Apple Developer account.

Build errors

App Store rejection common causes

  • Crashes or bugs
  • Incomplete functionality
  • Misleading screenshots
  • Missing privacy policy
  • Guideline violations
  • Incomplete app information

Next steps

Android

Export for Android devices

Web

Export for web browsers

Desktop

Export for desktop platforms