Skip to content

The mobile project configuration toolbox. Manage native iOS, Android, Ionic/Capacitor, React Native, and Flutter apps through a simple YAML format.

License

Notifications You must be signed in to change notification settings

ionic-team/trapeze

Repository files navigation

Trapeze Logo

🤸‍♀️ Easy automated project configuration for iOS, Android, Capacitor, React Native, Flutter, and more 🤸‍♀️


Trapeze is a mobile project configuration toolbox for native iOS and Android project management. From a simple YAML format, Trapeze makes it easy to automate the configuration of native mobile iOS and Android projects, and supports traditional native, Ionic, Capacitor, React Native, Flutter, and .NET MAUI. The long-term goal of Trapeze is to enable fully immutable native mobile projects.

Trapeze works by automating the modification of pbxproj, plist, XML, Gradle, JSON, resource, properties, and other files in iOS and Android app projects. It features a configuration-driven tool that takes a YAML file with iOS and Android project modifications and performs those modifications from the command line interactively.

For example, modifying your project is as easy as writing a configuration file:

platforms:
  ios:
    targets:
      App:
        bundleId: $BUNDLE_ID
        version: $VERSION

  android:
    packageName: com.example.app
    versionName: $VERSION_NAME
    versionCode: $VERSION_CODE

Each one of these variables can be supplied from the environment or interactively when running the command. There are many more configuration options available.

A Project API is also available for writing custom JavaScript/TypeScript project modification scripts for full control. The configuration tool uses this API under the hood.

See trapeze.dev for full documentation and to get started using Trapeze.

Note: this project was formerly known as capacitor-configure but has now been expanded to support other mobile frameworks and renamed to Trapeze as of June 2022