Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EAS Build is generating builds with different fingerprint from what it was supposed to #2615

Closed
giorgiofellipe opened this issue Oct 10, 2024 · 9 comments

Comments

@giorgiofellipe
Copy link

giorgiofellipe commented Oct 10, 2024

Build/Submit details page URL

No response

Summary

On EAS Build logs it shows me differences between the fingerprint calculated on my local machine (CI pipeline, actually) and the one calculated on EAS. But the message also says it will consider the one my local machine has calculated, but it is NOT true as you can see on the following screenshots.

The message I see on EAS:
image

The data I see on the generated build:
image

See that the first line says Rev.: 93743147 which is the first 8 characters of the runtime version got from expo-updates library.
This is exactly the same as the runtime calculated on EAS.

But that message on EAS said it would generate it using the fingerprint calculated on my local machine, so it should print there Rev.: 6157eee1 instead.
This way my updates will never match the runtime version. I'm basically not able to send any OTA Updates...

Managed or bare?

managed

Environment

expo-env-info 1.2.0 environment info:
System:
OS: macOS 13.5.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.16.0 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 10.8.1 - /usr/local/bin/npm
Managers:
CocoaPods: 1.15.2 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 23.2, iOS 17.2, macOS 14.2, tvOS 17.2, visionOS 1.0, watchOS 10.2
Android SDK:
API Levels: 26, 29, 30, 31, 32, 33, 34
Build Tools: 29.0.2, 29.0.3, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 33.0.0, 33.0.1, 33.0.2, 34.0.0
System Images: android-30 | Google APIs ARM 64 v8a, android-33 | Google APIs ARM 64 v8a, android-33 | Google Play ARM 64 v8a, android-34 | Google APIs ARM 64 v8a
IDEs:
Android Studio: 2024.1 AI-241.18034.62.2411.12071903
Xcode: 15.2/15C500b - /usr/bin/xcodebuild
npmPackages:
@expo/metro-config: ~0.17.0 => 0.17.8
babel-preset-expo: ^11.0.8 => 11.0.14
expo: ~51.0.37 => 51.0.37
expo-router: ^3.5.15 => 3.5.23
react: 18.2.0 => 18.2.0
react-dom: 18.2.0 => 18.2.0
react-native: 0.74.1 => 0.74.1
react-native-web: ~0.19.6 => 0.19.12
npmGlobalPackages:
eas-cli: 7.6.2
Expo Workflow: managed

Error output

No response

Reproducible demo or steps to reproduce from a blank project

.

@giorgiofellipe giorgiofellipe added the needs review Issue is ready to be reviewed by a maintainer label Oct 10, 2024
@giorgiofellipe
Copy link
Author

giorgiofellipe commented Oct 10, 2024

Also the GHA expo/expo-github-action/continuous-deploy-fingerprint does not calculate the same fingerprint as EAS Build does.

As you can see on the following images the update was sent using the locally calculated fingerprint.

Local calculated fingerprint
image

EAS calculated fingerprint
image

@szdziedzic
Copy link
Member

Also the GHA expo/expo-github-action/continuous-deploy-fingerprint does not calculate the same fingerprint as EAS Build does.

Is it possible that you have a dynamic app config that depends on env variables that have different values on GHA and EAS? 🤔

@szdziedzic szdziedzic added eas update eas build and removed needs review Issue is ready to be reviewed by a maintainer labels Oct 14, 2024
@giorgiofellipe
Copy link
Author

giorgiofellipe commented Oct 14, 2024

@szdziedzic We do not have a dynamic app config, currently using app.json actually. Does EAS consider only EXPO_PUBLIC_ env vars? Our CI pipeline generates a .env file from all EXPO_PUBLIC_ env vars.

For reference:


      - name: Create env file
        run: |
          > .env
          echo '${{ toJson(vars) }}' | jq -r 'to_entries | .[] | select(.key | startswith("EXPO_PUBLIC_")) | "\(.key)=\(.value)"' >> .env
          cat .env

      - name: Setup EAS
        uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}

      - name: Install dependencies
        run: pnpm install

      - name: Run Tests
        run: pnpm test

      - name: Build & Generate OTA Update (dev)
        id: build
        uses: expo/expo-github-action/continuous-deploy-fingerprint@main
        with:
          working-directory: ./monorepo/apps/mobile
          profile: preview
          branch: preview

@szdziedzic
Copy link
Member

EAS CLI does not work with .env files by itself. Only Expo CLI does as of today. So all of the variables present in the .env will be ignored by the eas build command and visible when resolving config during the build process both locally and on EAS servers. To use env vars with eas build you can use the env field in the eas.json config file or secrets defined on Expo servers. https://docs.expo.dev/build-reference/variables/

The one pretty confusing thing is that under the hood EAS Update does npx expo export and because Expo CLI supports .env the env vars with the EXPO_PUBLIC prefix from the file will be used when bundling. https://docs.expo.dev/eas-update/environment-variables/

So there is a different env vars handling behavior for EAS Update and EAS Build and Expo CLI as of today, which may lead to some issues in some cases, caused by env vars mismatch in different places, what can be the root cause of your problems? We are aware of the issue and are working towards making it better and plan to announce new env variables enhancements really soon. However, until this is done I believe the best thing you can do is to try to get the env vars to be set the same way in all of these places. Let me know if you have any more questions regarding this matter.

When it comes to handling fingerprint mismatch we had an internal discussion about it. It feels like creating a successful build with fingerprint coming from either local (from EAS CLI) or remote (from our cloud builder) sources, when there is fingerprint mismatch between these, seems to have disadvantages and may lead users to end up in non-explicit failure state, where it's ultra hard or impossible to get build to receive updates properly. As of today, we are leaning towards always explicitly failing the build when such a mismatch occurs, to make it obvious that something is broken and needs to be fixed. We shall make the change to enforce it soon. I will post updates here when it happens.

@giorgiofellipe
Copy link
Author

giorgiofellipe commented Oct 17, 2024

@szdziedzic I really appreciate the detailed explanation about the differences between them.

However, I'm still confident that there is something else, cuz it does not make sense to be only env var mismatch between environments.
Our production pipeline gets all the env vars from our GitHub repository and generates a .env file, it also pushes the whole file to EAS, to make sure they are up to date there too. I don't see room for a mismatch between them. Check the workflow file:

- name: Create env file
        run: |
          > .env
          echo '${{ toJson(vars) }}' | jq -r 'to_entries | .[] | select(.key | startswith("EXPO_PUBLIC_")) | "\(.key)=\(.value)"' >> .env
          cat .env

      - name: Setup EAS
        uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          packager: npm
          token: ${{ secrets.EXPO_TOKEN }}

      - name: Install Dependencies
        run: pnpm install

      - name: Push .env file to EAS
        run: eas secret:push --env-file=.env --scope project --force

      - name: Get config file
        env:
          GOOGLE_SERVICES_BASE64: ${{ secrets.EAS_GOOGLE_PLAY_API_FILE_BASE64 }}
        run: |
          echo $GOOGLE_SERVICES_BASE64 > google-service-account.json.b64
          base64 -d -i google-service-account.json.b64 > google-service-account.json

      - name: Build & Generate OTA Update
        id: build
        uses: expo/expo-github-action/continuous-deploy-fingerprint@main
        with:
          working-directory: ./monorepo/apps/mobile
          profile: ${{ github.ref == 'refs/heads/master' && 'production' || 'staging' }}
          branch: ${{ github.ref == 'refs/heads/master' && 'production' || 'staging' }}

Also, the real issue is that the EAS Build calculates a different fingerprint and sticks to it instead of using the one calculated locally (on the pipeline), it is exactly the opposite that the fingerprint mismatch warning says on EAS Build. The expo/expo-github-action/continuous-deploy-fingerprint publishes the update to the locally calculated fingerprint, that is the one is showing up on Expo Builds but is not the actual fingerprint of the build...

@szdziedzic
Copy link
Member

Also, the real issue is that the EAS Build calculates a different fingerprint and sticks to it instead of using the one calculated locally (on the pipeline), it is exactly the opposite that the fingerprint mismatch warning says on EAS Build

I believe this behavior was correct (I'm not saying that what the annotation was saying was accurate). The true fingerprint value for the cloud build was the one calculated for it in the cloud. It would be like cheating to take the local version (which is different) and say the fingerprint for this version is for sure the local version because in some cases, it wouldn't be compatible. However, the annotation seemed to be definitely wrong. We discussed it and it feels like in such a setup you have broken builds/updates setup even though your CI does not fail. We believe it's better to always explicitly fail on fingerprint mismatch to explicitly notice developers that something is wrong. This is the PR that was merged yesterday to achieve this: expo/eas-build#449.

The expo/expo-github-action/continuous-deploy-fingerprint publishes the update to the locally calculated fingerprint, that is the one is showing up on Expo Builds but is not the actual fingerprint of the build...

Yeah, so here we still have an issue with not matching fingerprint on GHA <> EAS cloud and we need to debug it. Can you send me a link to your build? What is the difference between these 2 shown in logs?

@giorgiofellipe
Copy link
Author

giorgiofellipe commented Oct 18, 2024

@szdziedzic https://expo.dev/accounts/bolddotorg/projects/bold/builds/22e19d9f-80dd-4ce7-940b-d77e0069cc26

The diff:
Runtime version mismatch
Runtime version on your local machine: 1d1e94a3d7c1af21aadeb29c30e2b9fb08dfa680
Runtime version calculated on EAS: a7d0540e21e8659f90c8d412960cb5a129b3f93c
Difference between local and EAS fingerprints:
[
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-application/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-application/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-asset/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-asset/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-blur/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-blur/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-clipboard/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-clipboard/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-constants/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-constants/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-dev-client/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-dev-client/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-dev-launcher",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-dev-launcher",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-dev-menu-interface/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel_y5663zs77fgz7ihehn2leseaee/node_modules/expo-dev-menu-interface/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-dev-menu",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-dev-menu",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-device/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-device/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-file-system/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-file-system/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-font/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-font/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-keep-awake/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-keep-awake/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-linear-gradient/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel+c_lchzurzhy6groqhs3phcvat6va/node_modules/expo-linear-gradient/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-local-authentication/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@ba_247g6tfvloyvhhxzfv6slv6px4/node_modules/expo-local-authentication/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-manifests/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-manifests/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected]/node_modules/expo-modules-core",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected]/node_modules/expo-modules-core",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected][email protected]_@[email protected]_@babel+preset-env@_u4ida7qrv7qfoahfsrxe373mk4/node_modules/expo-notifications/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-notifications/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected]_t7vhlfrsn5b2pgozes6frvi6rq/node_modules/expo-router/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected][email protected][email protected]_e_ra6dppe6h52olepcrkzx6mmp3i/node_modules/expo-router/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-screen-orientation/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel_ae7hqhqweyi2kt7axrxqwgwjkq/node_modules/expo-screen-orientation/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-secure-store/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-secure-store/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-sharing/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-sharing/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected][email protected][email protected]_@babel_flyq2cil5fwo6zl5h66csou35m/node_modules/expo-splash-screen/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/expo-splash-screen/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-system-ui/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-system-ui/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-updates-interface/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel_tnzedg5cukwivh2llbvq45ofke/node_modules/expo-updates-interface/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected][email protected]_@[email protected]_@[email protected]_isd5xhakhgnfaois55ooccdoc4/node_modules/expo-updates/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-updates/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]/node_modules/expo-web-browser/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-web-browser/ios",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "removed",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected]_@[email protected]/node_modules/expo",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "../../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_@[email protected][email protected]/node_modules/expo",
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": null
  }
 },
 {
  "op": "added",
  "source": {
   "type": "dir",
   "filePath": "ios",
   "reasons": [
    "bareNativeDir"
   ],
   "hash": null
  }
 },
 {
  "op": "changed",
  "source": {
   "type": "dir",
   "filePath": "node_modules/@atomicfi/transact-react-native",
   "reasons": [
    "bareRncliAutolinking"
   ],
   "hash": "9680cd9f2081900397b6c470c383f8cfec8a488b"
  }
 },
 {
  "op": "changed",
  "source": {
   "type": "dir",
   "filePath": "node_modules/expo",
   "reasons": [
    "bareRncliAutolinking"
   ],
   "hash": "d4c7c19c79b25405f35e57da675267c74e7aa9c2"
  }
 },
 {
  "op": "changed",
  "source": {
   "type": "dir",
   "filePath": "node_modules/react-native-plaid-link-sdk",
   "reasons": [
    "bareRncliAutolinking"
   ],
   "hash": "3501efd9860d442bd7a91fc8673aecc165e9d656"
  }
 },
 {
  "op": "changed",
  "source": {
   "type": "contents",
   "id": "expoAutolinkingConfig:ios",
   "contents": {
    "extraDependencies": [],
    "modules": [
     {
      "packageName": "expo",
      "packageVersion": "51.0.38",
      "pods": [
       {
        "podName": "Expo",
        "podspecDir": "../../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_@[email protected][email protected]/node_modules/expo"
       }
      ],
      "swiftModuleNames": [
       "Expo"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-application",
      "packageVersion": "5.9.1",
      "pods": [
       {
        "podName": "EXApplication",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-application/ios"
       }
      ],
      "swiftModuleNames": [
       "EXApplication"
      ],
      "modules": [
       "ApplicationModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-asset",
      "packageVersion": "10.0.7",
      "pods": [
       {
        "podName": "ExpoAsset",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-asset/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoAsset"
      ],
      "modules": [
       "AssetModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-blur",
      "packageVersion": "13.0.2",
      "pods": [
       {
        "podName": "ExpoBlur",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-blur/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoBlur"
      ],
      "modules": [
       "BlurViewModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-clipboard",
      "packageVersion": "6.0.3",
      "pods": [
       {
        "podName": "ExpoClipboard",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-clipboard/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoClipboard"
      ],
      "modules": [
       "ClipboardModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-constants",
      "packageVersion": "16.0.2",
      "pods": [
       {
        "podName": "EXConstants",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-constants/ios"
       }
      ],
      "swiftModuleNames": [
       "EXConstants"
      ],
      "modules": [
       "ConstantsModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-dev-client",
      "packageVersion": "4.0.28",
      "pods": [
       {
        "podName": "expo-dev-client",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-dev-client/ios"
       }
      ],
      "swiftModuleNames": [
       "expo_dev_client"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-dev-launcher",
      "packageVersion": "4.0.28",
      "pods": [
       {
        "podName": "expo-dev-launcher",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-dev-launcher"
       }
      ],
      "swiftModuleNames": [
       "EXDevLauncher"
      ],
      "modules": [
       "DevLauncherInternal",
       "DevLauncherAuth",
       "RNCSafeAreaProviderManager"
      ],
      "appDelegateSubscribers": [
       "ExpoDevLauncherAppDelegateSubscriber"
      ],
      "reactDelegateHandlers": [
       "ExpoDevLauncherReactDelegateHandler"
      ],
      "debugOnly": true
     },
     {
      "packageName": "expo-dev-menu",
      "packageVersion": "5.0.22",
      "pods": [
       {
        "podName": "expo-dev-menu",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-dev-menu"
       }
      ],
      "swiftModuleNames": [
       "EXDevMenu"
      ],
      "modules": [
       "DevMenuModule",
       "DevMenuInternalModule",
       "DevMenuPreferences",
       "RNCSafeAreaProviderManager"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [
       "ExpoDevMenuReactDelegateHandler"
      ],
      "debugOnly": true
     },
     {
      "packageName": "expo-dev-menu-interface",
      "packageVersion": "1.8.3",
      "pods": [
       {
        "podName": "expo-dev-menu-interface",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel_y5663zs77fgz7ihehn2leseaee/node_modules/expo-dev-menu-interface/ios"
       }
      ],
      "swiftModuleNames": [
       "expo_dev_menu_interface"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-device",
      "packageVersion": "6.0.2",
      "pods": [
       {
        "podName": "ExpoDevice",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-device/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoDevice"
      ],
      "modules": [
       "DeviceModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-eas-client",
      "packageVersion": "0.12.0",
      "pods": [
       {
        "podName": "EASClient",
        "podspecDir": "../../node_modules/.pnpm/[email protected]/node_modules/expo-eas-client/ios"
       }
      ],
      "swiftModuleNames": [
       "EASClient"
      ],
      "modules": [
       "EASClientModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-file-system",
      "packageVersion": "17.0.1",
      "pods": [
       {
        "podName": "ExpoFileSystem",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-file-system/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoFileSystem"
      ],
      "modules": [
       "FileSystemModule"
      ],
      "appDelegateSubscribers": [
       "FileSystemBackgroundSessionHandler"
      ],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-font",
      "packageVersion": "12.0.8",
      "pods": [
       {
        "podName": "ExpoFont",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-font/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoFont"
      ],
      "modules": [
       "FontLoaderModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-in-app-provisioning",
      "packageVersion": "0.1.0",
      "pods": [
       {
        "podName": "ExpoInAppProvisioning",
        "podspecDir": "../../packages/expo-in-app-provisioning/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoInAppProvisioning"
      ],
      "modules": [
       "ExpoInAppProvisioningModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-json-utils",
      "packageVersion": "0.13.1",
      "pods": [
       {
        "podName": "EXJSONUtils",
        "podspecDir": "../../node_modules/.pnpm/[email protected]/node_modules/expo-json-utils/ios"
       }
      ],
      "swiftModuleNames": [
       "EXJSONUtils"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-keep-awake",
      "packageVersion": "13.0.2",
      "pods": [
       {
        "podName": "ExpoKeepAwake",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-keep-awake/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoKeepAwake"
      ],
      "modules": [
       "KeepAwakeModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-linear-gradient",
      "packageVersion": "13.0.2",
      "pods": [
       {
        "podName": "ExpoLinearGradient",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel+c_lchzurzhy6groqhs3phcvat6va/node_modules/expo-linear-gradient/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoLinearGradient"
      ],
      "modules": [
       "LinearGradientModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-local-authentication",
      "packageVersion": "14.0.1",
      "pods": [
       {
        "podName": "ExpoLocalAuthentication",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@ba_247g6tfvloyvhhxzfv6slv6px4/node_modules/expo-local-authentication/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoLocalAuthentication"
      ],
      "modules": [
       "LocalAuthenticationModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-manifests",
      "packageVersion": "0.14.3",
      "pods": [
       {
        "podName": "EXManifests",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-manifests/ios"
       }
      ],
      "swiftModuleNames": [
       "EXManifests"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-modules-core",
      "packageVersion": "1.12.26",
      "pods": [
       {
        "podName": "ExpoModulesCore",
        "podspecDir": "../../node_modules/.pnpm/[email protected]/node_modules/expo-modules-core"
       }
      ],
      "swiftModuleNames": [
       "ExpoModulesCore"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-notifications",
      "packageVersion": "0.28.15",
      "pods": [
       {
        "podName": "EXNotifications",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected][email protected]_@[email protected]_@babel+preset-env@_u4ida7qrv7qfoahfsrxe373mk4/node_modules/expo-notifications/ios"
       }
      ],
      "swiftModuleNames": [
       "EXNotifications"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-router",
      "packageVersion": "3.5.15",
      "pods": [
       {
        "podName": "ExpoHead",
        "podspecDir": "../../node_modules/.pnpm/[email protected]_t7vhlfrsn5b2pgozes6frvi6rq/node_modules/expo-router/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoHead"
      ],
      "modules": [
       "ExpoHeadModule"
      ],
      "appDelegateSubscribers": [
       "ExpoHeadAppDelegateSubscriber"
      ],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-screen-orientation",
      "packageVersion": "7.0.5",
      "pods": [
       {
        "podName": "ExpoScreenOrientation",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel_ae7hqhqweyi2kt7axrxqwgwjkq/node_modules/expo-screen-orientation/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoScreenOrientation"
      ],
      "modules": [
       "ScreenOrientationModule"
      ],
      "appDelegateSubscribers": [
       "ScreenOrientationAppDelegate"
      ],
      "reactDelegateHandlers": [
       "ScreenOrientationReactDelegateHandler"
      ],
      "debugOnly": false
     },
     {
      "packageName": "expo-secure-store",
      "packageVersion": "13.0.1",
      "pods": [
       {
        "podName": "ExpoSecureStore",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-secure-store/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoSecureStore"
      ],
      "modules": [
       "SecureStoreModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-sharing",
      "packageVersion": "12.0.1",
      "pods": [
       {
        "podName": "ExpoSharing",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-sharing/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoSharing"
      ],
      "modules": [
       "SharingModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-splash-screen",
      "packageVersion": "0.27.4",
      "pods": [
       {
        "podName": "EXSplashScreen",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected][email protected][email protected]_@babel_flyq2cil5fwo6zl5h66csou35m/node_modules/expo-splash-screen/ios"
       }
      ],
      "swiftModuleNames": [
       "EXSplashScreen"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-structured-headers",
      "packageVersion": "3.8.0",
      "pods": [
       {
        "podName": "EXStructuredHeaders",
        "podspecDir": "../../node_modules/.pnpm/[email protected]/node_modules/expo-structured-headers/ios"
       }
      ],
      "swiftModuleNames": [
       "EXStructuredHeaders"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-system-ui",
      "packageVersion": "3.0.5",
      "pods": [
       {
        "podName": "ExpoSystemUI",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-system-ui/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoSystemUI"
      ],
      "modules": [
       "ExpoSystemUIModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-updates",
      "packageVersion": "0.25.27",
      "pods": [
       {
        "podName": "EXUpdates",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected][email protected]_@[email protected]_@[email protected]_isd5xhakhgnfaois55ooccdoc4/node_modules/expo-updates/ios"
       }
      ],
      "swiftModuleNames": [
       "EXUpdates"
      ],
      "modules": [
       "UpdatesModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [
       "ExpoUpdatesReactDelegateHandler"
      ],
      "debugOnly": false
     },
     {
      "packageName": "expo-updates-interface",
      "packageVersion": "0.16.2",
      "pods": [
       {
        "podName": "EXUpdatesInterface",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@babel_tnzedg5cukwivh2llbvq45ofke/node_modules/expo-updates-interface/ios"
       }
      ],
      "swiftModuleNames": [
       "EXUpdatesInterface"
      ],
      "modules": [],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     },
     {
      "packageName": "expo-web-browser",
      "packageVersion": "13.0.3",
      "pods": [
       {
        "podName": "ExpoWebBrowser",
        "podspecDir": "../../node_modules/.pnpm/[email protected][email protected]_@[email protected]_@[email protected]_@[email protected][email protected]_/node_modules/expo-web-browser/ios"
       }
      ],
      "swiftModuleNames": [
       "ExpoWebBrowser"
      ],
      "modules": [
       "WebBrowserModule"
      ],
      "appDelegateSubscribers": [],
      "reactDelegateHandlers": [],
      "debugOnly": false
     }
    ]
   },
   "reasons": [
    "expoAutolinkingIos"
   ],
   "hash": "0a349de947a24e0dcab444bbbbd8e076b4cdc895"
  }
 },
 {
  "op": "changed",
  "source": {
   "type": "contents",
   "id": "rncliAutolinkingConfig",
   "contents": {
    "@atomicfi/transact-react-native": {
     "root": "node_modules/@atomicfi/transact-react-native",
     "name": "@atomicfi/transact-react-native",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/@atomicfi/transact-react-native/atomicfi-transact-react-native.podspec",
       "version": "3.6.6",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/@atomicfi/transact-react-native/android",
       "packageImportPath": "import com.atomicfi.transactreactnative.TransactReactNativePackage;",
       "packageInstance": "new TransactReactNativePackage()",
       "buildTypes": [],
       "libraryName": "TransactReactNative",
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/@atomicfi/transact-react-native/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "@react-native-async-storage/async-storage": {
     "root": "node_modules/@react-native-async-storage/async-storage",
     "name": "@react-native-async-storage/async-storage",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/@react-native-async-storage/async-storage/RNCAsyncStorage.podspec",
       "version": "1.23.1",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/@react-native-async-storage/async-storage/android",
       "packageImportPath": "import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;",
       "packageInstance": "new AsyncStoragePackage()",
       "buildTypes": [],
       "libraryName": "rnasyncstorage",
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/@react-native-async-storage/async-storage/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "@sentry/react-native": {
     "root": "node_modules/@sentry/react-native",
     "name": "@sentry/react-native",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/@sentry/react-native/RNSentry.podspec",
       "version": "5.31.0",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/@sentry/react-native/android",
       "packageImportPath": "import io.sentry.react.RNSentryPackage;",
       "packageInstance": "new RNSentryPackage()",
       "buildTypes": [],
       "libraryName": "RNSentrySpec",
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/@sentry/react-native/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "expo": {
     "root": "node_modules/expo",
     "name": "expo",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/expo/Expo.podspec",
       "version": "51.0.38",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/expo/android",
       "packageImportPath": "import expo.modules.ExpoModulesPackage;",
       "packageInstance": "new ExpoModulesPackage()",
       "buildTypes": [],
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/expo/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "klaviyo-react-native-sdk": {
     "root": "node_modules/klaviyo-react-native-sdk",
     "name": "klaviyo-react-native-sdk",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/klaviyo-react-native-sdk/klaviyo-react-native-sdk.podspec",
       "version": "0.4.2",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/klaviyo-react-native-sdk/android",
       "packageImportPath": "import com.klaviyoreactnativesdk.KlaviyoReactNativeSdkPackage;",
       "packageInstance": "new KlaviyoReactNativeSdkPackage()",
       "buildTypes": [],
       "libraryName": "KlaviyoReactNativeSdk",
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/klaviyo-react-native-sdk/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-clarity": {
     "root": "node_modules/react-native-clarity",
     "name": "react-native-clarity",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-clarity/react-native-clarity.podspec",
       "version": "3.0.1",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-clarity/android",
       "packageImportPath": "import com.microsoft.clarity.reactnative.ClarityPackage;",
       "packageInstance": "new ClarityPackage()",
       "buildTypes": [],
       "libraryName": "Clarity",
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/react-native-clarity/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-context-menu-view": {
     "root": "node_modules/react-native-context-menu-view",
     "name": "react-native-context-menu-view",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-context-menu-view/react-native-context-menu-view.podspec",
       "version": "1.16.0",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-context-menu-view/android",
       "packageImportPath": "import com.mpiannucci.reactnativecontextmenu.ContextMenuPackage;",
       "packageInstance": "new ContextMenuPackage()",
       "buildTypes": [],
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/react-native-context-menu-view/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-gesture-handler": {
     "root": "node_modules/react-native-gesture-handler",
     "name": "react-native-gesture-handler",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-gesture-handler/RNGestureHandler.podspec",
       "version": "2.16.2",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-gesture-handler/android",
       "packageImportPath": "import com.swmansion.gesturehandler.RNGestureHandlerPackage;",
       "packageInstance": "new RNGestureHandlerPackage()",
       "buildTypes": [],
       "libraryName": "rngesturehandler_codegen",
       "componentDescriptors": [
        "RNGestureHandlerButtonComponentDescriptor",
        "RNGestureHandlerRootViewComponentDescriptor"
       ],
       "cmakeListsPath": "node_modules/react-native-gesture-handler/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-in-app-review": {
     "root": "node_modules/react-native-in-app-review",
     "name": "react-native-in-app-review",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-in-app-review/react-native-in-app-review.podspec",
       "version": "4.3.3",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-in-app-review/android",
       "packageImportPath": "import com.ibits.react_native_in_app_review.AppReviewPackage;",
       "packageInstance": "new AppReviewPackage()",
       "buildTypes": [],
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/react-native-in-app-review/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-plaid-link-sdk": {
     "root": "node_modules/react-native-plaid-link-sdk",
     "name": "react-native-plaid-link-sdk",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec",
       "version": "11.11.0",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-plaid-link-sdk/android",
       "packageImportPath": "import com.plaid.PlaidPackage;",
       "packageInstance": "new PlaidPackage()",
       "buildTypes": [],
       "libraryName": "rnplaidlink",
       "componentDescriptors": [
        "PLKEmbeddedViewComponentDescriptor"
       ],
       "cmakeListsPath": "node_modules/react-native-plaid-link-sdk/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-reanimated": {
     "root": "node_modules/react-native-reanimated",
     "name": "react-native-reanimated",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-reanimated/RNReanimated.podspec",
       "version": "3.10.1",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-reanimated/android",
       "packageImportPath": "import com.swmansion.reanimated.ReanimatedPackage;",
       "packageInstance": "new ReanimatedPackage()",
       "buildTypes": [],
       "libraryName": "rnreanimated",
       "componentDescriptors": [],
       "cmakeListsPath": "node_modules/react-native-reanimated/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-safe-area-context": {
     "root": "node_modules/react-native-safe-area-context",
     "name": "react-native-safe-area-context",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-safe-area-context/react-native-safe-area-context.podspec",
       "version": "4.10.1",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-safe-area-context/android",
       "packageImportPath": "import com.th3rdwave.safeareacontext.SafeAreaContextPackage;",
       "packageInstance": "new SafeAreaContextPackage()",
       "buildTypes": [],
       "libraryName": "safeareacontext",
       "componentDescriptors": [
        "RNCSafeAreaProviderComponentDescriptor",
        "RNCSafeAreaViewComponentDescriptor"
       ],
       "cmakeListsPath": "node_modules/react-native-safe-area-context/android/src/main/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-screens": {
     "root": "node_modules/react-native-screens",
     "name": "react-native-screens",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-screens/RNScreens.podspec",
       "version": "3.31.1",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-screens/android",
       "packageImportPath": "import com.swmansion.rnscreens.RNScreensPackage;",
       "packageInstance": "new RNScreensPackage()",
       "buildTypes": [],
       "libraryName": "rnscreens",
       "componentDescriptors": [
        "RNSFullWindowOverlayComponentDescriptor",
        "RNSScreenContainerComponentDescriptor",
        "RNSScreenNavigationContainerComponentDescriptor",
        "RNSScreenStackHeaderConfigComponentDescriptor",
        "RNSScreenStackHeaderSubviewComponentDescriptor",
        "RNSScreenStackComponentDescriptor",
        "RNSSearchBarComponentDescriptor",
        "RNSScreenComponentDescriptor",
        "RNSModalScreenComponentDescriptor"
       ],
       "cmakeListsPath": "node_modules/react-native-screens/android/src/main/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-svg": {
     "root": "node_modules/react-native-svg",
     "name": "react-native-svg",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-svg/RNSVG.podspec",
       "version": "15.2.0",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-svg/android",
       "packageImportPath": "import com.horcrux.svg.SvgPackage;",
       "packageInstance": "new SvgPackage()",
       "buildTypes": [],
       "libraryName": "rnsvg",
       "componentDescriptors": [
        "RNSVGCircleComponentDescriptor",
        "RNSVGClipPathComponentDescriptor",
        "RNSVGDefsComponentDescriptor",
        "RNSVGEllipseComponentDescriptor",
        "RNSVGForeignObjectComponentDescriptor",
        "RNSVGGroupComponentDescriptor",
        "RNSVGImageComponentDescriptor",
        "RNSVGLinearGradientComponentDescriptor",
        "RNSVGLineComponentDescriptor",
        "RNSVGMarkerComponentDescriptor",
        "RNSVGMaskComponentDescriptor",
        "RNSVGPathComponentDescriptor",
        "RNSVGPatternComponentDescriptor",
        "RNSVGRadialGradientComponentDescriptor",
        "RNSVGRectComponentDescriptor",
        "RNSVGSvgViewAndroidComponentDescriptor",
        "RNSVGSymbolComponentDescriptor",
        "RNSVGTextComponentDescriptor",
        "RNSVGTextPathComponentDescriptor",
        "RNSVGTSpanComponentDescriptor",
        "RNSVGUseComponentDescriptor"
       ],
       "cmakeListsPath": "node_modules/react-native-svg/android/src/main/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    },
    "react-native-webview": {
     "root": "node_modules/react-native-webview",
     "name": "react-native-webview",
     "platforms": {
      "ios": {
       "podspecPath": "node_modules/react-native-webview/react-native-webview.podspec",
       "version": "13.8.6",
       "configurations": [],
       "scriptPhases": []
      },
      "android": {
       "sourceDir": "node_modules/react-native-webview/android",
       "packageImportPath": "import com.reactnativecommunity.webview.RNCWebViewPackage;",
       "packageInstance": "new RNCWebViewPackage()",
       "buildTypes": [],
       "libraryName": "RNCWebViewSpec",
       "componentDescriptors": [
        "RNCWebViewComponentDescriptor"
       ],
       "cmakeListsPath": "node_modules/react-native-webview/android/build/generated/source/codegen/jni/CMakeLists.txt",
       "cxxModuleCMakeListsModuleName": null,
       "cxxModuleCMakeListsPath": null,
       "cxxModuleHeaderName": null
      }
     }
    }
   },
   "reasons": [
    "bareRncliAutolinking"
   ],
   "hash": "0b1ec7a72190004e3e3a7b7b7d7a330db4922a74"
  }
 }
]
Setting the update request headers in 'Expo.plist' to '{"expo-channel-name":"production"}'

Copy link

This issue is stale because it has been open for 30 days with no activity. If there is no activity in the next 7 days, the issue will be closed.

@github-actions github-actions bot added the stale label Nov 18, 2024
Copy link

This issue was closed because it has been inactive for 7 days since being marked as stale. Please open a new issue if you believe you are encountering a related problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants