Skip to content

@expo/fingerprint ignores non-expo entries in app.json #3159

@karmatys8

Description

@karmatys8

Build/Submit details page URL

No response

Summary

Expo fingerprint ignores entries from app.json, app.config.js and etc. that are not in the "expo" property.

My exact issues is that I am using fingerpint as an runtimeStrategy. I needed to define "react-native-google-mobile-ads" property in my bare expo project and the build was not executed, since fingerprint stayed the same, even though the build was needed.

This issue occurs in both 0.12.4 and 0.13.4 @expo/fingerprint versions.

Managed or bare?

Bare

Environment

> npx expo-env-info
  expo-env-info 1.3.4 environment info:
    System:
      OS: macOS 15.6.1
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 24.4.1 - ~/.nvm/versions/node/v24.4.1/bin/node
      Yarn: 4.8.1 - ~/.nvm/versions/node/v24.4.1/bin/yarn
      npm: 11.4.2 - ~/.nvm/versions/node/v24.4.1/bin/npm
      Watchman: 2025.04.28.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.16.2 - /Users/konrad/.rvm/gems/ruby-3.2.2/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 24.5, iOS 18.5, macOS 15.5, tvOS 18.5, visionOS 2.5, watchOS 11.5
      Android SDK:
        API Levels: 33, 34, 35
        Build Tools: 34.0.0, 35.0.0, 36.0.0
        System Images: android-34 | Android TV ARM 64 v8a, android-35 | Google Play ARM 64 v8a, android-36 | Google TV ARM 64 v8a, android-36 | Google Play ARM 64 v8a
    IDEs:
      Android Studio: 2025.1 AI-251.26094.121.2512.13930704
      Xcode: 16.4/16F6 - /usr/bin/xcodebuild
    npmPackages:
      babel-preset-expo: 13.1.11 => 13.1.11 
      expo: 53.0.9 => 53.0.9 
      react-native-tvos:  0.79.2-0 
      react-native-web: 0.20.0 => 0.20.0 
    npmGlobalPackages:
      eas-cli: 16.17.4
    Expo Workflow: managed
> npx expo-doctor 
12/17 checks passed. 5 checks failed. Possible issues detected:
Use the --verbose flag to see more details about passed checks.

✖ Check package.json for common issues
The following scripts in package.json conflict with the contents of node_modules/.bin: prettier.
Advice:
Update your package.json to remove conflicts.

✖ Check dependencies for packages that should not be installed directly
The package "expo-modules-autolinking" should not be installed directly in your project. It is a dependency of other Expo packages, which will install it automatically as needed.
Advice:
Remove these packages from your package.json.

✖ Check that required peer dependencies are installed
Missing peer dependency: react
Required by: @react-native-tvos/virtualized-lists, expo, expo-image, react-native, react-native-mmkv, react-native-nami-sdk, @testing-library/react, @testing-library/react-native, react-hot-loader, react-native-web
Missing peer dependency: react-dom
Required by: @testing-library/react, react-hot-loader, react-native-web
Advice:
Install missing required peer dependencies with "npx expo install react react-dom"
Your app may crash outside of Expo Go without these dependencies. Native module peer dependencies must be installed directly.

✖ Check that native modules use compatible support package versions for installed Expo SDK
Expected package @expo/config-plugins@~10.1.1
Found invalid:
  @expo/[email protected]
  (for more info, run: npm why @expo/config-plugins)
Advice:
Upgrade dependencies that are using the invalid package versions.

✖ Check that packages match versions required by installed Expo SDK
The following packages should be updated for best compatibility with the installed expo version:
  [email protected] - expected version: 53.0.22
  [email protected] - expected version: ~2.4.0
  @expo/[email protected] - expected version: ~0.13.4
  @types/[email protected] - expected version: ~19.0.10
  [email protected] - expected version: ~13.0.0
  [email protected] - expected version: ~53.0.10
Your project may not work correctly until you install the expected versions of the packages.
Found outdated dependencies
Advice:
Use 'npx expo install --check' to review and upgrade your dependencies.
To ignore specific packages, add them to "expo.install.exclude" in package.json. Learn more: https://expo.fyi/dependency-validation

5 checks failed, indicating possible issues with the project.

Error output

No response

Reproducible demo or steps to reproduce from a blank project

  1. run npx @expo/[email protected] fingerprint:generate --platform android | jq -r ".hash" > a.txt
  2. add "test": "test" entry into the outermost scope of app.json (next to expo property)
  3. run npx @expo/[email protected] fingerprint:generate --platform android | jq -r ".hash" > b.txt
  4. run diff a.txt b.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs reviewIssue is ready to be reviewed by a maintainer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions