/fastlane-plugin-flutter_version

Fastlane plugin to retrieve version code for Flutter projects.

Primary LanguageRubyMIT LicenseMIT

flutter_version (Fastlane plugin)

All Contributors

fastlane Plugin Badge Gitpod Ready-to-Code codecov

flutter_version is a Fastlane plugin to retrieve version code from Flutter projects which can be used to release changlogs and other metadata to marketplaces.

Installation

This project is a fastlane plugin. To get started with fastlane-plugin-flutter_version, add it to your project by adding the following lines in Gemfile:

From GitHub registry (recommended)

Install from the command line:

gem install fastlane-plugin-flutter_version --version "1.0.0" --source "https://rubygems.pkg.github.com/tianhaoz95"

Install via Gemfile:

source "https://rubygems.pkg.github.com/tianhaoz95" do
  gem "fastlane-plugin-flutter_version", "1.0.0"
end

Check out the instructions in GitHub Registry.

From RubyGems registry

Install from the command line:

gem install fastlane-plugin-flutter_version

Install via Gemfile:

gem 'fastlane-plugin-flutter_version', '~> 1.0', '>= 1.0.1'

Check out the instructions here.

Directly from Github

gem "fastlane-plugin-flutter_version", git: "https://github.com/tianhaoz95/fastlane-plugin-flutter-version"

Usage

Android example

The following example releases a Android app to Google Play Store without needing to manually specify the app version:

desc "submit to internal track in Google Play Store"
lane :internal do
  gradle(task: 'bundle', build_type: 'Release')
  upload_to_play_store(
    track: 'internal',
    version_code: flutter_version()["version_code"],
    aab: '../build/app/outputs/bundle/release/app-release.aab',
    skip_upload_screenshots: true,
    skip_upload_images: true
  )
end

The line flutter_version() fetches the version information from the pubspec.yaml file from the Flutter project and parses the version information from the file. This is convenient for continuous integration because it saves the effort for developers to keep track of version information in multiple places.

For more details, check out the example project configuration.

iOS example

The following example releases an iOS app to TestFlight without needing to manually specify the app version or build number:

desc "submit to TestFlight"
lane :internal do
  # https://docs.fastlane.tools/actions/increment_version_number/
  increment_version_number(
    xcodeproj: "Runner.xcodeproj",
    version_number: flutter_version()["version_name"] # Set a specific version number
  )
    # https://docs.fastlane.tools/actions/increment_build_number/
  increment_build_number(
    xcodeproj: "Runner.xcodeproj",
    build_number: flutter_version()["version_code"] # Set a specific build number
  )
  build_app(workspace: "Runner.xcworkspace", export_method: "app-store")
  upload_to_testflight
end

Available options

Name Description Optional Type Default
pubspec_location The location of the pubspec.yaml file. ✅ String ../pubspec.yaml
should_omit_version_code If the version code should be omitted for projects that do not use a version code. ✅ Boolean false

Issues and feedback

For any other issues and feedback about this plugin, please submit it to this repository.

Troubleshooting

If you have trouble using plugins, check out the Plugins Troubleshooting guide.

Using Fastlane plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation.

About Fastlane

Fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Shun Kakinoki

💻

Tianhao Zhou

💻

davidbrenner

🤔 📖

Daniel Gomez

🤔

RtypeStudios

💬

This project follows the all-contributors specification. Contributions of any kind welcome!