Build your Flutter apps for the platforms you need

Codemagic provides macOS, Linux and Windows machines so that you can build your app for iOS, Android, Web or desktop.

Here’s how

Develop on your favorite OS, release to any OS

Develop on your favorite OS, release to any OS

Regardless of what OS you use locally, with Codemagic you can build your Flutter app for iOS, Android, Web or desktop using macOS, Linux and Windows machines. Choose between Apple M1 Mac mini, Mac Pro or CPU-optimized Linux machines for optimal build performance.

Build efficiently, build confidently

Build efficiently, build confidently

All Codemagic build machines have Dart SDK and Flutter and many other tools pre-installed so you can save build time and get results faster. There are no surprises with the CI environment so you never have to deal with “it works on my machine” issues again.

Use any Flutter or Xcode version

Select the Flutter channel or Xcode version based on your needs. Easily switch between different versions to check if you’re ready for the next version bump without manually upgrading the software locally.

Run builds in parallel

Run builds in parallel

With Codemagic’s workflows, you can get results even faster by running builds in parallel. This is crucial if you target multiple platforms (iOS and Android) or build various flavors of your app.

Quick setup with Workflow Editor

Build platforms
Instance type
Flutter and Xcode version
Build mode
Platform

Get started by selecting which platforms to build for.

Instance

Choose the build machine that suits your workflow.

Flutter and XCode

Match the Flutter and Xcode version to what you use locally or test new versions.

Build type

Select the right build mode and pass additional build arguments.

Get more with codemagic.yaml

  • Set instance type

    Choose the best build performance with mac_mini_m1, mac_pro or linux_x2 instances.

  • Freeze build environment

    Specify Xcode and Flutter versions to guarantee consistent build results.

  • Using a monorepo

    If your Flutter project isn’t in the root directory, you can easily set the working directory for all commands.

  • Integrate with third-party services

    You can use pre-installed CLI tools or a Rest API to integrate your build with any other service.

  • workflows:
      sample-workflow:
      instance type: mac_mini_m1
      scripts:
        - flutter pub get
        - flutter build ios --debug --no-codesign
    
                        
  • workflows:
      sample-workflow:
      instance type: mac_mini_m1
      scripts:
        - flutter pub get
        - flutter build ios --debug --no-codesign
      environment:
        xcode: 14
        flutter: 3.0.5
    
                        
  • workflows:
      sample-workflow:
      instance type: mac_mini_m1
      working_directory: mobile
      scripts:
        - flutter pub get
        - flutter build ios --debug --no-codesign
      environment:
        xcode: 14
        flutter: 3.0.5
    
                        
  • workflows:
      sample-workflow:
      instance type: mac_mini_m1
      working_directory: mobile
      scripts:
        - bundle install
        - bundle exec fastlane beta
      environment:
        xcode: 14
        flutter: 3.0.5
    
                        

Continue your Codemagic discovery

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