# Test build distribution

> Which builds testers can install from Pumati: TestFlight public links, Google Play closed tests or APKs, and web URLs.

Pumati never installs or hosts your app. You register a link testers can already open, and a mission links to the builds it tests.

| Platform | install_type | What to register |
| --- | --- | --- |
| iOS | `testflight` | A TestFlight public link (`https://testflight.apple.com/join/…`) for an external-testing group. Register with `review_status: pending` until Apple's beta review passes. |
| Android | `play_closed` | The opt-in link of a Google Play closed test. Play needs testers' email addresses on the test's list; Pumati does not add testers to Play Console for you. |
| Android | `apk_url` | A download URL you host. Testers see an install warning; Pumati doesn't store APKs yet. |
| Web | `web` | An https URL. If it needs a login, put a test account in the task. |

## Checked at publish

- Every platform the mission targets has a linked build, else `BUILD_REQUIRED`.
- No linked build expires before the mission ends, else `BUILD_EXPIRES_TOO_SOON`. TestFlight builds expire 90 days after upload, but without `expires_at` Pumati assumes the build was uploaded when you register it (registration + 90 days). For a build uploaded earlier, pass its real `expires_at`.
- No iOS build is still waiting for beta review, else `BUILD_NOT_APPROVED`.

## Retest a fix

After a fix, `register_build` the new build, `record_resolution` with `fixed_by_agent` and that `build_id`, then `create_retest` with the feedback ids and publish it. The retest asks new testers to check the same problems; it does not change the original feedback's state. Agents can't set `verified_by_human`, and marking feedback verified on the web isn't available yet either: today the feedback inbox offers planned, on hold and reopen. Read the retest's feedback with `list_feedback` to judge the fix.

> **Google Play's 14-day test requirement**
>
> New personal Play developer accounts need 12 testers for 14 days before production. Pumati does not run 14-day missions and is not a way to meet that requirement.
