This repository contains a sample project. It can be used to test the SDK as you develop it.
You need:
- nodejs 14 or higher
- yarn 1 or higher
First install dependencies of the SDK (the root of the repository) This is only needed if dependencies are added/removed.
yarn
Once deps are installed, you can build the project:
yarn build
# Or in watch mode, for development
yarn build:watch
yarn test
# Or the watcher when writing tests:
yarn test:watch
Now we can go into the sample project, install and build it:
cd samples/react-native/
yarn
For android switch newArchEnabled
to false
in android/gradle.properties. For iOS explicitly disable fabric in samples/react-native/ios/Podfile
by setting :fabric_enabled => false
before pod install
.
yarn pod-install-legacy
yarn run-ios
yarn run-android
# Release builds
yarn pod-install-legacy-production
yarn run-ios --configuration Release
yarn run-android --variant=release
yarn pod-install
yarn run-ios
yarn run-android
# Release builds
yarn pod-install-production
yarn run-ios --configuration Release
yarn run-android --variant=release
You can optionally start the Metro bundler if you want to control where it runs:
yarn start --reset-cache
Run the emulators:
yarn react-native run-ios
yarn react-native run-android
Here are step on how to test your changes in sentry-cocoa
with sentry-react-native
. We assume you have both repositories cloned in siblings folders.
- Build
sentry-cocoa
.
cd sentry-cocoa
make init
make build-xcframework
- Link local
sentry-cocoa
build insentry-react-native
cd sentry-react-native
Comment out sentry dependency in RNSentry.podspec
.
- s.dependency 'Sentry/HybridSDK', '7.31.0'
+ s.dependency 'Sentry/HybridSDK'
Add local pods to sample/ios/Podfile
.
target 'sample' do
# ... react native config
pod 'Sentry/HybridSDK', :path => '../../../../sentry-cocoa'
# ... rest of the configuration
end
Here are step on how to test your changes in sentry-java
with sentry-react-native
. We assume that you have sentry-java
setup, Android SDK installed, correct JAVA version etc.
- Build and publish
sentry-java
locally.
cd sentry-java
make dryRelease
ls ~/.m2/repository/io/sentry/sentry-android # check that `sentry-java` was published
- Add local maven to the sample project.
cd sentry-react-native/sample
Add local maven to sample/android/build.gradle
.
allprojects {
repositories {
mavenLocal()
}
}
Update sentry-android
version, to the one locally published, in android/build.gradle
.
dependencies {
implementation 'com.facebook.react:react-native:+'
- api 'io.sentry:sentry-android:5.4.0'
+ api 'io.sentry:sentry-android:6.7.7-my-local-version'
}
Here are steps on how to debug the gradle builds process with sentry-android-gradle-plugin
. We assume that you have sentry-android-gradle-plugin
setup, Android SDK installed, correct JAVA version etc.
- Add the following code to
samples/react-native/android/settings.gradle
, this ensure the plugin builds at the beginning of the application build:
includeBuild('../../../../sentry-android-gradle-plugin/plugin-build') {
dependencySubstitution {
substitute(module 'io.sentry:sentry-android-gradle-plugin') using project(':')
}
}
../../../../sentry-android-gradle-plugin/plugin-build
this example works if sentry-react-native
and sentry-android-gradle-plugin
are sibling directories.
- Open
samples/react-native/android
in Android Studio. - Add
Remote JVM Debug
configuration (keep all defaults). - Run build command with
-Dorg.gradle.debug=true
and--no-daemon
, example:
./gradlew assembleRelease -Dorg.gradle.debug=true --no-daemon
- The build command will wait for the debugger connection, go to the Android Studio and select the newly created
Remote JVM Debug
configuration and clickDebug
. - The build process will stop on active breakpoint.