Example Expo app demonstrating TesterArmy's AI-powered mobile testing. Built with Expo SDK 54, React Native 0.81, and React 19.
TesterArmy runs your app on cloud simulators and uses AI agents to click through it like real users — catching regressions without brittle selector-based tests.
- Node.js
- Xcode (for iOS simulator builds)
- TesterArmy account + API key (Team Settings → API Keys)
npm install
npx expo startSee Expo docs for emulator/simulator setup.
Generate the native project and build a simulator binary:
# Generate native iOS project
npx expo prebuild --platform ios
# Build for simulator
xcodebuild -workspace ios/testerarmy.xcworkspace \
-scheme testerarmy \
-configuration Debug \
-sdk iphonesimulator \
-derivedDataPath build \
build
# The built app bundle will be available at:
# build/Build/Products/Debug-iphonesimulator/testerarmy.appThe shared GitHub Action can upload the .app bundle directory directly, so you do not need to zip it first.
This repo uses .github/workflows/test-mobile-app.yml to build the iOS simulator app and run TesterArmy automatically with tester-army/mobile-github-action@v1.0.1.
| Secret | Description |
|---|---|
TESTERARMY_API_KEY |
API key from Team Settings → API Keys |
TESTERARMY_PROJECT_ID |
Your TesterArmy project ID |
TESTERARMY_WEBHOOK_URL |
Group webhook URL (includes secret) |
After building your .app bundle or downloading it from a previous job, call the shared action:
- name: Upload app and run TesterArmy tests
id: mobile
uses: tester-army/mobile-github-action@v1.0.1
with:
app_path: .build/testerarmy.app
api_key: ${{ secrets.TESTERARMY_API_KEY }}
project_id: ${{ secrets.TESTERARMY_PROJECT_ID }}
webhook_url: ${{ secrets.TESTERARMY_WEBHOOK_URL }}
delete_app_after_run: "true"
remove_after: "3600"The action handles the full mobile flow for you: upload the app, trigger your test group through the webhook, wait for the runs to finish, and delete the uploaded app afterward.
This example workflow runs on pull requests, on pushes to main, and manually through workflow_dispatch.
You do not need to upload the app in the TesterArmy dashboard or call the upload API yourself unless you want a custom integration outside GitHub Actions.
Create tests in the TesterArmy dashboard with step-by-step prompts. Guide the agent like you would a human user.
Weak prompt: "Check the explore tab"
Strong prompt: "Tap the Explore tab at the bottom, scroll down to the 'File-based routing' section, tap to expand it, verify the content is visible"
Both work, but specific prompts produce more reliable tests.
The full example lives in .github/workflows/test-mobile-app.yml. It builds the app on macos-latest, passes the .app artifact to a Linux job, and then runs the shared TesterArmy action there.
See the CI Integration guide for more details and additional workflow patterns.