You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three independent cuts to the remaining wall-clock:
- Metro transform cache persisted to .metro-cache and actions/cache.
Content-addressed, so staleness only costs hit rate; shared by the 4
ppk bundles in prepare and the base-app bundling inside xcodebuild.
Measured locally: prepare 120s cold -> 52s warm.
- Homebrew download cache for applesimutils + ccache bottles.
- The built .app (plus hermesc, copied out of Pods after the build) is
cached keyed on every native input: both ios projects, cpp/, the
android/jni sources the podspec compiles, podspec/configs, and the
dependency lockfile. On an exact hit pod install and detox build are
skipped entirely and scripts/refresh-ios-app-bundle.sh re-injects the
current JS (metro bundle + hermesc, replicating react-native-xcode.sh
release flags) into the cached app — simulator apps don't enforce
code signatures. No restore-keys on purpose: a partial hit would be
the wrong binary. Verified on-device: injected app passes the full
suite 2/2, including a JS-only API-semantics change picked up with no
xcodebuild.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments