# Quick Start: Publish a Godot Game to App Store & Google Play

> Get your Godot game built and published to the App Store or Google Play in under 5 minutes using ShipThis. Free cloud builds for APK, AAB, and IPA.

Source: https://shipth.is/docs/guides/quick-start

Let's discover **ShipThis in less than 5 minutes**.

**ShipThis** is a **command-line tool** which manages building and uploading your [Godot](https://godotengine.org/) mobile games to the **Apple App Store** and **Google Play**.

[Free while in open beta]
ShipThis is free to use while it is in open beta, and it will always be free for most solo
devs. See [pricing](https://shipth.is/pricing) for what is planned.

### What you'll need

- A Godot 3.6 or 4.x game - starting from scratch? See [Building a Mobile Game](https://shipth.is/docs/guides/building-a-mobile-game)
- [Node.js](https://nodejs.org/en/download/) version 18 or above
  - Only have an Android device? See [building for iOS from an Android device](https://shipth.is/docs/tutorials/godot-ios-from-android)
- **To publish an Android game** - a [Play Console Developer account](https://play.google.com/apps/publish/signup) (not required for building an APK/AAB)
- **To publish an iOS game** - an [Apple Developer account](https://developer.apple.com) (not required for building an IPA)

[No account needed up front]
You only need a **Play Console** or **Apple Developer** account to publish to the stores.
You can build an **APK**, **AAB** or **IPA** without either of them.

Your ShipThis account is created the first time you run `shipthis login` - a one-time
passcode to your email, no password and no card.

**[Create your account here](https://shipth.is/login) and come back to the steps when you are ready.**

## 1. Install ShipThis

ShipThis can be installed as a package via the [NPM package manager](https://www.npmjs.com/). Run the following at the command line:

```
npm install -g shipthis
```

## 2. Create an account

At the same command line, run the [`shipthis login`](https://shipth.is/docs/reference/login) command, it will create an account for you if one does not exist.

```
shipthis login
```

## 3. Set up your game

Next, run the [wizard command](https://shipth.is/docs/reference/game/wizard) to configure your game on ShipThis. The command takes a platform parameter - this can be either **android** or **ios**.

The wizard creates the credentials your game needs to be signed and published, and saves them against your game. You only need to run it once per platform.

[tip]
The [`shipthis game wizard`](https://shipth.is/docs/reference/game/wizard) command should be run from a directory which contains a **project.godot** file.

### Set up an Android game

```
shipthis game wizard android
```

The wizard will create an **Android keystore**, connect your Google account, and set up a **Google Cloud Project**, **Service Account** and **API Key** so ShipThis can upload to Google Play. It walks you through each of the [Android set up steps](https://shipth.is/docs/android).

### Set up an iOS game

```
shipthis game wizard ios
```

The wizard will connect ShipThis to your Apple Developer account and create the **API Key**, **distribution certificate** and **provisioning profile** your game needs. It walks you through each of the [iOS set up steps](https://shipth.is/docs/ios).

[note]
The wizard talks to Google and Apple on your behalf, so it can fail for reasons outside
ShipThis - an expired agreement, or a Google Cloud quota. The
[Troubleshooting guide](https://shipth.is/docs/troubleshooting) covers the ones we see most often.

## 4. Ship!

Now you can publish new versions your game to TestFlight or Google Play with the [`shipthis game ship`](https://shipth.is/docs/reference/game/ship) command:

```
shipthis game ship
```

[![asciicast](https://asciinema.org/a/7e1jPMx5i69VyM6TynkeFU0dI.svg)](https://asciinema.org/a/7e1jPMx5i69VyM6TynkeFU0dI#shipthis-col80row24)

## What's next?

Your first build takes a few minutes. While it runs:

- Watch it live with [`--follow`](https://shipth.is/docs/reference/game/ship#follow-mode), or press **B** to open the job log in your browser
- Find it again later with [`shipthis game job`](https://shipth.is/docs/reference/game/job), or in the [dashboard](https://shipth.is/dashboard)
- Download the **APK**, **AAB** or **IPA** with [`shipthis game build`](https://shipth.is/docs/reference/game/build)

Then:

- [Ship to the App Store](https://shipth.is/docs/tutorials/app-store) - the full walkthrough, from a build to a game people can download
- [Game versioning](https://shipth.is/docs/guides/versioning) - the version and build numbers the stores expect
- [Troubleshooting](https://shipth.is/docs/troubleshooting) - if a build fails
- [Discord](https://discord.gg/gPjn3S99k4) - come and ask us, we answer

## FAQ

<details>
<summary>How much does it cost?</summary>

ShipThis is free while it is in open beta, and it will always be free for most solo devs.

See the [pricing page](https://shipth.is/pricing) for what is planned after the beta.

</details>

<details>
<summary>Do I need a Mac to build for iOS?</summary>

No. Your game is compiled on the ShipThis cloud build servers, so you do not need an Apple
computer, Xcode or the Android SDK. The CLI runs on Windows, macOS and Linux - there is
even a guide to [building for iOS from an Android device](https://shipth.is/docs/tutorials/godot-ios-from-android)
using Termux.

You will still need an [Apple Developer account](https://developer.apple.com) to publish to
the App Store, because that is Apple's requirement rather than ours.

</details>

<details>
<summary>Which versions of Godot are supported?</summary>

**All stable Godot versions since 3.6.**

ShipThis reads your **project.godot** file to work out which version you used, and builds
with the latest stable patch release of it. See
[Godot versioning](https://shipth.is/docs/guides/godot-versioning) for the full table, and for how to pin a
specific version.

</details>

<details>
<summary>Can I ship a C# game?</summary>

Yes - for **both iOS and Android**, on **Godot 3.6** or **Godot 4.3 and later**.

Godot 3.6 uses **Mono** and Godot 4 uses **.NET**. For Godot 4, develop with the .NET
version of the Godot editor. You do not need the Android or iOS toolchains on your own
machine - ShipThis provides the build environment.

</details>

<details>
<summary>Can I get a build without an Apple or Google account?</summary>

Yes. Add `--useDemoCredentials` and ShipThis signs the build with its own certificates and
keystore, so you get an **APK**, **AAB** or **IPA** you can install yourself without
setting up a developer account first.

See the [`game ship` reference](https://shipth.is/docs/reference/game/ship) for the commands, and run the
[wizard](https://shipth.is/docs/reference/game/wizard) later when you are ready to publish.

</details>
