Skip to content

Instantly share code, notes, and snippets.

@mathias5r
Last active January 7, 2026 17:45
Show Gist options
  • Select an option

  • Save mathias5r/43f5d3bffb79457bac65534f7521a624 to your computer and use it in GitHub Desktop.

Select an option

Save mathias5r/43f5d3bffb79457bac65534f7521a624 to your computer and use it in GitHub Desktop.
Fingerprint + CircleCi
build_nonprod_ios_local:
executor: macos_executor
steps:
- checkout_and_attach
- run:
name: 'Run expo fingerprint'
command: |
npx @expo/fingerprint@latest . > fingerprint.json
- restore_cache:
keys:
- 1-ios-build-{{ checksum "fingerprint.json" }}
- run:
name: 'Build nonprod app locally'
command: |
if [ ! -d "ios/build/Build/Products/Release-iphonesimulator/MyApp.app" ]; then
xcodebuild ARCHS=x86_64 ONLY_ACTIVE_ARCH=NO -workspace ios/MyApp.xcworkspace -scheme MyApp -configuration Release -sdk iphonesimulator -derivedDataPath ios/build
else
echo "Cached ios build already exists"
fi
- save_cache:
key: 1-ios-build-{{ checksum "fingerprint.json" }}
paths:
- ios/build/Build/Products/Release-iphonesimulator/MyApp.app
- run:
name: 'Replace js bundle'
command: |
npx expo export:embed --platform ios --dev false --entry-file node_modules/expo-router/entry.js --bundle-output ios/build/Build/Products/Release-iphonesimulator/MyApp.app/main.jsbundle --assets-dest ios/build/Build/Products/Release-iphonesimulator/MyApp.app
- persist_to_workspace:
root: .
paths:
- ios/build/Build/Products/Release-iphonesimulator/MyApp.app
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment