Skip to the content

Getting started

From nothing to your first recorded run: a workspace, a project for your app, a build, and a flow that signs up.

Create your account

Go to app.trailcam.dev and sign in with Google, GitHub, a passkey, or a code we email you. There's no password to remember, and signing in and signing up are the same step.

Then name your workspace: it's where your team's projects, flows and runs live, and you can invite people as soon as it's ready.

Create a project

A project is one of your apps, with its Android and iOS builds. Its flows, builds and production checks live together. Choose Create project, name it and pick its platforms. Owners and admins create projects.

The project's home has a short list to work through: upload a build, get your first flows, run them on every build, and watch them in production. The rest of this page does the first two.

Upload a build

Trailcam runs your app on hosted simulators and emulators, so it needs a build made for them:

  • Android: an APK built for emulators (x86_64, or universal), for example from ./gradlew assembleDebug. App Bundles (.aab) don't install on emulators.
  • iOS: a simulator build, the .app folder Xcode makes for "Any iOS Simulator Device", zipped. Builds for real iPhones (.ipa) don't run on simulators.

To make and zip an iOS simulator build:

xcodebuild build -scheme MyApp -configuration Debug -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' -derivedDataPath build CODE_SIGNING_ALLOWED=NO
ditto -c -k --keepParent build/Build/Products/Debug-iphonesimulator/MyApp.app MyApp.zip

Drop the file on the project's Builds page. Trailcam checks it as it starts, reads the app's name, version and platform, and explains anything it can't run before you wait for an upload. Builds can be up to 2 GB, and an upload that stops picks up where it left off.

Find your journeys

The quickest way to your first flows. On the project's Flows page, choose Find my journeys. Trailcam AI opens your build on a device, looks round it for a few minutes and proposes the journeys worth checking, like signing up, searching or checking out. Tick the ones you want, and give it a test account if your app starts behind a sign-in. It writes each as a flow and runs it once to check it passes; Monitor them then adds a production check for each. Find my journeys says what it never taps, and what it costs.

Or write a flow yourself

A flow is one journey through your app, like signing up, written in Maestro's YAML. On the project's Flows page, choose New flow and start from the Sign up template:

# Creates a new account and checks that it ends up signed in.
# Change the text in quotes to match the labels in your app.
appId: ${APP_ID}
name: Sign up
tags:
  - sign-up
env:
  # A password your app accepts. Each run signs up with a new email address.
  PASSWORD: Trailcam-check-2468
---
- launchApp:
    clearState: true
- tapOn: "Sign up"
- tapOn: "Email"
- inputRandomEmail
- tapOn: "Password"
- inputText: ${PASSWORD}
- hideKeyboard
- tapOn: "Create account"
# Creating an account can take a while: wait up to 15 seconds.
- extendedWaitUntil:
    visible: "Welcome"
    timeout: 15000
- assertNotVisible: "Something went wrong"

Change the text in quotes to match the labels in your app. ${APP_ID} is filled in with each build's app ID, so one flow runs on both platforms. The editor checks the flow as you type and offers commands as you write them; press

Ctrl Space for suggestions. Writing flows covers the rest.

Run it

Choose Save and run. Trailcam runs the flow on a fresh device for each platform that has a build, an iPhone 17 and a Pixel 8, or the devices you choose with the arrow beside it, and records it. Most runs take a minute or two, and the page follows each one from waiting to running to its result.

When it finishes, the run's page has the recording in step with the flow's steps, the device's log, and, if it failed, the step that failed, the screen at the time and what to try. Trailcam AI adds why it likely failed.

Next

  • Run your flows on every build from GitHub Actions, GitLab, Bitrise and others.
  • Add a production check, so you hear the moment sign-up stops working for your customers.
  • Invite your team from the workspace's settings: owners, admins, members and viewers each see what they need.