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:
- Open the relevant Testers section.
- 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:
- 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.
- 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.
- Install from there.
A channel invitation is the one with a link, and the link is on a clock:
- Open the invitation within about 10 minutes. It lands on an interstitial naming the organization, project, and channel.
- 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.
- 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
.apkand 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.
What the invite link shows before sign-in¶
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.
No account at all: the public install link¶
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¶
- Managing testers & groups: the canonical page for everything above.
- Enrolling test devices: getting UDIDs registered for Apple ad-hoc builds.
- First-build troubleshooting: what to do when an install fails.