> ## Documentation Index
> Fetch the complete documentation index at: https://hercules.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Your App

> Update your mobile app by publishing in Hercules. Content changes go live instantly; a new app name, icon, version, or permission needs a new store build.

## Update App

Most updates need nothing more than publishing your changes in Hercules. Your store app loads your published app, so it shows the new version the next time it opens.

<Steps>
  <Step title="Make Your Changes">
    Update your app content, design, or functionality in Hercules.
  </Step>

  <Step title="Publish">Click **Publish** in the top right corner.</Step>

  <Step title="Reopen the App">
    Close the app on your phone and open it again. Your changes appear right away.
  </Step>
</Steps>

<Check>
  **Use this for most updates.** Content and functionality changes need no store review.
</Check>

***

## Update App on App Stores

<Warning>
  Only build a new store version when you change something that lives in the app itself: the **App
  name**, **Store icon**, **Version**, device permissions, or push notifications, or your iOS store
  listing. For content and functionality changes, follow the steps above instead.
</Warning>

<Tabs>
  <Tab title="Google Play">
    <Steps>
      <Step title="Publish Your Changes on Hercules">
        Make your updates in Hercules, then click **Publish** in the top right corner.
      </Step>

      <Step title="Build a New Version">
        To show a new version number on your store listing, open **App settings** (the gear icon next to your app name), raise **Version**, and click **Save changes**.

        Click **Mobile** → **Android**, then click the build button next to **Recent builds**. The button shows the version code the new build gets, like **Build version code 2**. Hercules raises the version code for you (Google Play accepts each one only once) and signs the build with the same key as your first release, so Play accepts it as an update.
      </Step>

      <Step title="Release the Update">
        If you connected Google Play, the build uploads to internal testing on its own. Open the [Play Console](https://play.google.com/console) and promote it to **Production** when you are ready. If the app is not in production yet and your developer account is a personal one created after November 13, 2023, finish a [closed test with 12 testers](/docs/apps/mobile/store-requirements#do-i-need-12-testers-before-my-app-goes-live-on-google-play) first.

        If you have not connected Google Play, click **Download** on the new build under **Recent builds**, then upload the `.aab` file to a new release in the Play Console by hand. The file name ends in the version code, like `my-app-1.0.0-code-2.aab`, so check that it is the new one: Play refuses a version code it already has.
      </Step>
    </Steps>

    <Accordion title="Updating an app packaged with PWA Builder">
      1. Find your signing files from the original PWA Builder zip:
         * `signing.keystore`
         * `signing-key-info.txt`
      2. Go to [pwabuilder.com](https://pwabuilder.com) and enter your app URL
      3. Click **Package for stores** → **All settings**
      4. Scroll to **Signing key** and select **Use Mine**
      5. Upload your `signing.keystore` and enter passwords from `signing-key-info.txt`
      6. Download the new AAB file, then upload it to a new release in the Play Console

      To switch this app to Hercules builds instead, see [How do I update an app that is already on Google Play?](/docs/apps/mobile/publish-app-store#how-do-i-update-an-app-that-is-already-on-google-play)
    </Accordion>
  </Tab>

  <Tab title="iOS App Store">
    <Steps>
      <Step title="Publish Your Changes on Hercules">
        Make your updates in Hercules, then click **Publish** in the top right corner.
      </Step>

      <Step title="Raise the Version">
        Open **App settings** (the gear icon next to your app name), raise **Version** (e.g. 1.0.0 → 1.1.0), and click **Save changes**. Apple does not accept a new build of a version that is already on the App Store. Hercules raises the build number for you.

        Click **Edit listing** on the **iOS** tab and fill in **What's new in this version**: Apple requires it for every version after the first. Change anything else the App Store shows there too. Hercules sends the listing with your next submission.
      </Step>

      <Step title="Build and Submit">
        1. Click **Mobile** → **iOS** → **Build iOS** and wait for the build to show **In testing**
        2. Click **Submit for review**

        App Review checks every update. Once approved, it goes live on its own, or when you click **Release now** if you chose to release manually.
      </Step>
    </Steps>

    <Accordion title="Updating an app you built yourself in Xcode">
      1. Increment the version number (e.g. 1.0.0 → 1.1.0) and the build number (e.g. 1 → 2)
      2. Archive the project (**Product** → **Archive**)
      3. Upload to App Store Connect from the Organizer
      4. Create a new version in App Store Connect and submit it for review
    </Accordion>
  </Tab>

  <Tab title="Microsoft Store">
    <Steps>
      <Step title="Publish Your Changes on Hercules">
        Make your updates in Hercules, then click **Publish** in the top right corner.
      </Step>

      <Step title="Generate Updated Package">
        Go to [pwabuilder.com](https://pwabuilder.com) and generate a new MSIX package.
      </Step>

      <Step title="Submit to Microsoft Store">
        1. Go to [Microsoft Partner Center](https://partner.microsoft.com/dashboard)
        2. Select your existing app
        3. Create a new submission and upload the new MSIX package
        4. Submit for review
      </Step>
    </Steps>
  </Tab>

  <Tab title="Progressive Web App">
    **No action needed.** People get the latest version the next time they open the app.

    For important updates, ask Hercules to prompt people to refresh:

    ```text Add refresh prompt wrap theme={}
    Add a prompt that asks users to refresh when a new version is available
    ```
  </Tab>
</Tabs>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.