Automate the entire app distribution process

Publish your Flutter app to the testers or stores on any platform.

Here’s how

Beta and app store deployments

Beta and app store deployments

Easily distribute beta builds to your testers or deploy to the stores using built-in publishing to TestFlight, App Store, Firebase App Distribution, Google Play, Huawei App Gallery, Microsoft Partner Center and Linux Snap Store.

Bypass Apple’s long processing time

Bypass Apple’s long processing time

Automate the most time-consuming App Store publishing steps without spending build minutes. Your new app version is submitted for review asynchronously and you’ll be notified when it’s ready for release.

Automatic app versioning

Automatic app versioning

Avoid versioning conflicts by incrementing the build version automatically. With Codemagic CLI tools, you can fetch the latest build version from Google Play or App Store for consistent and reliable distribution of new releases.

Manage your app’s metadata

Manage your app’s metadata

Let your testers and users know what’s new by automatically including release notes and changelogs to new version uploads. Capture screenshots for each language and device your app supports during the build to easily update app previews.

It’s easy to get started

Publish to App Store Connect
Publish to Google Play
Publish to Firebase App Distribution
App Store Connect

Publish to Test Flight or submit your app to App Store review.

Google Play

Manage every aspect of your Google Play releases.

Firebase App Distribution

Use Firebase App Distribution for beta testing new app versions.

Customize your distribution workflow with codemagic.yaml

  • Get App Store or TestFlight latest build number

    Use Codemagic CLI tools to fetch the latest iOS build number and use it for build versioning.

  • Get Google Play latest build number

    Use Codemagic CLI tools to fetch the latest Android build number and increment it with the next build.

  • Adding custom steps

    Codemagic has out-of-the-box integrations with all app stores and various distribution tools. You can extend the functionality further with custom post-publish scripts.

  • Scale white label apps with ease

    Use the same template workflow to publish multiple variations of the app.

  • workflows:
      sample-workflow:
        scripts:
          - |
            BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number $APPLE_ID)
            flutter build ipa --release --build-number=$(($BUILD_NUMBER + 1))
                        
  • workflows:
      sample-workflow:
        scripts:
          - |
            BUILD_NUMBER=$(google-play get-latest-build-number --package-name 'com.example.app')
            flutter build appbundle --release --build-number=$(($BUILD_NUMBER + 1))
                        
  • workflows:
      sample-workflow:
        publishing:
          scripts:
            - name: Publish to Firebase Hosting
              script: firebase deploy --token $FIREBASE_TOKEN
                        
  • definitions:
      workflow: &base_workflow
        scripts:
          - xcodebuild -scheme $XCODE_SCHEME
    
    workflows:
      build-foo:
        <<: *base_workflow
        environment:
          vars:
            XCODE_SCHEME: AppFoo
      build-bar:
        <<: *base_workflow
        environment:
          vars:
            XCODE_SCHEME: AppBar
    
    

Continue your Codemagic discovery

See what else Codemagic can do for your continuous integration and continuous delivery needs.