Cordova
Sentry's Cordova SDK enables automatic reporting of errors, messages, and exceptions, and identifies performance issues in your application. The SDK is available on GitHub sentry-cordova
.
The Cordova SDK uses a native extension for iOS and Android, but will fall back to a pure JavaScript version (@sentry/browser
) if needed. When you install sentry-cordova
, the Sentry Wizard will help configure your project. We also add a build step to your Xcode project to upload debug symbols we need to symbolicate iOS crashes.
Features:
- Automatic Native crash error tracking using both iOS and Android supports
- Release Health to track crash free users and sessions
- Offline storage of events
- Events enriched with device data
- Breadcrumbs created for location changes, outgoing HTTP requests with XHR and Fetch, console logs, and HTML touch events
- On-device symbolication for JavaScript (in
Debug
mode) - Ionic support
- Under the hood the SDK relies on our JavaScript SDK, which makes all functions available for JavaScript also available in this SDK including:
- Performance Monitoring to create transactions
On this page, we get you up and running with Sentry's SDK, so that it will automatically report errors and exceptions in your application.
Don't already have an account and Sentry project established? Head over to sentry.io, then return to this page.
Install
Sentry captures data by using an SDK within your application’s runtime.
Install our SDK using the cordova
command:
cordova plugin add sentry-cordova
The Sentry Wizard will patch your project. You need to do this only once, then the created files can go into your version control system.
iOS Specifics
When you use Xcode, you can hook directly into the build process to upload debug symbols and source maps. However, if you are using bitcode, you will need to disable the “Upload Debug Symbols to Sentry” build phase and then separately upload debug symbols from iTunes Connect to Sentry.
Configure
Configuration should happen as early as possible in your application's lifecycle.
You should init
the SDK in the deviceReady
function, to make sure the native integrations runs.
onDeviceReady: function() {
var Sentry = cordova.require("sentry-cordova.Sentry");
Sentry.init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0' });
}
You will also need to allow Sentry's domain in your config.xml
:
config.xml
<access origin="sentry.io" />
Debug Information
If you want to run the debug information (also known as debug symbols) upload when building your app, you can use the scripts provided in Debug Information.
Script to Submit to App Store Connect
If you are experiencing errors and want to remove unused architectures from your binary when submitting the build to iTunes Connect, you can use the scripts provided in Troubleshooting.
Verify
This snippet includes an intentional error, so you can test that everything is working as soon as you set it up:
throw new Error("My first Sentry error!");
Or, try a native crash:
Sentry.nativeCrash();
Learn more about manually capturing an error or message in our Usage documentation.
To view and resolve the recorded error, log into sentry.io and open your project. Clicking on the error's title will open a page where you can see detailed information and mark it as resolved.
- Package:
- npm:sentry-cordova
- Version:
- 1.3.0
- Repository:
- https://github.com/getsentry/sentry-cordova