Skip to content

Invite your testers

A tester is someone who installs your builds. Testers sign in with an ordinary AppGantry account, but they never see your builds list, members, or audit log: they see only what they've been granted.

This page is the first run: get one tester onto one build. The deep version — grant levels at scale, tester groups, invitation lifetimes, and revocation — is Managing testers & groups, which owns all of it.

Pick a grant level

Access is granted at one of three levels. Higher levels cascade downwards, so grant at the narrowest level that still does the job.

Level Where Reaches
Organization Org → Testers Every project in the organization
Project Project → Testers Every channel in that project
Channel The channel's detail page That one channel

For a first build, project is usually the right answer: the tester gets everything in that one app and nothing else.

Invite by email

Entering an address is the same action at all three levels. What it does is not:

  1. Open the relevant Testers section.
  2. Enter the tester's email address and confirm.

At organization or project level the address itself carries the grant. If it already belongs to an AppGantry account, access is granted immediately and there is nothing to accept. If it doesn't, the grant waits as a pending entry — with no expiry — until someone signs up with that address and verifies it.

At channel level the account makes no difference: you always mint a single-use invitation link that expires in about 10 minutes, and the tester has to open it and accept while signed in as the invited address. Nothing attaches by itself, and nothing waits on the channel for a signup that never happens.

Pending organization and project entries are listed alongside active ones with a Pending badge, and can be re-sent or cancelled. Re-sending one is throttled to about once every five minutes.

A channel invitation has no resend and no cooldown: it is a single-use link, so a lost or expired one is replaced by minting another.

How long an invitation lasts depends on which kind it is — a channel invite is a single-use 10-minute link, a pending org or project tester grant never expires, and a member invitation is a different thing on a 14-day clock. The table is in Managing testers → Invitation lifetimes.

What your tester does next

The path depends on the level you granted, because only one of the two involves a link.

An organization or project grant has no accept link and no token. The email says they have been added and points them at AppGantry:

  1. Sign in — or sign up with the address you invited and verify it. There is no accept step and no interstitial: the grant attaches to the account when that address is verified, which is also why signing up with a different address shows them nothing.
  2. Dashboard → My apps — every release available to them, grouped by organization, project, and channel, with version, platform, size, and release date. Mandatory releases are flagged.
  3. Install from there.

A channel invitation is the one with a link, and the link is on a clock:

  1. Open the invitation within about 10 minutes. It lands on an interstitial naming the organization, project, and channel.
  2. Sign in, or create an account and verify the invited address, then accept. Acceptance is a separate authenticated step, so opening the page doesn't consume the invitation.
  3. Dashboard → My apps, then install, exactly as above.

If a channel link has expired, mint a fresh invitation rather than resending — a channel invitation has no resend.

Installing works per platform:

  • Apple platforms install over the air. The tester taps Install on the device itself and the operating system takes the install from there; the itms-services:// hand-off runs only in Safari, on the iPhone or iPad, so it does nothing in a desktop browser or inside an in-app webview.
  • Android installs by direct download. The tester downloads the .apk and opens it, which may require allowing installs from that browser in Android's settings.

A tester can still start from a desktop, because the install page hands off with a QR code: on Apple platforms it encodes a short-lived, sign-in-free install page that the target device opens in Safari — scan it with the device's Camera app, then tap Install there — and on Android it encodes the download link, so scanning it pulls the .apk straight onto the phone. What cannot be done is finishing the install in the desktop browser itself.

There is no private install link for you to send. Each install is authorized by a short-lived signed capability (about 15 minutes for the over-the-air path) that the tester mints for themselves: they open Dashboard → My apps, signed in as the account you granted, and start the install from there. That is why "go to My apps" is the instruction to give a tester, rather than "use the link I sent you" — you have no link to send them.

An install capability is a credential, not a share link

Whoever holds an unexpired one can install that build, with no second check of who they are. Don't forward one, paste it into a ticket, or store it in tooling; if one leaks, it stops working on its own within about 15 minutes. My apps mints a fresh one for every install, so there is never a reason to reuse a capability someone sent you.

The one install link a developer does distribute is the public install link below, which is public by design and skips tester access entirely.

Two kinds of invitation carry a link, and clicking one lands on an interstitial rather than jumping straight into an account, so the recipient knows what they are accepting before they sign in or sign up:

  • An organization or project member invite — a teammate joining with a role, not a tester — names the organization, the project where there is one, the role being offered, and when the invitation expires.
  • A channel tester invite names the organization, project and channel, and when the invitation expires. There is no role to show: the grant is tester access to that channel.

A pending organization or project tester grant has neither: no token, no link, and no page to preview. It attaches on its own when the invited address is verified.

Two properties of that page matter operationally:

  • Viewing an invite doesn't consume it. The preview is read-only, so a link scanner or mail-security service that pre-fetches the URL can't burn the invitation before the human clicks it. Acceptance is a separate, authenticated step.
  • An expired, used or unknown token looks identical. All three return the same "not found", so a leaked link can't be used to probe which organizations, projects or channels exist. If a tester reports a dead link, issue a fresh invitation rather than trying to diagnose it from the page — a channel invitation is minted again rather than re-sent.

A channel can be marked public, which lets anyone with a link install its current release without signing in and without being a tester. It's the right tool for an open beta or a demo build.

To turn it on: open the channel, tick Public channel under Channel settings, and save. The Public install link then appears on that same page with a copy field — it isn't shown while the channel is private, and turning the setting off revokes it immediately.

Anonymous downloads still count against your usage and, on a metered plan, your bill. Pair a public channel with a spend cap.

Where to go from here

Everything past a first tester lives on the deeper pages:

You want to Read
Manage forty testers instead of one Tester groups
Know exactly when each invitation expires Invitation lifetimes
Take access away Removing access
Give a teammate a role, not tester access Organizations & members

See also