Skip to content

Test Ateam Go on your own iPhone: a dev build plus npm run phone - #466

Merged
pallaoro merged 4 commits into
mainfrom
test-ateam-go-from-my-own-phone
Nov 3, 2026
Merged

pallaoro merged 4 commits into
mainfrom
test-ateam-go-from-my-own-phone

Conversation

@pallaoro

@pallaoro pallaoro commented Nov 3, 2026

Copy link
Copy Markdown
Member

Lets you try phone-app changes on your own iPhone while editing on a box.

  • Ateam Go Dev (bbb08b5, from `dev-build-on-phone`, which gets no PR of its own): adds `expo-dev-client`, and `app.config.js` with `APP_VARIANT=development` makes a separate app ("Ateam Go Dev", `com.clawnify.ateam.dev`, scheme `ateamgo-dev`) that installs next to the release app. Release config is unchanged. `npm run ios:dev` builds and installs it on a connected iPhone from a Mac.
  • `npm run phone` (`apps/mobile/scripts/phone-dev.sh`): runs Metro on 8082 behind `tailscale serve` on 8443 (tailnet only, never a public URL, since Metro's debugger endpoint has no auth). Metro gives out the tailnet HTTPS URL. The script refuses to start if another worktree is already serving.
  • README: generic steps under Develop.

Tested: the app loaded on a real iPhone over the tailnet from this branch. The manifest points at the tailnet URL, and the iOS bundle returns 200.

APP_VARIANT=development (app.config.js on top of app.json) gives the dev build
its own name (Ateam Go Dev), bundle id (com.clawnify.ateam.dev) and URL scheme
(ateamgo-dev), so a Debug build with expo-dev-client sits next to the TestFlight
and App Store app instead of replacing it. Without the variable the config is
app.json as before.

Expo applies expo-dev-client's config plugin automatically once the package is
installed, and the plugin adds an exp+ateam URL scheme. Release lists the plugin
with addGeneratedScheme off, so its Info.plist and entitlements match the
pre-change config (checked with expo config --type introspect).

npm run ios:dev prebuilds with --clean before expo run:ios, because run:ios only
prebuilds when ios/ is missing, and an ios/ left from the other variant keeps
that variant's bundle id.
Metro runs on 8082 behind tailscale serve on 8443 (tailnet only), and
hands out that HTTPS URL so the dev build on the iPhone loads the bundle
and hot-reloads from the box. It refuses to start if another worktree is
already serving.
Generic steps: build Ateam Go Dev once on a Mac with npm run ios:dev,
then npm run phone on the box and enter the printed URL in the app.
phone-dev.sh reads the tailnet name with node instead of jq.
@pallaoro
pallaoro merged commit 096c704 into main Nov 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant