To get unminified stack traces for JavaScript code in your React Native app built for iOS, source maps must be generated and uploaded to BugSnag.
For installation instructions for the BugSnag CLI, please see our Installation guide.
The react-native-ios
command uploads the bundled JavaScript and source maps generated during a build and uploads it to the React Native source map API.
In addition to the source maps, the command extracts version and build information, including your BugSnag API key, required for the upload from your Xcode project file. These values can be overridden, or provided entirely, by command line options.
The simplest way to run the command is from the root directory of your React Native project:
$ bugsnag-cli upload react-native-ios
Or by providing a specific bundle file and associated mapping file to upload:
$ bugsnag-cli upload react-native-ios \
--bundle ~/Library/Developer/Xcode/DerivedData/AwesomeProject-abcd/Build/Products/Release-iphoneos/AwesomeProject.app/main.jsbundle \
--source-map ios/build/main.jsbundle.map
If your build contains multiple variants or has a non-standard project layout, you might need to provide extra options:
$ bugsnag-cli upload react-native-ios \
--xcode-project ios/AwesomeProject.xcodeproj \
--scheme AwesomeProject
--api-key
)The BugSnag API key for the application.
You can find your API key in Project Settings from your BugSnag dashboard.
Default: the value of bugsnag.apiKey
in your app’s Info.plist
file, if found.
--bundle
)The path to the bundled JavaScript file to upload.
Default: path obtained from the build settings in your app’s workspace.
--bundle-version
)The bundle version of this build of the application (Apple platforms only).
Default: the value of CFBundleVersion
in your app’s Info.plist
, if found.
--code-bundle-id
)A unique identifier for the JavaScript bundle.
If you use CodePush, or similar mechanism, to update the JavaScript bundle of your app without changing the native version or build number, use the code bundle ID to uniquely identify the update. This same ID must also be set in the BugSnag configuration in your app, so that errors match the uploaded bundle.
--dev
)Indicates whether this is a debug or release build.
--dry-run
)Performs a dry-run of the command without sending any information to BugSnag.
--fail-on-upload-error
)Stops the upload when a file fails to upload successfully.
--log-level
)Sets the level of logging to debug, info, warn or fatal.
Default: info
.
--overwrite
)Whether to ignore and overwrite existing uploads with same identifier, rather than failing if a matching file exists.
--plist
)The path to a .plist file from which to obtain build information.
Default: path obtained from the build settings in your app’s workspace.
--port
)The port number for the BugSnag upload server.
Default: 443
.
--project-root
)The path to strip from the beginning of source file names referenced in stacktraces on the BugSnag dashboard.
Default: the root directory if the command has detected one, otherwise it’s empty.
--retries
)The number of retry attempts before failing an upload request.
Default: 0
.
--scheme
)The name of the Xcode scheme used to build the application.
--source-map
)The path to the source map file to upload.
Default: path obtained from the SOURCEMAP_FILE
environment variable, which can be set during a build to specify the location of the source map. If this is not set, the command then checks ios/build/sourcemaps
.
--timeout
)The number of seconds to wait before failing an upload request.
Default: 300
.
--upload-api-root-url
)The upload server hostname, optionally containing port number.
For use in BugSnag On-premise configurations. The command will append the appropriate path to access the correct upload endpoint.
Default: https://upload.bugsnag.com
.
--verbose
)Sets the level of the logging to its highest.
This is the equivalent of setting the log level to debug
.
--version-name
)The version of the application.
Default: the value of CFBundleShortVersionString
in your app’s Info.plist
file, if found.
--xcode-project
)The path to an Xcode project, workspace or containing directory from which to obtain build information.