Skip to content

Source maps - Manual upload

If you’re not on EAS Build (local Xcode/Gradle build, GitHub Actions CI, etc.), upload source maps manually with the bundled CLI.

Terminal window
npx @pionne/react-native upload-sourcemaps \
--token <PIONNE_AUTH_TOKEN> \
--project <PIONNE_PROJECT_ID> \
--release 1.0.0 \
--platform ios \
--map ios/build/Build/Products/Release-iphoneos/main.jsbundle.map
FlagDescription
--tokenRequired. User auth token (not the pio_live_...)
--projectRequired. Project UUID
--releaseRequired. Must match the value passed to Pionne.init({ release })
--platformRequired. ios or android
--mapPath to the .map. If omitted, auto-detected
--apiOverride the API URL (default https://api.pionne.app)

Without --map, the CLI looks in:

ios/build/Build/Products/Release-iphoneos/main.jsbundle.map
ios/build/Build/Products/Release-iphonesimulator/main.jsbundle.map
ios/main.jsbundle.map
- name: Upload sourcemaps to Pionne
run: |
npx @pionne/react-native upload-sourcemaps \
--token ${{ secrets.PIONNE_AUTH_TOKEN }} \
--project ${{ secrets.PIONNE_PROJECT_ID }} \
--release ${{ github.sha }} \
--platform android \
--map android/app/build/generated/sourcemaps/react/release/index.android.bundle.map

The CLI prints:

✓ Uploaded sourcemap (2.4 MB) for project abc-123, release 1.0.0, platform ios

On the server side, the entry shows up in Settings → Source maps for the project.

ErrorCause
401 Unauthorized--token invalid or expired
404 Project not found--project wrong UUID
413 Payload too largeServer-side limit. With @pionne/react-native ≥ 0.8.2 the auto-gzip prevents this on most shared hosts; on stricter hosts contact support to bump the limit.
release mismatch on eventThe release passed doesn’t match Pionne.init({ release })