flutter_version (Fastlane plugin)
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
Dir.chdir "../.." do sh("flutter", "build", "appbundle", "--release") end # Call Flutter Build
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
Dir.chdir "../.." do sh("flutter", "build", "ios", "--release", "--no-codesign") end # Call Flutter Build
# 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 (relative to Fastfile ). For details, see here. |
:white_check_mark: | String |
../pubspec.yaml |
should_omit_version_code |
If the version code should be omitted for projects that do not use a version code. For details, see here. | :white_check_mark: | Boolean |
false |
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.
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.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Shun Kakinoki 💻 |
Tianhao Zhou 💻 |
davidbrenner 🤔 📖 |
Daniel Gomez 🤔 |
RtypeStudios 💬 📖 ✅ |
Marvin M 🤔 |
Muhammad Adil 📖 🐛 |
Leslie Arkorful 🐛 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!