Skip to main content
QA Wolf runs flows against a real build of your app — an .apk or .aab for Android, an .ipa for iOS. Your pipeline uploads each new build and notifies QA Wolf, which triggers a run against it.

How it works

1

Upload the build artifact

Your pipeline sends the build to QA Wolf and gets back a path identifying it.
2

Notify QA Wolf of the deployment

Your pipeline passes that path to QA Wolf as RUN_INPUT_PATH, which starts a run against the new build.
During setup you can upload builds without triggering runs.
QA Wolf must enable mobile triggers for your workspace before any of this starts a run. Until then, uploads and deploy notifications both succeed and no flows run, with no error. Ask your QA Wolf representative to enable them, and expect to confirm which environments you want to test, whether PR testing is enabled, your naming conventions, and the upload method you chose.

Requirements

  • A QA Wolf API key — Workspace Settings → Integrations → API Access — stored in your CI system as QAWOLF_API_KEY.
  • Naming conventions agreed for your build artifacts. See Name your build artifacts.

Name your build artifacts

QA Wolf parses the artifact name to determine which environment to run against, and whether the build belongs to a pull request. Provide the basename only — QA Wolf applies the file extension automatically. Static environments. Use the same basename for every build of that environment.
Example: app-staging PR environments. Only applies if PR testing is enabled.
Example: app-myorg-myrepo-pr123

Upload a build artifact

Add the QA Wolf Fastlane plugin to your project, then call upload_to_qawolf in the lane that builds your app.Example:
These examples upload an Android .apk. iOS works identically — point the same steps at your .ipa.

Trigger a test run

Pass the path from the upload step as RUN_INPUT_PATH. Set the deployment type to the label QA Wolf configured for your workspace, such as staging, or omit it if your workspace has no label.
The Fastlane plugin takes the name of the environment variable holding the path, not the path itself.Example:
RUN_INPUT_PATH accepts either form of the path. An absolute path is used as-is; a bare filename resolves against the uploads directory on the runner.

Use the build in a flow

QA Wolf uses the most recent upload automatically. To point a flow at a specific build, see App resolution for Android or iOS.

Verify the integration

1
Run the CI job that builds your app.
2
Confirm the upload step completes successfully.
3
Confirm the deploy notification step runs without errors.
4
Once mobile triggers are enabled, check the Runs tab for the triggered run.

Troubleshooting

  • Uploads succeed, but no runs start — mobile triggers may not be enabled for your workspace yet.
  • The artifact isn’t found during a run — verify the basename matches your naming conventions, and that RUN_INPUT_PATH carries the path returned by the upload step.
  • Authentication errors — verify QAWOLF_API_KEY is set correctly in the CI job.
  • The wrong environment is tested — verify the deployment type matches the value configured for your workspace.
  • The job fails before the QA Wolf steps — verify the build step completes and produces the artifact you expect.
Last modified on September 17, 2026