Description
## Goal
Enroll a new iPad Pro as an internal TestFlight tester, install hydraheadipad, and verify the ExperienceNet kiosk works end-to-end including launching the Mercator Talks experience.
## Prerequisites
- iPad Pro running iPadOS 17.0 or later
- An Apple ID to associate with the device (either a personal Apple ID or a fleet account such as `device@experiencenet.com`)
- The Apple ID must be a member of the Apple Developer team (YNF589PKUK). If not yet a member, add via App Store Connect > Users and Access before enrolling.
- TestFlight app installed on the iPad (free from the App Store)
## Step 1 — Verify a valid build exists
1. Go to https://hydrapipelineapple.experiencenet.com/admin/builds
2. Confirm at least one build for hydraheadipad (App ID 6769830962) has state **VALID**
3. If no valid build exists, trigger a new release:
```
git -C /home/claude-user/hydraheadipad tag v0.x.0
git -C /home/claude-user/hydraheadipad push origin v0.x.0
```
CI run at github.com/cederikdotcom/hydraheadipad/actions takes ~2-3 min; Apple processing takes up to 30 min.
## Step 2 — Enroll the Apple ID as an internal TestFlight tester
### Via admin UI (preferred)
1. Go to https://hydrapipelineapple.experiencenet.com/admin/testers
2. Log in with the admin password
3. Fill in the Apple ID email, first name, and last name for the iPad
4. Click **Enroll**
5. The Apple ID receives a TestFlight invitation email
### Via CLI (alternative)
```
hydraapplepipeline tester add \
--email=device@experiencenet.com \
--first=Fleet \
--last=iPadPro
```
## Step 3 — Accept the invitation and install the app
1. Open the invitation email on the iPad (or a device signed in to that Apple ID)
2. Tap **View in TestFlight** — this opens the TestFlight app
3. Accept the invitation
4. Tap **Install** next to HydraHeadiPad
5. Wait for the install to complete
## Step 4 — Launch and verify the ExperienceNet kiosk
1. Open HydraHeadiPad on the iPad
2. The kiosk grid should load and show available experiences
3. Confirm the ExperienceNet experience grid is visible (not a blank screen or error state)
## Step 5 — Launch Mercator Talks
1. In the kiosk grid, locate the **Mercator Talks** experience tile
2. Tap the tile to launch the experience
3. Confirm the stream connects and Mercator Talks starts playing
4. Verify both audio and video are working
## Pass criteria
- TestFlight invitation accepted, app installs without error
- App launches to the ExperienceNet kiosk grid
- Mercator Talks tile is visible in the grid
- Mercator Talks experience launches and streams correctly (audio + video)
## Notes
- TestFlight builds expire after 90 days — no re-enrollment needed, but a fresh build must be tagged before expiry
- Internal testers only (up to 100 people, no Apple review required)
- Build pipeline reference: issue #200
- Enrollment runbook: hydraapplepipeline/docs/runbooks/testflight-enrollment.md
- App testbook: hydraheadipad/docs/testbooks/testbook.md
---
## Update 2026-05-18 — Apple build pipeline infrastructure context
### hydrapipelinerunnerapple
A new Go binary (repo: cederikdotcom/hydrapipelinerunnerapple) is being built to properly manage Apple build machines in the Hydra fleet. It follows the same pattern as hydraheadflatscreen: a proper binary with a named Cobra command, recipe-deployed via hydracluster, self-updating via hydrarelease.
**cederikmini** (Mac Mini, node-38f14c8b, macOS 26.4, arm64) is enrolled in hydracluster and will receive the `hydrapipelinerunnerapple` role. This machine wraps the GitHub Actions runner lifecycle for Apple platform builds.
### hydraheadmacos (Mac App Store) — still blocked on App Sandbox
hydraheadmacos requires App Sandbox registration in the Apple Developer Portal (team YNF589PKUK) before a VALID Mac App Store build is possible. Several workarounds were attempted and confirmed dead ends (all documented in the hydraapplepipeline runbook).
The only unblocking path: install Xcode on cederikmini, sign in with the Apple ID for team YNF589PKUK, then run a build with `-allowProvisioningUpdates`. This will be done once hydrapipelinerunnerapple is set up on cederikmini.
### hydraheadipad (iOS/iPadOS) — pipeline unblocked
iOS does not require App Sandbox, so the CI pipeline for hydraheadipad is unblocked and independent of the macOS issue. Builds go to TestFlight once provisioning is in place.
**The new iPad Pro can be enrolled in TestFlight as soon as:**
1. A VALID hydraheadipad build exists in App Store Connect (see Step 1 above)
2. The Apple ID for the device is added as an internal TestFlight tester (see Step 2 above)
The macOS App Sandbox blocker does not affect iPad enrollment.