Skip to content

Commit 3a99462

Browse files
committed
feat: Add script to symbolicate the traces
1 parent 9944ab7 commit 3a99462

File tree

3 files changed

+81
-0
lines changed

3 files changed

+81
-0
lines changed

packages/core-mobile/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@
322322
"puppeteer-extra-plugin-stealth": "2.11.2",
323323
"react-dom": "19.0.0",
324324
"react-native-ble-plx": "3.4.0",
325+
"react-native-release-profiler": "^0.4.2",
325326
"react-native-svg-transformer": "1.5.1",
326327
"react-test-renderer": "19.0.0",
327328
"reactotron-react-native": "5.1.14",
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/bash
2+
3+
# Transform Hermes profile from Android device with automatic source map detection
4+
5+
set -e
6+
7+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9+
ANDROID_BUILD_DIR="$PROJECT_ROOT/android/app/build"
10+
11+
echo "🔍 Looking for source maps..."
12+
13+
# Find the most recent source map using stat
14+
LATEST_SOURCEMAP=""
15+
LATEST_TIME=0
16+
while IFS= read -r map; do
17+
if [ -f "$map" ]; then
18+
# Get modification time as epoch seconds
19+
MOD_EPOCH=$(stat -f "%m" "$map" 2>/dev/null || stat -c "%Y" "$map" 2>/dev/null || echo "0")
20+
if [ "$MOD_EPOCH" -gt "$LATEST_TIME" ]; then
21+
LATEST_TIME=$MOD_EPOCH
22+
LATEST_SOURCEMAP="$map"
23+
fi
24+
fi
25+
done <<< "$(find "$ANDROID_BUILD_DIR" -name "*.map" -type f 2>/dev/null)"
26+
27+
if [ -z "$LATEST_SOURCEMAP" ]; then
28+
echo "⚠️ No source maps found. Proceeding without source maps."
29+
echo ""
30+
echo "To get readable function names, build your app first:"
31+
echo " cd android"
32+
echo " ./gradlew assembleInternalRelease"
33+
echo ""
34+
npx react-native-release-profiler --fromDownload --appId com.avaxwallet
35+
else
36+
RELATIVE_PATH="${LATEST_SOURCEMAP#$PROJECT_ROOT/}"
37+
echo "✅ Found source map: $RELATIVE_PATH"
38+
echo ""
39+
npx react-native-release-profiler --fromDownload --appId com.avaxwallet --sourcemap-path "$LATEST_SOURCEMAP"
40+
fi
41+

yarn.lock

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,7 @@ __metadata:
636636
react-native-quick-crypto: 0.7.15
637637
react-native-reanimated: 3.18.0
638638
react-native-redash: 18.1.3
639+
react-native-release-profiler: ^0.4.2
639640
react-native-restart: 0.0.27
640641
react-native-root-siblings: 5.0.1
641642
react-native-safe-area-context: 5.5.2
@@ -10346,6 +10347,15 @@ __metadata:
1034610347
languageName: node
1034710348
linkType: hard
1034810349

10350+
"@margelo/hermes-profile-transformer@npm:^0.0.10":
10351+
version: 0.0.10
10352+
resolution: "@margelo/hermes-profile-transformer@npm:0.0.10"
10353+
dependencies:
10354+
source-map: ^0.7.3
10355+
checksum: 6ae29435917dc2a0da256a5d83d041d27c99625b72158e7ba73a22fa7cf2a76b5a09630d898917b134f2cb5ed2bb737db2c114f1ce30ba1e5712bd6f5d9ce315
10356+
languageName: node
10357+
linkType: hard
10358+
1034910359
"@metamask/abi-utils@npm:^2.0.2, @metamask/abi-utils@npm:^2.0.4":
1035010360
version: 2.0.4
1035110361
resolution: "@metamask/abi-utils@npm:2.0.4"
@@ -21260,6 +21270,13 @@ __metadata:
2126021270
languageName: node
2126121271
linkType: hard
2126221272

21273+
"commander@npm:^11.1.0":
21274+
version: 11.1.0
21275+
resolution: "commander@npm:11.1.0"
21276+
checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef
21277+
languageName: node
21278+
linkType: hard
21279+
2126321280
"commander@npm:^12.0.0, commander@npm:~12.1.0":
2126421281
version: 12.1.0
2126521282
resolution: "commander@npm:12.1.0"
@@ -36277,6 +36294,21 @@ __metadata:
3627736294
languageName: node
3627836295
linkType: hard
3627936296

36297+
"react-native-release-profiler@npm:^0.4.2":
36298+
version: 0.4.2
36299+
resolution: "react-native-release-profiler@npm:0.4.2"
36300+
dependencies:
36301+
"@margelo/hermes-profile-transformer": ^0.0.10
36302+
commander: ^11.1.0
36303+
peerDependencies:
36304+
react: "*"
36305+
react-native: "*"
36306+
bin:
36307+
react-native-release-profiler: lib/commonjs/cli.js
36308+
checksum: 0ba00854d1a5f2f72acce48634ca3012f7bd30e3cd2b80e4950cd1565a49c224150c67c0a6218a4596562e4a9ca1a13205f4fd2bbf1daa3a54ba61239fd35c7d
36309+
languageName: node
36310+
linkType: hard
36311+
3628036312
"react-native-restart@npm:0.0.27":
3628136313
version: 0.0.27
3628236314
resolution: "react-native-restart@npm:0.0.27"
@@ -38909,6 +38941,13 @@ react-native-webview@ava-labs/react-native-webview:
3890938941
languageName: node
3891038942
linkType: hard
3891138943

38944+
"source-map@npm:^0.7.3":
38945+
version: 0.7.6
38946+
resolution: "source-map@npm:0.7.6"
38947+
checksum: 932f4a2390aa7100e91357d88cc272de984ad29139ac09eedfde8cc78d46da35f389065d0c5343c5d71d054a6ebd4939a8c0f2c98d5df64fe97bb8a730596c2d
38948+
languageName: node
38949+
linkType: hard
38950+
3891238951
"source-map@npm:^0.7.4":
3891338952
version: 0.7.4
3891438953
resolution: "source-map@npm:0.7.4"

0 commit comments

Comments
 (0)