Skip to content

Commit 44dea4e

Browse files
xcode patches for pnpm
1 parent b196a28 commit 44dea4e

2 files changed

Lines changed: 44 additions & 2 deletions

File tree

packages/core/scripts/sentry-xcode-debug-files.sh

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,29 @@ RN_PROJECT_ROOT="${PROJECT_DIR}/.."
2727
[ -z "$SENTRY_DOTENV_PATH" ] && export SENTRY_DOTENV_PATH="$RN_PROJECT_ROOT/.env.sentry-build-plugin"
2828

2929
[ -z "$SENTRY_CLI_EXECUTABLE" ] && SENTRY_CLI_PACKAGE_PATH=$("$LOCAL_NODE_BINARY" --print "require('path').dirname(require.resolve('@sentry/cli/package.json'))")
30-
[ -z "$SENTRY_CLI_EXECUTABLE" ] && SENTRY_CLI_EXECUTABLE="${SENTRY_CLI_PACKAGE_PATH}/bin/sentry-cli"
30+
[ -z "$SOURCEMAP_FILE" ] && export SOURCEMAP_FILE="$DERIVED_FILE_DIR/main.jsbundle.map"
31+
32+
if [ -z "$SENTRY_CLI_EXECUTABLE" ]; then
33+
# Try standard resolution safely
34+
RESOLVED_PATH=$(
35+
"$LOCAL_NODE_BINARY" --print "require('path').dirname(require.resolve('@sentry/cli/package.json'))" 2>/dev/null
36+
) || true
37+
if [ -n "$RESOLVED_PATH" ]; then
38+
SENTRY_CLI_PACKAGE_PATH="$RESOLVED_PATH"
39+
else
40+
# Fallback: parse NODE_PATH from the .bin/sentry-cli shim (file generated by PNPM)
41+
PNPM_BIN_PATH="$PWD/../node_modules/@sentry/react-native/node_modules/.bin/sentry-cli"
42+
43+
if [ -f "$PNPM_BIN_PATH" ]; then
44+
CLI_FILE_TEXT=$(cat "$PNPM_BIN_PATH")
45+
46+
# Filter where PNPM stored Sentry CLI
47+
NODE_PATH_LINE=$(echo "$CLI_FILE_TEXT" | grep -oE 'NODE_PATH="[^"]+"' | head -n1)
48+
NODE_PATH_VALUE=$(echo "$NODE_PATH_LINE" | sed -E 's/^NODE_PATH="([^"]+)".*/\1/')
49+
SENTRY_CLI_PACKAGE_PATH=${NODE_PATH_VALUE%%/bin*}
50+
fi
51+
fi
52+
fi
3153

3254
[[ $SENTRY_INCLUDE_NATIVE_SOURCES == "true" ]] && INCLUDE_SOURCES_FLAG="--include-sources" || INCLUDE_SOURCES_FLAG=""
3355

packages/core/scripts/sentry-xcode.sh

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,27 @@ RN_PROJECT_ROOT="${PROJECT_DIR}/.."
1616
[ -z "$SENTRY_DOTENV_PATH" ] && export SENTRY_DOTENV_PATH="$RN_PROJECT_ROOT/.env.sentry-build-plugin"
1717
[ -z "$SOURCEMAP_FILE" ] && export SOURCEMAP_FILE="$DERIVED_FILE_DIR/main.jsbundle.map"
1818

19-
[ -z "$SENTRY_CLI_EXECUTABLE" ] && SENTRY_CLI_PACKAGE_PATH=$("$LOCAL_NODE_BINARY" --print "require('path').dirname(require.resolve('@sentry/cli/package.json'))")
19+
if [ -z "$SENTRY_CLI_EXECUTABLE" ]; then
20+
# Try standard resolution safely
21+
RESOLVED_PATH=$(
22+
"$LOCAL_NODE_BINARY" --print "require('path').dirname(require.resolve('@sentry/cli/package.json'))" 2>/dev/null
23+
) || true
24+
if [ -n "$RESOLVED_PATH" ]; then
25+
SENTRY_CLI_PACKAGE_PATH="$RESOLVED_PATH"
26+
else
27+
# Fallback: parse NODE_PATH from the .bin/sentry-cli shim (file generated by PNPM)
28+
PNPM_BIN_PATH="$PWD/../node_modules/@sentry/react-native/node_modules/.bin/sentry-cli"
29+
30+
if [ -f "$PNPM_BIN_PATH" ]; then
31+
CLI_FILE_TEXT=$(cat "$PNPM_BIN_PATH")
32+
33+
# Filter where PNPM stored Sentry CLI
34+
NODE_PATH_LINE=$(echo "$CLI_FILE_TEXT" | grep -oE 'NODE_PATH="[^"]+"' | head -n1)
35+
NODE_PATH_VALUE=$(echo "$NODE_PATH_LINE" | sed -E 's/^NODE_PATH="([^"]+)".*/\1/')
36+
SENTRY_CLI_PACKAGE_PATH=${NODE_PATH_VALUE%%/bin*}
37+
fi
38+
fi
39+
fi
2040
[ -z "$SENTRY_CLI_EXECUTABLE" ] && SENTRY_CLI_EXECUTABLE="${SENTRY_CLI_PACKAGE_PATH}/bin/sentry-cli"
2141

2242
REACT_NATIVE_XCODE=$1

0 commit comments

Comments
 (0)