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.
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
:
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.
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.
gem "fastlane-plugin-flutter_version", git: "https://github.com/tianhaoz95/fastlane-plugin-flutter-version"
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.
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
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 |
Fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out fastlane.tools.
For any other issues and feedback about this plugin, please submit it to this repository.
If you have trouble using plugins, check out the Plugins Troubleshooting guide.
For more information about how the fastlane
plugin system works, check out the Plugins documentation.
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!