How to export a Godot Project to iOS without a Mac for free

Date: July 22, 2024

Modified: July 1, 2026

Author: mak448a


Ever wanted to export a Godot app or project to an iPhone IPA without owning a Mac or renting a Mac in the cloud? This guide is for you!

Please give my repository a star on GitHub if this helps!

Requirements

Installation and Configuration

  1. First, download Python, Git, and GitHub CLI. Make sure to check the box that says “Add to PATH” when installing Python if you’re on Windows. Run this command if you want to install Python, Git, and GitHub CLI on Windows: winget install Git.Git GitHub.cli Python.Python.3.13, then log into GitHub with gh auth login.
  2. Inside your project, go to Project>Export...>Add..>iOS and set team and bundle identification. Since this project builds an unsigned IPA, you can put anything for the team.
  3. Press Export Project and save it to a new folder.
  4. Open a Terminal/Command Prompt and download build-ios with the following command.
    git clone https://github.com/mak448a/build-ios --depth=1
    
  5. Change the current directory to build-ios with
    cd build-ios
    
  6. Install dependencies with the commands below. Choose the one for your operating system.

Windows (Run in command prompt)

python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Linux

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Visit https://www.dropbox.com/developers/apps to get your Dropbox token for use with the tool. Screenshot of "create new app" You can name your app whatever you want, as long as it’s unique. Screenshot of app naming Screenshot of generating access token Screenshot of going to permissions tab Screenshot of permissions Screenshot of submit button
  2. Create the file .env and add TOKEN=YOURKEYHERE (replace the token with your token) to it.
  3. Run the Python script!
    python main.py
    
  4. (Optional) If you want to skip writing in the questions every time you want to build, add the answers to the .env file. Make sure to check example.env for how to do this!
  5. When you launch the CLI with python main.py, it’ll prompt you to choose whether you want to build or edit an IPA. For the first time, choose build IPA.

Usage

When you launch the CLI with python main.py, it’ll prompt you to choose whether you want to build or edit an IPA. For the first time, choose build IPA.

If you want to save your answers, you can edit .env with your DropBox token, GitHub username, repository name, and output file.

When the program asks you for a path, you can drag in a file into the terminal window.

Options

Build IPA:

Edit IPA:

But what’s the difference?

Troubleshooting

AuthError(‘expired_access_token’, None)

Your token is probably expired. Get a new OAuth token from Dropbox.

If you still have problems, check the other troubleshooting thread or open an issue in this repository! While you’re waiting, try following the original instructions.

Invalid files

Did you add double quotes around the file path?

Edit IPA not working

Did you place your pck file in the same directory as your ipa file?

Notes and credits