Fastlane Plugin

Fastlane plugin to upload both Android and iOS apps to TestApp.io to notify everyone for testing and feedback.

Getting started

This project is a Fastlane plugin. To get started with fastlane-plugin-testappio, add it to your project by running:

fastlane add_plugin testappio

Configuration

Key Description Env Var(s) Default
api_token You can get it from https://portal.testapp.io/settings/api-credentials TESTAPPIO_API_TOKEN
app_id You can get it from your app page at https://portal.testapp.io/apps TESTAPPIO_APP_ID
release It can be either both or Android or iOS TESTAPPIO_RELEASE
apk Path to the Android APK file TESTAPPIO_ANDROID_PATH
ipa Path to the iOS IPA file TESTAPPIO_IOS_PATH
release_notes Manually add the release notes to be displayed for the testers TESTAPPIO_RELEASE_NOTES
git_release_notes Collect release notes from the latest git commit message to be displayed for the testers: true or false TESTAPPIO_GIT_RELEASE_NOTES true
git_commit_id Include the last commit ID in the release notes (works with both release notes options): true or false TESTAPPIO_GIT_COMMIT_ID false
notify Send notifications to your team members about this release: true or false TESTAPPIO_NOTIFY false

Check TA-CLI for more info

TestApp.io action

Actions provided by the CLI: ta-cli

Check out the example Fastfile to see how to use this plugin. Try it by cloning the repo, running fastlane install_plugins and bundle exec fastlane test.

Follow code snippet shows the parameters action upload_to_testappio supports.

upload_to_testappio(
  api_token: "API_TOKEN",
  app_id: "APP_ID",
  release_notes: "My release notes here...",
  git_release_notes: true,
  git_commit_id: false,
  notify: true
)
💡
You can replace all the parameters with environment variables: configuration
⚠️
API_TOKEN and APP_ID should be kept secret, we strongly recommend using environment variables instead.
💪
[release/apk_file/ipa_file] for Android/iOS projects could be ignored; the plugin detects the context and fills it automatically for you.

To upload after the Fastlane gym action:

iOS
  lane :beta do
  
    increment_build_number
    match(type: "adhoc")
    gym(export_method: "ad-hoc")
  
    upload_to_testappio(
      release_notes: "My release notes here...",
      git_release_notes: true,
      git_commit_id: false,
      notify: true
    )
    
    clean_build_artifacts #optional
    
  end

And finally 🎉

fastlane ios beta

Android

Optional:

fastlane add_plugin increment_version_code
  lane :beta do
    
    increment_version_code #[Optional] fastlane add_plugin increment_version_code
    
    gradle(task: "clean assembleRelease") #or clean assembleDebug
    
    upload_to_testappio(
      release_notes: "My release notes here...",
      git_release_notes: true,
      git_commit_id: false,
      notify: true
    )
    
  end

And finally 🎉

fastlane android beta

Troubleshooting

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

Using Fastlane plugins

Check out the Plugins documentation for more information about how the plugin system works.

About Fastlane

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


Feedback & Support

Developers built TestApp.io to solve the pain of app distribution for mobile app development teams.

Join our community for feedback and support.

Happy releasing 🎉