diff --git a/.github/workflows/platformDeploy.yml b/.github/workflows/platformDeploy.yml index 28a453427c05..19a7ed6585da 100644 --- a/.github/workflows/platformDeploy.yml +++ b/.github/workflows/platformDeploy.yml @@ -93,6 +93,12 @@ jobs: env: VERSION: ${{ env.VERSION_CODE }} + - name: Archive Android sourcemaps + uses: actions/upload-artifact@v3 + with: + name: android-sourcemap + path: android/app/build/generated/sourcemaps/react/release/*.map + - name: Warn deployers if Android production deploy failed if: ${{ failure() && fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} uses: 8398a7/action-slack@v3 @@ -244,6 +250,12 @@ jobs: APPLE_DEMO_EMAIL: ${{ secrets.APPLE_DEMO_EMAIL }} APPLE_DEMO_PASSWORD: ${{ secrets.APPLE_DEMO_PASSWORD }} + - name: Archive iOS sourcemaps + uses: actions/upload-artifact@v3 + with: + name: ios-sourcemap + path: main.jsbundle.map + - name: Set iOS version in ENV if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} run: echo "IOS_VERSION=$(echo '${{ github.event.release.tag_name }}' | tr '-' '.')" >> "$GITHUB_ENV" diff --git a/ios/NewExpensify.xcodeproj/project.pbxproj b/ios/NewExpensify.xcodeproj/project.pbxproj index de0bf9bf28ff..a9fad31433f7 100644 --- a/ios/NewExpensify.xcodeproj/project.pbxproj +++ b/ios/NewExpensify.xcodeproj/project.pbxproj @@ -359,7 +359,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; + shellScript = "export NODE_BINARY=node\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $(pwd)/../main.jsbundle.map\"\n\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; 0819B9EA2AC16F5E4380192C /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; diff --git a/package.json b/package.json index 7e915803aacf..68ba97775b75 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,9 @@ "gh-actions-build": "./.github/scripts/buildActions.sh", "gh-actions-validate": "./.github/scripts/validateActionsAndWorkflows.sh", "analyze-packages": "ANALYZE_BUNDLE=true webpack --config config/webpack/webpack.common.js --env.envFile=.env.production", - "check-metro-bundler-port": "node config/checkMetroBundlerPort.js" + "check-metro-bundler-port": "node config/checkMetroBundlerPort.js", + "symbolicate:android": "npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map", + "symbolicate:ios": "npx metro-symbolicate main.jsbundle.map" }, "dependencies": { "@formatjs/intl-getcanonicallocales": "^1.5.8",