sentry-react-native: 5.18.0 fails to build with jsbundle not found

OS:

  • Windows
  • MacOS
  • Linux

Platform:

  • iOS
  • Android

SDK:

  • @sentry/react-native (>= 1.0.0)
  • react-native-sentry (<= 0.43.2)

SDK version: 5.18.0

Are you using Expo?

  • Yes
  • No

Are you using sentry.io or on-premise?

  • sentry.io (SaaS)
  • on-premise

Configuration:

(@sentry/react-native)

Sentry.init({
  dsn: 'https://...@sentry.io/...',
  environment: "...",
  enabled: ...,
});

I have the following issue:

Updating from 5.5.0 to 5.18.0. We wanted to have auto debug ids and source map upload, which we didn’t have up to now. However, the integration of Sentry in the Bundle React Native code and images build phase fails. This is the build phase script:

set -e

WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
REACT_NATIVE_XCODE="../node_modules/react-native/scripts/react-native-xcode.sh"
SENTRY_XCODE="../node_modules/@sentry/react-native/scripts/sentry-xcode.sh"
BUNDLE_REACT_NATIVE="/bin/sh $SENTRY_XCODE $REACT_NATIVE_XCODE"

/bin/sh -c "$WITH_ENVIRONMENT \"$BUNDLE_REACT_NATIVE\""

The scripts fails with the following error:

File /Users/X/Library/Developer/Xcode/DerivedData/X-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/X.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: https://github.com/facebook/react-native/issues

There seems to be something off with the way Sentry executes the react native xcode script. Note that the build succeeds if BUNDLE_REACT_NATIVE is changed to ignore Sentry:

- BUNDLE_REACT_NATIVE="/bin/sh $SENTRY_XCODE $REACT_NATIVE_XCODE"
+ BUNDLE_REACT_NATIVE="/bin/sh $REACT_NATIVE_XCODE"

That way the bundle is being generated, but no sourcemaps in the above mentioned path. Yes, we could add SOURCEMAP_FILE so that react native generates sourcemaps, but we would have to upload and match source maps manually to sentry.

Using react native 0.71.7

Actual result:

Expected the app to build successfully and Sentry uploading source maps to sentry.io

NOTE: Android works without any problems. App builds and uploads source maps/debug id via gradle.

About this issue

  • Original URL
  • State: closed
  • Created 5 months ago
  • Reactions: 2
  • Comments: 18 (9 by maintainers)

Most upvoted comments

sorry for the delay. here are the logs:

Node found at: /usr/local/bin/node
+ LOCAL_NODE_BINARY=/usr/local/bin/node
+ '[' -z '' ']'
+ export SENTRY_PROPERTIES=sentry.properties
+ SENTRY_PROPERTIES=sentry.properties
+ '[' -z '' ']'
+ export SOURCEMAP_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map
+ SOURCEMAP_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map
+ '[' -z '' ']'
++ /usr/local/bin/node --print 'require('\''path'\'').dirname(require.resolve('\''@sentry/cli/package.json'\''))'
+ SENTRY_CLI_PACKAGE_PATH=/Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli
+ '[' -z '' ']'
+ SENTRY_CLI_EXECUTABLE=/Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli/bin/sentry-cli
+ REACT_NATIVE_XCODE=../node_modules/react-native/scripts/react-native-xcode.sh
+ [[ '' == false ]]
+ ARGS=' --force-foreground --log-level=debug '
+ REACT_NATIVE_XCODE_WITH_SENTRY='"/Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli/bin/sentry-cli" react-native xcode  --force-foreground --log-level=debug  "../node_modules/react-native/scripts/react-native-xcode.sh"'
+ '[' '' '!=' true ']'
+ /bin/sh -c '"/usr/local/bin/node" "/Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli/bin/sentry-cli" react-native xcode  --force-foreground --log-level=debug  "../node_modules/react-native/scripts/react-native-xcode.sh"'
  INFO    2024-02-12 12:03:10.723299 +01:00 Loaded file referenced by SENTRY_PROPERTIES (sentry.properties)
  DEBUG   2024-02-12 12:03:10.726651 +01:00 sentry-cli version: 2.25.2, platform: "darwin", architecture: "arm64"
  INFO    2024-02-12 12:03:10.727795 +01:00 sentry-cli was invoked with the following command line: "/Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli" "react-native" "xcode" "--force-foreground" "--log-level=debug" "../node_modules/react-native/scripts/react-native-xcode.sh"
  INFO    2024-02-12 12:03:10.728542 +01:00 Issuing a command for Organization: some-org Project: some-app
  INFO    2024-02-12 12:03:10.728555 +01:00 Using react-native build script at /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios
  INFO    2024-02-12 12:03:10.728558 +01:00 Parsing Info.plist
  INFO    2024-02-12 12:03:10.729548 +01:00 Parse result from Info.plist: InfoPlist { name: "SomeApp", bundle_id: "com.someorg.someapp.development", version: "1.2.2", build: "46" }
  INFO    2024-02-12 12:03:10.730443 +01:00 Using node interpreter '/usr/local/bin/node'
  INFO    2024-02-12 12:03:10.730461 +01:00 Using hermesc interpreter '/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine/destroot/bin/hermesc'
+ DEST=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app
+ [[ ! -n '' ]]
+ [[ Development = *Debug* ]]
+ [[ -n '' ]]
+ case "$CONFIGURATION" in
+ DEV=false
+++ dirname /Users/some-user/workspace/some-monorepo/node_modules/react-native/scripts/react-native-xcode.sh
++ cd /Users/some-user/workspace/some-monorepo/node_modules/react-native/scripts/..
++ pwd
+ REACT_NATIVE_DIR=/Users/some-user/workspace/some-monorepo/node_modules/react-native
+ PROJECT_ROOT=/Users/some-user/workspace/some-monorepo/node_modules/react-native/../..
+ cd /Users/some-user/workspace/some-monorepo/node_modules/react-native/../..
+ [[ -n '' ]]
+ [[ -s index.ios.js ]]
+ ENTRY_FILE=index.js
+ source /Users/some-user/workspace/some-monorepo/node_modules/react-native/scripts/node-binary.sh
++ '[' -z /Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli ']'
++ type /Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli
++ grep hermes-engine /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/./Podfile.lock
+ HERMES_ENABLED='  - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8'
+ [[ -z   - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8 ]]
+ HERMES_ENGINE_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine
+ '[' -z /Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli ']'
+ [[ ! -z   - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8 ]]
+ [[ -f /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine ]]
+ '[' -z '' ']'
+ export NODE_ARGS=
+ NODE_ARGS=
+ '[' -z '' ']'
+ export CLI_PATH=/Users/some-user/workspace/some-monorepo/node_modules/react-native/cli.js
+ CLI_PATH=/Users/some-user/workspace/some-monorepo/node_modules/react-native/cli.js
+ '[' -z '' ']'
+ BUNDLE_COMMAND=bundle
+ '[' -z '' ']'
+ COMPOSE_SOURCEMAP_PATH=/Users/some-user/workspace/some-monorepo/node_modules/react-native/scripts/compose-source-maps.js
+ [[ -z '' ]]
+ CONFIG_ARG=
+ BUNDLE_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
+ EXTRA_ARGS=
+ case "$PLATFORM_NAME" in
+ BUNDLE_PLATFORM=ios
+ '[' '' = YES ']'
+ EMIT_SOURCEMAP=
+ [[ ! -z /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map ]]
+ EMIT_SOURCEMAP=true
+ PACKAGER_SOURCEMAP_FILE=
+ [[ true == true ]]
+ [[ '' != false ]]
++ basename /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map
+ PACKAGER_SOURCEMAP_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map
+ EXTRA_ARGS=' --sourcemap-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map'
+ [[ '' != false ]]
+ [[ false == false ]]
+ EXTRA_ARGS=' --sourcemap-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map --minify false'
+ /Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli /Users/some-user/workspace/some-monorepo/node_modules/react-native/cli.js bundle --entry-file index.js --platform ios --dev false --reset-cache --bundle-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle --assets-dest /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app --sourcemap-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map --minify false
warning: the transform cache was reset.
error The resource `/Users/some-user/workspace/some-monorepo/index.js` was not found.
Error: The resource `/Users/some-user/workspace/some-monorepo/index.js` was not found.
    at /Users/some-user/workspace/some-monorepo/node_modules/@react-native-community/cli-plugin-metro/node_modules/metro/src/IncrementalBundler.js:274:24
    at gotStat (node:fs:2731:21)
    at FSReqCallback.oncomplete (node:fs:208:21)
info Run CLI with --verbose flag for more details.
+ [[ '' == false ]]
+ EXTRA_COMPILER_ARGS=
+ [[ false == true ]]
+ EXTRA_COMPILER_ARGS=-O
+ [[ true == true ]]
+ EXTRA_COMPILER_ARGS='-O -output-source-map'
+ /Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli -emit-binary -O -output-source-map -out /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
Error! Failed to open file: /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
+ [[ true == true ]]
+ HBC_SOURCEMAP_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map
+ /Users/some-user/workspace/some-monorepo/node_modules/@sentry/cli-darwin/bin/sentry-cli /Users/some-user/workspace/some-monorepo/node_modules/react-native/scripts/compose-source-maps.js /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map -o /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map
node:internal/fs/utils:347
    throw err;
    ^

Error: ENOENT: no such file or directory, open '/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map'
    at Object.openSync (node:fs:601:3)
    at Object.readFileSync (node:fs:469:35)
    at Object.<anonymous> (/Users/some-user/workspace/some-monorepo/node_modules/react-native/scripts/compose-source-maps.js:34:8)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Module._load (node:internal/modules/cjs/loader:958:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map'
}

Node.js v18.16.0
+ rm /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map
rm: /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map: No such file or directory
+ rm /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map
rm: /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map: No such file or directory
+ BUNDLE_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle
+ [[ false != true ]]
+ [[ ! -f /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle ]]
+ echo 'error: File /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: https://github.com/facebook/react-native/issues'
error: File /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle does not exist. This must be a bug with React Native, please report it here: https://github.com/facebook/react-native/issues

I should also mention that the app is managed in a monorepo setup. The app is at the following location: /Users/y/workspace/some-monorepo/some-subfolder/some-app/index.js. It says error The resource /Users/y/workspace/some-monorepo/index.js was not found which refers to the monorepo root and not the app root. I suppose it should be something like /Users/y/workspace/some-monorepo/some-subfolder/some-app/index.js

Also note that I changed actual names and altered the logs for that matter.

@mikeshuttjuvo Thank you for the message, can you share the names of the schemes, is it Debug and Release?

Can you share a large part of the failed log?

I believe my issue was related to this one: https://github.com/facebook/react-native/issues/41844. I had schemes with spaces in the name (i.e., “MyApp Testing”, “MyApp Staging”) which was causing bundler issues. I was experimenting with different fixes for that which were in turn causing the error I reported above. I ended up just renaming my schemes to remove the spaces and everything was resolved.

@krystofwoldrich here are the logs with generated source maps:

Node found at: /usr/local/bin/node
+ DEST=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app
+ [[ ! -n '' ]]
+ [[ Development = *Debug* ]]
+ [[ -n '' ]]
+ case "$CONFIGURATION" in
+ DEV=false
+++ dirname ../node_modules/react-native/scripts/react-native-xcode.sh
++ cd ../node_modules/react-native/scripts/..
++ pwd
+ REACT_NATIVE_DIR=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native
+ PROJECT_ROOT=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/../..
+ cd /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/../..
+ [[ -n '' ]]
+ [[ -s index.ios.js ]]
+ ENTRY_FILE=index.js
+ source /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/scripts/node-binary.sh
++ '[' -z /usr/local/bin/node ']'
++ type /usr/local/bin/node
++ grep hermes-engine /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/./Podfile.lock
+ HERMES_ENABLED='  - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8'
+ [[ -z   - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8 ]]
+ HERMES_ENGINE_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine
+ '[' -z '' ']'
+ HERMES_CLI_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine/destroot/bin/hermesc
+ [[ ! -z   - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8 ]]
+ [[ -f /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine ]]
+ '[' -z '' ']'
+ export NODE_ARGS=
+ NODE_ARGS=
+ '[' -z '' ']'
+ export CLI_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/cli.js
+ CLI_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/cli.js
+ '[' -z '' ']'
+ BUNDLE_COMMAND=bundle
+ '[' -z '' ']'
+ COMPOSE_SOURCEMAP_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/scripts/compose-source-maps.js
+ [[ -z '' ]]
+ CONFIG_ARG=
+ BUNDLE_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
+ EXTRA_ARGS=
+ case "$PLATFORM_NAME" in
+ BUNDLE_PLATFORM=ios
+ '[' '' = YES ']'
+ EMIT_SOURCEMAP=
+ [[ ! -z /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map ]]
+ EMIT_SOURCEMAP=true
+ PACKAGER_SOURCEMAP_FILE=
+ [[ true == true ]]
+ [[ '' != false ]]
++ basename /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map
+ PACKAGER_SOURCEMAP_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map
+ EXTRA_ARGS=' --sourcemap-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map'
+ [[ '' != false ]]
+ [[ false == false ]]
+ EXTRA_ARGS=' --sourcemap-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map --minify false'
+ /usr/local/bin/node /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/cli.js bundle --entry-file index.js --platform ios --dev false --reset-cache --bundle-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle --assets-dest /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app --sourcemap-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map --minify false
warning: the transform cache was reset.
                Welcome to Metro v0.73.10
              Fast - Scalable - Integrated

... metro logs
info Bundle Debug ID: some-debug-id
info Writing bundle output to:, /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
info Writing sourcemap output to:, /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map
info Done writing bundle output
info Done writing sourcemap output
info Copying 4 asset files
info Done copying assets
+ [[ '' == false ]]
+ EXTRA_COMPILER_ARGS=
+ [[ false == true ]]
+ EXTRA_COMPILER_ARGS=-O
+ [[ true == true ]]
+ EXTRA_COMPILER_ARGS='-O -output-source-map'
+ /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine/destroot/bin/hermesc -emit-binary -O -output-source-map -out /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle

... some app-specific logs

+ [[ true == true ]]
+ HBC_SOURCEMAP_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map
+ /usr/local/bin/node /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/scripts/compose-source-maps.js /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map -o /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Intermediates.noindex/SomeApp.build/Development-iphonesimulator/SomeApp.build/DerivedSources/main.jsbundle.map
+ rm /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle.map
+ rm /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle.map
+ BUNDLE_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle
+ [[ false != true ]]
+ [[ ! -f /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle ]]

Also note: After some experimenting, everything (including source maps and debug ids) works with this script:

export SENTRY_PROPERTIES=sentry.properties
export EXTRA_PACKAGER_ARGS="--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map"
export PROJECT_ROOT=".."
set -e

WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
REACT_NATIVE_XCODE="../node_modules/react-native/scripts/react-native-xcode.sh"

/bin/sh -c "$WITH_ENVIRONMENT \"../node_modules/@sentry/cli/bin/sentry-cli react-native xcode $REACT_NATIVE_XCODE\""

/bin/sh ../node_modules/@sentry/react-native/scripts/collect-modules.sh

But this uses the “old” sentry cli instead of the “new” sentry react native script

@krystofwoldrich yes, will try that tomorrow.

By the way, we did not use the wizard to set up sentry but did it manually. We had sentry already installed and needed to migrate to a higher version.

@tarasfo I haven’t manually fix the script, I just reinstalled sentry with npx @sentry/wizard@3.20.3 -s -i reactNative and it works

Hi, Looking at the logs, the issue is with generating the source maps.

Can you enable source maps without Sentry, to verify if that is the case?

set -e

+ export SOURCEMAP_FILE="$DERIVED_FILE_DIR/main.jsbundle.map"

WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
REACT_NATIVE_XCODE="../node_modules/react-native/scripts/react-native-xcode.sh"

/bin/sh -c "$WITH_ENVIRONMENT \"$REACT_NATIVE_XCODE\""

Seems like the latest @sentry/wizard (3.20.4) modifies PBXShellScriptBuildPhase shellScript in a wrong way. Version 3.20.3 makes it in the right way. after 3.20.4 install:

set -e

export NODE_ARGS="--max-old-space-size=8192"
WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
REACT_NATIVE_XCODE="../node_modules/react-native/scripts/react-native-xcode.sh"

/bin/sh -c "$WITH_ENVIRONMENT \"\"/bin/sh ../node_modules/@sentry/react-native/scripts/sentry-xcode.sh $REACT_NATIVE_XCODE\"\""

after 3.20.3 install:

set -e

export NODE_ARGS="--max-old-space-size=8192"
WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
REACT_NATIVE_XCODE="../node_modules/react-native/scripts/react-native-xcode.sh"

/bin/sh -c "$WITH_ENVIRONMENT \"\"\"/bin/sh ../node_modules/@sentry/react-native/scripts/sentry-xcode.sh $REACT_NATIVE_XCODE\"\"\""

@proohit Thank you for the long, we will look thought them and keep you posted.

and for reference, this is the build logs without sentry:

Node found at: /usr/local/bin/node
+ DEST=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app
+ [[ ! -n '' ]]
+ [[ Development = *Debug* ]]
+ [[ -n '' ]]
+ case "$CONFIGURATION" in
+ DEV=false
+++ dirname ../node_modules/react-native/scripts/react-native-xcode.sh
++ cd ../node_modules/react-native/scripts/..
++ pwd
+ REACT_NATIVE_DIR=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native
+ PROJECT_ROOT=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/../..
+ cd /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/../..
+ [[ -n '' ]]
+ [[ -s index.ios.js ]]
+ ENTRY_FILE=index.js
+ source /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/scripts/node-binary.sh
++ '[' -z /usr/local/bin/node ']'
++ type /usr/local/bin/node
++ grep hermes-engine /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/./Podfile.lock
+ HERMES_ENABLED='  - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8'
+ [[ -z   - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8 ]]
+ HERMES_ENGINE_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine
+ '[' -z '' ']'
+ HERMES_CLI_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine/destroot/bin/hermesc
+ [[ ! -z   - hermes-engine (0.71.7):
    - hermes-engine/Pre-built (= 0.71.7)
  - hermes-engine/Pre-built (0.71.7)
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
    - hermes-engine
  - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
  hermes-engine:
    :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
  hermes-engine: 4438d2b8bf8bebaba1b1ac0451160bab59e491f8 ]]
+ [[ -f /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine ]]
+ '[' -z '' ']'
+ export NODE_ARGS=
+ NODE_ARGS=
+ '[' -z '' ']'
+ export CLI_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/cli.js
+ CLI_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/cli.js
+ '[' -z '' ']'
+ BUNDLE_COMMAND=bundle
+ '[' -z '' ']'
+ COMPOSE_SOURCEMAP_PATH=/Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/scripts/compose-source-maps.js
+ [[ -z '' ]]
+ CONFIG_ARG=
+ BUNDLE_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
+ EXTRA_ARGS=
+ case "$PLATFORM_NAME" in
+ BUNDLE_PLATFORM=ios
+ '[' '' = YES ']'
+ EMIT_SOURCEMAP=
+ [[ ! -z '' ]]
+ PACKAGER_SOURCEMAP_FILE=
+ [[ '' == true ]]
+ [[ '' != false ]]
+ [[ false == false ]]
+ EXTRA_ARGS=' --minify false'
+ /usr/local/bin/node /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/node_modules/react-native/cli.js bundle --entry-file index.js --platform ios --dev false --reset-cache --bundle-output /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle --assets-dest /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app --minify false
warning: the transform cache was reset.
                Welcome to Metro v0.73.10
              Fast - Scalable - Integrated


transform[stderr]: The exported identifier "PHTextProps" is not declared in Babel's scope tracker
transform[stderr]: as a JavaScript value binding, and "@babel/plugin-transform-typescript"
transform[stderr]: never encountered it as a TypeScript type declaration.
transform[stderr]: It will be treated as a JavaScript value.
transform[stderr]: 
transform[stderr]: This problem is likely caused by another plugin injecting
transform[stderr]: "PHTextProps" without registering it in the scope tracker. If you are the author
transform[stderr]:  of that plugin, please use "scope.registerDeclaration(declarationPath)".
transform[stderr]: The exported identifier "FlexProps" is not declared in Babel's scope tracker
transform[stderr]: as a JavaScript value binding, and "@babel/plugin-transform-typescript"
transform[stderr]: never encountered it as a TypeScript type declaration.
transform[stderr]: It will be treated as a JavaScript value.
transform[stderr]: 
transform[stderr]: This problem is likely caused by another plugin injecting
transform[stderr]: "FlexProps" without registering it in the scope tracker. If you are the author
transform[stderr]:  of that plugin, please use "scope.registerDeclaration(declarationPath)".
info Bundle Debug ID: 919f0bf7-98ab-4b6e-b2fc-5da68890dc68
info Writing bundle output to:, /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle
info Done writing bundle output
info Copying 4 asset files
info Done copying assets
+ [[ '' == false ]]
+ EXTRA_COMPILER_ARGS=
+ [[ false == true ]]
+ EXTRA_COMPILER_ARGS=-O
+ [[ '' == true ]]
+ /Users/some-user/workspace/some-monorepo/some-subfolder/some-app/ios/Pods/hermes-engine/destroot/bin/hermesc -emit-binary -O -out /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/main.jsbundle

... some app specific warnings

+ [[ '' == true ]]
+ BUNDLE_FILE=/Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle
+ [[ false != true ]]
+ [[ ! -f /Users/some-user/Library/Developer/Xcode/DerivedData/SomeApp-hdkvdafrogcrgmbszvdfcnyhxsrv/Build/Products/Development-iphonesimulator/SomeApp.app/main.jsbundle ]]