1# Building the mobile Screens dependency
2
3The mobile v5 stack uses a committed tarball from the
4[T3 Screens fork](https://github.com/pingdotgg/react-native-screens/tree/t3-v5.0.0-t3.27).
5The fork owns the integration changes; the app does not patch this package.
6Each archive includes compiled JavaScript, declarations, native source and
7`t3-fork.json` recording its version, source commit and upstream base.
8
9To reproduce an archive, use Node 24 and the repository's pinned Yarn from a
10clean fork checkout at the source commit recorded in its `t3-fork.json`:
11
12```sh
13yarn --cwd /tmp/t3-screens-fork pack:t3 /absolute/path/to/t3code/apps/mobile/deps
14```
15
16For an update, sync the fork's `main` with upstream, merge it and the required
17proposal branches into `t3/main`, increment the `5.0.0-t3.N` version, pin `t3Fork.upstreamCommit` to the
18integrated upstream SHA and commit.
19Run `pack:t3` from that clean checkout and tag the source as `t3-v<version>`.
20Publish the source commit and tag to the fork before submitting the app change.
21Replace the old archive, update `apps/mobile/package.json` and run `vp i` to
22regenerate the lockfile. Verify mobile types and affected navigation tests.
23Changes to native source also require rebuilding and testing the native client.
24
25The same iOS binary supports iPhone, iPad, and Duo. UIKit hinge updates enable
26phone workspace columns at runtime; regular phones retain portrait rotation.
27Use the normal EAS build profiles and update channels. Duo support requires a
28binary built with the iOS 27.1 SDK; an OTA cannot add the native APIs.