Skip to content

Enumeration

BuildSystem

The build system that produces the native artifact for a given target platform.

enum BuildSystem

Overview

BuildSystem is orthogonal to Platform: a single source tree can target both .ios and .android while being built by a cross-platform tool such as Flutter, React Native, or Kotlin Multiplatform. Native (pure Swift / pure Android-Gradle) projects use BuildSystem.native.

The value is configured under the ios: or android: Shipfile block via the build_system: key, or via the SHIPIT_IOS__BUILD_SYSTEM / SHIPIT_ANDROID__BUILD_SYSTEM environment variables. When unset, ConfigResolver auto-detects it from project files (e.g. pubspec.yaml → .flutter, kotlin("multiplatform") in build.gradle.kts → .kmp).

Usage

ios:
  build_system: kmp        # native (default) | flutter | react_native | kmp
  scheme: iosApp
android:
  build_system: kmp
  module: androidApp

Auto-detection rules

Project file detected

Build system

pubspec.yaml with a flutter: key

.flutter

package.json containing react-native dependency

.reactNative

build.gradle.kts declaring kotlin("multiplatform") plugin

.kmp

gradle/libs.versions.toml declaring the KMP plugin ID

.kmp

a module-level <dir>/build.gradle.kts applying the KMP plugin

.kmp

none of the above

.native

Topics

Enumeration Cases

  • case flutter

    Flutter — flutter build produces .app / .ipa on iOS and .apk / .aab on Android.

  • case kmp

    Kotlin Multiplatform — Gradle handles the Android target and produces an iOS framework that is consumed by an Xcode wrapper project.

  • case native

    Pure native build (Swift + xcodebuild for iOS, Kotlin/Java + Gradle for Android).

  • case reactNative

    React Native — Metro bundles JS, then xcodebuild (iOS) or Gradle (Android) produces the native artifact.

Type Methods

Relationships

Conforms To

  • Swift.CaseIterable
  • Swift.Decodable
  • Swift.Encodable
  • Swift.Equatable
  • Swift.Hashable
  • Swift.RawRepresentable
  • Swift.Sendable
  • Swift.SendableMetatype