
Security News
The Next Open Source Security Race: Triage at Machine Speed
Claude Opus 4.6 has uncovered more than 500 open source vulnerabilities, raising new considerations for disclosure, triage, and patching at scale.
@nativescript-community/sentry
Advanced tools
A cross-platform application monitoring tool, with a focus on error reporting.
tns plugin add @nativescript-community/sentryBe sure to run a new build after adding plugins to avoid any issues.
You will need to add something like this to your webpack config so that the source maps gets uploaded. I dont set auth or project in the options as i use a .sentryclirc config file.
SOURCEMAP_REL_DIR: i almost always set it to ../../sourcemapsSENTRY_PREFIX: the default is app:///if (!!sentry && !!uploadSentry) {
config.devtool = false;
config.plugins.push(
new webpack.SourceMapDevToolPlugin({
append: `\n//# sourceMappingURL=${process.env.SENTRY_PREFIX}[name].js.map`,
filename: join(process.env.SOURCEMAP_REL_DIR, '[name].js.map')
})
);
let appVersion;
let buildNumber;
if (isAndroid) {
const gradlePath = `${appResourcesPath}/Android/app.gradle`;
const gradleData = readFileSync(gradlePath, 'utf8');
appVersion = gradleData.match(/versionName "((?:[0-9]+\.?)+)"/)[1];
buildNumber = gradleData.match(/versionCode ([0-9]+)/)[1];
} else if (isIOS) {
const plistPath = `${appResourcesPath}/iOS/Info.plist`;
const plistData = readFileSync(plistPath, 'utf8');
appVersion = plistData.match(/<key>CFBundleShortVersionString<\/key>[\s\n]*<string>(.*?)<\/string>/)[1];
buildNumber = plistData.match(/<key>CFBundleVersion<\/key>[\s\n]*<string>([0-9]*)<\/string>/)[1];
}
config.plugins.push(
new SentryCliPlugin({
release: appVersion,
urlPrefix: 'app:///',
rewrite: true,
release: `${nconfig.id}@${appVersion}+${buildNumber}`,
dist: `${buildNumber}.${platform}`,
ignoreFile: '.sentrycliignore',
include: [join(dist, process.env.SOURCEMAP_REL_DIR)]
})
);
}
###debug
For debug mode to work correctly you will need to add this to your webpack (see demo app)
nsWebpack.chainWebpack(config=>{
config.entry('bundle').prepend('@nativescript-community/sentry/process');
});
If you use fastlane you can use it to create release and upload dsyms To do that you need to install it:
fastlane add_plugin sentry
Also for now you should install nativescript-set-version as it is needed to read app version, build number.
npm install -D nativescript-set-version
Now you can setup your Fastfile
version = ""
versionCode = ""
Dir.chdir("..") do
version = sh("./node_modules/.bin/get-version", platform, "version").gsub(/\n/,'')
versionCode = sh("./node_modules/.bin/get-version", platform, "code").gsub(/\n/,'')
end
sentry_create_release(
version: version, # release version to create
)
sentry_upload_dsym
import * as Sentry from '@nativescript-community/sentry';
const buildNumber = await getBuildNumber();
const versionName = await getVersionName();
const buildNumber = await getBuildNumber();
const appId = await getAppId();
Sentry.init({
dsn: SENTRY_DSN,
debug: true,
enableAutoPerformanceTracking: true,
});
The onerror method ensures all unhandled NativeScript errors will be caught by Sentry in production, using a custom error handler.
If you would like to send a handled error to Bugsnag, you can pass any Error object to Sentry notify method:
import * as Sentry from '@nativescript-community/sentry';
try {
// potentially crashy code
} catch (error) {
Sentry.captureException(error);
}
To report a promise rejection, use notify() as a part of the catch block:
import * as Sentry from '@nativescript-community/sentry';
new Promise(function(resolve, reject) {
/* potentially failing code */
})
.then(function () { /* if the promise is resolved */ })
.catch(function (error) {
Sentry.captureException(error);
});
Bugsnag will automatically capture and attach the following diagnostic data:
In order to correlate errors with customer reports, or to see a list of users who experienced each error, it is helpful to capture and display user information. Information set on the Bugsnag client is sent with each error report:
Sentry.setUser({"email": "john.doe@example.com"});
In order to understand what happened in your application before each crash, it can be helpful to leave short log statements that we call breadcrumbs. The last several breadcrumbs are attached to a crash to help diagnose what events lead to the error.
By default, Bugsnag captures common events including:
To attach additional breadcrumbs, use the leaveBreadcrumb function:
Sentry.addBreadcrumb({
category: 'ui',
message: 'load main view',
level: 'info'
});
FAQs
A cross-platform application monitoring tool, with a focus on error reporting.
The npm package @nativescript-community/sentry receives a total of 420 weekly downloads. As such, @nativescript-community/sentry popularity was classified as not popular.
We found that @nativescript-community/sentry demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 19 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Claude Opus 4.6 has uncovered more than 500 open source vulnerabilities, raising new considerations for disclosure, triage, and patching at scale.

Research
/Security News
Malicious dYdX client packages were published to npm and PyPI after a maintainer compromise, enabling wallet credential theft and remote code execution.

Security News
gem.coop is testing registry-level dependency cooldowns to limit exposure during the brief window when malicious gems are most likely to spread.