Description of the bug
The continuous-deploy-fingerprint action's platform input only accepts 'all' | 'ios' | 'android'. When set to all (the default), builds are correctly scoped to iOS + Android, but the eas update step runs eas update --platform all, which triggers expo export for all platforms including web.
This causes failures for projects that use native-only modules (e.g. react-native-fast-tflite) which crash during the web export phase:
Metro error: Cannot read properties of undefined (reading 'getEnforcing')
TypeError: Cannot read properties of undefined (reading 'getEnforcing')
Expected behavior
is there any way to target both native platforms without including web. For example:
Accept comma-separated values: platform: ios,android
Or add a new option like platform: native
Or pass --platform per-platform to eas update the same way builds already resolve all → ['ios', 'android']
Actual behavior
- platform: all → builds for iOS + Android (correct), but eas update --platform all exports for web too (breaks)
- platform: ios → only handles iOS
- platform: android → only handles Android
- No option to target both iOS and Android without web
Running the action twice (once per platform) is not viable because the second invocation overwrites the first PR comment (same messageId).
Additional context
name: Preview with EAS
on:
pull_request:
jobs:
preview-with-eas:
name: Preview with EAS
runs-on: ubuntu-latest
concurrency: fingerprint-${{ github.run_id }}
permissions:
contents: read
pull-requests: write
actions: write
packages: write
steps:
- name: 🔍 Check for EXPO_TOKEN
run: |
if [ -z "${{ secrets.EXPO_TOKEN }}" ]; then
echo "You must provide an EXPO_TOKEN secret linked to this project's Expo account in this repo's secrets. Learn more: https://docs.expo.dev/eas-update/github-actions"
exit 1
fi
- name: 🏗 Setup repo
uses: actions/checkout@v4
- name: 🌿 Setup Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
cache: "npm"
- name: Λ Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: 📦 Install dependencies
run: npm ci
- name: 🚀 Create Preview with EAS Build and Update
uses: expo/expo-github-action/continuous-deploy-fingerprint@main
with:
profile: development
branch: development
platform: all
Description of the bug
The continuous-deploy-fingerprint action's platform input only accepts 'all' | 'ios' | 'android'. When set to all (the default), builds are correctly scoped to iOS + Android, but the eas update step runs eas update --platform all, which triggers expo export for all platforms including web.
This causes failures for projects that use native-only modules (e.g. react-native-fast-tflite) which crash during the web export phase:
Metro error: Cannot read properties of undefined (reading 'getEnforcing')
TypeError: Cannot read properties of undefined (reading 'getEnforcing')
Expected behavior
is there any way to target both native platforms without including web. For example:
Accept comma-separated values: platform: ios,android
Or add a new option like platform: native
Or pass --platform per-platform to eas update the same way builds already resolve all → ['ios', 'android']
Actual behavior
Running the action twice (once per platform) is not viable because the second invocation overwrites the first PR comment (same messageId).
Additional context