diff --git a/.eslintignore b/.eslintignore index 3a9c0c57b..c4f97a54d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,7 +2,6 @@ dist # Ignore standalone apps -sample sample-new-architecture test/perf/TestApp* diff --git a/.github/workflows/buildandtest.yml b/.github/workflows/buildandtest.yml index 87f3e916a..1ec3557a4 100644 --- a/.github/workflows/buildandtest.yml +++ b/.github/workflows/buildandtest.yml @@ -180,20 +180,20 @@ jobs: uses: actions/cache@v3 id: cache-sample with: - path: sample/node_modules - key: ${{ runner.os }}-${{ hashFiles('sample/yarn.lock') }} + path: sample-new-architecture/node_modules + key: ${{ runner.os }}-${{ hashFiles('sample-new-architecture/yarn.lock') }} - name: Install Dependencies if: ${{ steps.cache.outputs['cache-hit'] != 'true' }} run: yarn install - name: Install Sample Dependencies if: ${{ steps.cache-sample.outputs['cache-hit'] != 'true' }} run: yarn install - working-directory: sample + working-directory: sample-new-architecture - name: Build run: yarn build - name: Make Sample Build Directory run: mkdir build - working-directory: sample + working-directory: sample-new-architecture - name: Bundle run: | yarn run react-native bundle \ @@ -203,4 +203,4 @@ jobs: --reset-cache \ --bundle-output build/bundle.${{ matrix.platform }}.js \ --sourcemap-output build/bundle.${{ matrix.platform }}.map - working-directory: sample + working-directory: sample-new-architecture diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e7c77b4c6..c9fc82c09 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -21,108 +21,6 @@ jobs: with: access_token: ${{ github.token }} - sample: - # Android emulator said to perform best with macos HAXM - runs-on: macos-latest - strategy: - # we want that the matrix keeps running, default is to cancel them if it fails. - fail-fast: false - matrix: - platform: ['ios', 'android'] - include: - - platform: ios - runtime: 'latest' - device: 'iPhone 14' - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-java@v3 - with: - java-version: '11' - distribution: 'adopt' - - - name: Install Global Dependencies - run: brew install xcbeautify - - - name: NPM cache - uses: actions/cache@v3 - id: deps-cache - with: - path: | - node_modules - sample/node_modules - key: ${{ github.workflow }}-${{ github.job }}-npm-${{ hashFiles('yarn.lock', 'sample/yarn.lock') }} - - - name: iOS cache - if: ${{ matrix.platform == 'ios' }} - uses: actions/cache@v3 - with: - path: | - sample/ios/Pods - sample/ios/DerivedData - # Note: we cannot use sample/ios/Podfile.lock because it's not source controlled. - key: ${{ github.workflow }}-${{ github.job }}-ios${{ matrix.runtime }}-${{ hashFiles('yarn.lock', 'sample/yarn.lock') }} - - - name: Install Dependencies - if: ${{ steps.deps-cache.outputs['cache-hit'] != 'true' }} - run: yarn install - - - name: Build SDK - run: yarn build - - - name: Install Sample Dependencies - if: ${{ steps.deps-cache.outputs['cache-hit'] != 'true' }} - working-directory: ./sample - run: yarn install - - - run: pod install - if: ${{ matrix.platform == 'ios' }} - env: - PRODUCTION: 1 - working-directory: ./sample/ios - - - name: Build ${{ matrix.platform }} sample app - if: ${{ env.SENTRY_AUTH_TOKEN != null }} - id: build - working-directory: ./sample/${{ matrix.platform }} - run: | - if [[ "${{ matrix.platform }}" == "android" ]]; then - ./gradlew :app:assembleRelease -PreactNativeArchitectures=x86 - else - mkdir -p DerivedData - defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES - buildArgs=( - '-destination' 'platform=iOS Simulator,OS=${{ matrix.runtime }},name=${{ matrix.device }}' - 'ONLY_ACTIVE_ARCH=yes' - '-derivedDataPath' $(cd "DerivedData" ; pwd -P) - ) - echo "buildArgs = ${buildArgs[@]}" - set -o pipefail && xcodebuild \ - -workspace sample.xcworkspace \ - -configuration Release \ - -scheme sample \ - "${buildArgs[@]}" \ - build \ - | tee sample-xcodebuild.log \ - | xcbeautify --quieter --is-ci --disable-colored-output - set -o pipefail && xcodebuild \ - -project ../node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj \ - -scheme WebDriverAgentRunner \ - GCC_TREAT_WARNINGS_AS_ERRORS=0 \ - COMPILER_INDEX_STORE_ENABLE=NO \ - "${buildArgs[@]}" \ - build \ - | tee webdriveragent-xcodebuild.log \ - | xcbeautify --quieter --is-ci --disable-colored-output - fi - - - name: Upload logs - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.platform }}-logs - path: ./sample/ios/*.log - metrics: runs-on: macos-latest strategy: diff --git a/.github/workflows/sample-application.yml b/.github/workflows/sample-application.yml new file mode 100644 index 000000000..ae04520dc --- /dev/null +++ b/.github/workflows/sample-application.yml @@ -0,0 +1,119 @@ +name: Sample Application + +on: + push: + branches: [main] + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + RN_SENTRY_POD_NAME: RNSentry + +jobs: + cancel-previous-workflow: + runs-on: ubuntu-latest + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 # pin@0.11.0 + with: + access_token: ${{ github.token }} + + build: + name: Build ${{ matrix.rn-architecture }} ${{ matrix.platform }} ${{ matrix.build-type }} + # Android emulator said to perform best with macos HAXM + runs-on: macos-latest + strategy: + # we want that the matrix keeps running, default is to cancel them if it fails. + fail-fast: false + matrix: + rn-architecture: ['legacy', 'new'] + platform: ['android', 'ios'] + build-type: ['dev', 'production'] + include: + - platform: ios + runtime: 'latest' + device: 'iPhone 14' + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + + - name: Install Global Dependencies + run: brew install xcbeautify + + - name: NPM cache + uses: actions/cache@v3 + id: deps-cache + with: + path: | + node_modules + sample-new-architecture/node_modules + key: ${{ github.workflow }}-${{ github.job }}-npm-${{ hashFiles('yarn.lock', 'sample-new-architecture/node_modules/yarn.lock') }} + + - name: Install SDK Dependencies + if: ${{ steps.deps-cache.outputs['cache-hit'] != 'true' }} + run: yarn install + + - name: Build SDK + run: yarn build + + - name: Install Sample Dependencies + if: ${{ steps.deps-cache.outputs['cache-hit'] != 'true' }} + working-directory: sample-new-architecture + run: yarn install + + - name: Install App Pods + if: ${{ matrix.platform == 'ios' }} + working-directory: sample-new-architecture/ios + run: | + [[ "${{ matrix.build-type }}" == "production" ]] && ENABLE_PROD=1 || ENABLE_PROD=0 + [[ "${{ matrix.rn-architecture }}" == "new" ]] && ENABLE_NEW_ARCH=1 || ENABLE_NEW_ARCH=0 + echo "ENABLE_PROD=$ENABLE_PROD" + echo "ENABLE_NEW_ARCH=$ENABLE_NEW_ARCH" + PRODUCTION=$ENABLE_PROD RCT_NEW_ARCH_ENABLED=$ENABLE_NEW_ARCH pod install + cat Podfile.lock | grep $RN_SENTRY_POD_NAME + + - name: Build Android App + if: ${{ matrix.platform == 'android' }} + working-directory: sample-new-architecture/android + run: | + if [[ ${{ matrix.rn-architecture }} == 'new' ]]; then + perl -i -pe's/newArchEnabled=false/newArchEnabled=true/g' gradle.properties + echo 'New Architecture enabled' + fi + [[ "${{ matrix.build-type }}" == "production" ]] && CONFIG='Release' || CONFIG='Debug' + echo "Building $CONFIG" + ./gradlew ":app:assemble$CONFIG" -PreactNativeArchitectures=x86 + + - name: Build iOS App + if: ${{ matrix.platform == 'ios' }} + working-directory: sample-new-architecture/ios + run: | + [[ "${{ matrix.build-type }}" == "production" ]] && CONFIG='Release' || CONFIG='Debug' + echo "Building $CONFIG" + mkdir -p "DerivedData" + derivedData="$(cd "DerivedData" ; pwd -P)" + set -o pipefail && xcodebuild \ + -workspace sampleNewArchitecture.xcworkspace \ + -configuration "$CONFIG" \ + -scheme sampleNewArchitecture \ + -destination 'platform=iOS Simulator,OS=${{ matrix.runtime }},name=${{ matrix.device }}' \ + ONLY_ACTIVE_ARCH=yes \ + -derivedDataPath "$derivedData" \ + build \ + | tee xcodebuild.log \ + | xcbeautify --quieter --is-ci --disable-colored-output + + - name: Upload logs + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: build-sample-${{ matrix.rn-architecture }}-${{ matrix.platform }}-${{ matrix.build-type }}-logs + path: sample-new-architecture/ios/*.log diff --git a/.github/workflows/update-deps.yml b/.github/workflows/update-deps.yml index 78ebd7aa5..70701930f 100644 --- a/.github/workflows/update-deps.yml +++ b/.github/workflows/update-deps.yml @@ -59,9 +59,10 @@ jobs: sample-rn: uses: getsentry/github-workflows/.github/workflows/updater.yml@v2 with: - path: sample/scripts/update-rn.sh - name: Sample React Native + path: scripts/update-rn.sh + name: React Native pattern: '^v[0-9.]+$' # only match non-preview versions, also ignores "latest" pr-strategy: update + changelog-entry: false secrets: api-token: ${{ secrets.CI_DEPLOY_KEY }} diff --git a/.gitignore b/.gitignore index 1520b50c9..818f97beb 100644 --- a/.gitignore +++ b/.gitignore @@ -72,11 +72,5 @@ wheelhouse .yalc/ yalc.lock -# Sample -sample/.vscode/.react/index.bundle -sample/.vscode/.react/index.map -sample/.vscode/.react/debuggerWorker.js - # E2E tests -sample/*.png test/react-native/versions diff --git a/.vscode/settings.json b/.vscode/settings.json index 54e999335..ade9a5aaa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -23,6 +23,6 @@ "editor.formatOnPaste": false, "editor.formatOnSave": false }, - "react-native-tools.projectRoot": "./sample", + "react-native-tools.projectRoot": "./sample-new-architecture", "dart.flutterAdbConnectOnChromeOs": false } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ac16de19..3ed7ac3eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,13 @@ ### Features -- Use `android.namespace` to be compatible with AGP 8.x and RN 0.73 ([#3133](https://github.com/getsentry/sentry-react-native/pull/3133)) +- Use `android.namespace` for AGP 8 and RN 0.73 ([#3133](https://github.com/getsentry/sentry-react-native/pull/3133)) + +### Dependencies + +- Bump JavaScript SDK from v7.54.0 to v7.56.0 ([#3119](https://github.com/getsentry/sentry-react-native/pull/3119)) + - [changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md#7560) + - [diff](https://github.com/getsentry/sentry-javascript/compare/7.54.0...7.56.0) ## 5.6.0 diff --git a/package.json b/package.json index b9db4c78c..b058ad897 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,8 @@ "lint:eslint": "eslint --config .eslintrc.js .", "lint:prettier": "prettier --check \"{src,test,scripts}/**/**.ts\"", "test:watch": "jest --watch", - "run-ios": "cd sample && yarn react-native run-ios", - "run-android": "cd sample && yarn react-native run-android" + "run-ios": "cd sample-new-architecture && yarn react-native run-ios", + "run-android": "cd sample-new-architecture && yarn react-native run-android" }, "keywords": [ "react-native", @@ -55,20 +55,20 @@ "react-native": ">=0.65.0" }, "dependencies": { - "@sentry/browser": "7.54.0", + "@sentry/browser": "7.56.0", "@sentry/cli": "2.18.1", - "@sentry/core": "7.54.0", - "@sentry/hub": "7.54.0", - "@sentry/integrations": "7.54.0", - "@sentry/react": "7.54.0", - "@sentry/types": "7.54.0", - "@sentry/utils": "7.54.0" + "@sentry/core": "7.56.0", + "@sentry/hub": "7.56.0", + "@sentry/integrations": "7.56.0", + "@sentry/react": "7.56.0", + "@sentry/types": "7.56.0", + "@sentry/utils": "7.56.0" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "7.54.0", - "@sentry-internal/eslint-plugin-sdk": "7.54.0", + "@sentry-internal/eslint-config-sdk": "7.56.0", + "@sentry-internal/eslint-plugin-sdk": "7.56.0", "@sentry/typescript": "^5.20.1", - "@sentry/wizard": "3.0.0", + "@sentry/wizard": "3.2.3", "@types/jest": "^29.2.5", "@types/react": "^18.0.25", "babel-jest": "^29.3.1", @@ -110,7 +110,6 @@ "js" ], "testPathIgnorePatterns": [ - "/sample/", "/test/e2e/" ], "testEnvironment": "node", diff --git a/sample/.buckconfig b/sample/.buckconfig deleted file mode 100644 index 934256cb2..000000000 --- a/sample/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/sample/.eslintrc.js b/sample/.eslintrc.js deleted file mode 100644 index 40c6dcd05..000000000 --- a/sample/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: '@react-native-community', -}; diff --git a/sample/.flowconfig b/sample/.flowconfig deleted file mode 100644 index 6b9510370..000000000 --- a/sample/.flowconfig +++ /dev/null @@ -1,76 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore polyfills -node_modules/react-native/Libraries/polyfills/.* - -; These should not be required directly -; require from fbjs/lib instead: require('fbjs/lib/warning') -node_modules/warning/.* - -; Flow doesn't support platforms -.*/Libraries/Utilities/LoadingView.js - -.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ - -[untyped] -.*/node_modules/@react-native-community/cli/.*/.* - -[include] - -[libs] -node_modules/react-native/interface.js -node_modules/react-native/flow/ - -[options] -emoji=true - -esproposal.optional_chaining=enable -esproposal.nullish_coalescing=enable - -module.file_ext=.js -module.file_ext=.json -module.file_ext=.ios.js - -munge_underscores=true - -module.name_mapper='^react-native/\(.*\)$' -> '/node_modules/react-native/\1' -module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '/node_modules/react-native/Libraries/Image/RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError - -[lints] -sketchy-null-number=warn -sketchy-null-mixed=warn -sketchy-number=warn -untyped-type-import=warn -nonstrict-import=warn -deprecated-type=warn -unsafe-getters-setters=warn -inexact-spread=warn -unnecessary-invariant=warn -signature-verification-failure=warn -deprecated-utility=error - -[strict] -deprecated-type -nonstrict-import -sketchy-null -unclear-type -unsafe-getters-setters -untyped-import -untyped-type-import - -[version] -^0.182.0 diff --git a/sample/.gitattributes b/sample/.gitattributes deleted file mode 100644 index d42ff1835..000000000 --- a/sample/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text diff --git a/sample/.gitignore b/sample/.gitignore deleted file mode 100644 index b74c4e34d..000000000 --- a/sample/.gitignore +++ /dev/null @@ -1,64 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -./xc-build -ios/.xcode.env.local - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -.cxx/ - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -*.keystore -!debug.keystore - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -**/fastlane/report.xml -**/fastlane/Preview.html -**/fastlane/screenshots -**/fastlane/test_output - -# Bundle artifact -*.jsbundle - -# Ruby / CocoaPods -/ios/Pods/ -/vendor/bundle/ diff --git a/sample/.prettierrc.js b/sample/.prettierrc.js deleted file mode 100644 index 5c4de1a4f..000000000 --- a/sample/.prettierrc.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - bracketSpacing: false, - jsxBracketSameLine: true, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/sample/.watchmanconfig b/sample/.watchmanconfig deleted file mode 100644 index 9e26dfeeb..000000000 --- a/sample/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/sample/android/.gitignore b/sample/android/.gitignore deleted file mode 100644 index 43737c672..000000000 --- a/sample/android/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.project -.settings/ diff --git a/sample/android/app/.gitignore b/sample/android/app/.gitignore deleted file mode 100644 index 46262e6d9..000000000 --- a/sample/android/app/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.project -.settings/ -.classpath diff --git a/sample/android/app/_BUCK b/sample/android/app/_BUCK deleted file mode 100644 index 60f5ec7dd..000000000 --- a/sample/android/app/_BUCK +++ /dev/null @@ -1,55 +0,0 @@ -# To learn about Buck see [Docs](https://buckbuild.com/). -# To run your application with Buck: -# - install Buck -# - `npm start` - to start the packager -# - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` -# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck -# - `buck install -r android/app` - compile, install and run application -# - -load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") - -lib_deps = [] - -create_aar_targets(glob(["libs/*.aar"])) - -create_jar_targets(glob(["libs/*.jar"])) - -android_library( - name = "all-libs", - exported_deps = lib_deps, -) - -android_library( - name = "app-code", - srcs = glob([ - "src/main/java/**/*.java", - ]), - deps = [ - ":all-libs", - ":build_config", - ":res", - ], -) - -android_build_config( - name = "build_config", - package = "io.sentry.sample", -) - -android_resource( - name = "res", - package = "io.sentry.sample", - res = "src/main/res", -) - -android_binary( - name = "app", - keystore = "//android/keystores:debug", - manifest = "src/main/AndroidManifest.xml", - package_type = "debug", - deps = [ - ":app-code", - ], -) diff --git a/sample/android/app/build.gradle b/sample/android/app/build.gradle deleted file mode 100644 index 17d43d214..000000000 --- a/sample/android/app/build.gradle +++ /dev/null @@ -1,194 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "com.facebook.react" -apply plugin: "io.sentry.android.gradle" - -import com.android.build.OutputFile - -sentry { - // Disables or enables the automatic configuration of Native Symbols - // for Sentry. This executes sentry-cli automatically so - // you don't need to do it manually. - // Default is disabled. - uploadNativeSymbols = true - - // Does or doesn't include the source code of native code for Sentry. - // This executes sentry-cli with the --include-sources param. automatically so - // you don't need to do it manually. - // Default is disabled. - includeNativeSources = true -} - -/** - * This is the configuration block to customize your React Native Android app. - * By default you don't need to apply any configuration, just uncomment the lines you need. - */ -react { - /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node-modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen - // codegenDir = file("../node-modules/react-native-codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") - - /* Variants */ - // The list of variants to that are debuggable. For those we're going to - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. - // debuggableVariants = ["liteDebug", "prodDebug"] - - /* Bundling */ - // A list containing the node command and its flags. Default is just 'node'. - // nodeExecutableAndArgs = ["node"] - // - // The command to run when bundling. By default is 'bundle' - // bundleCommand = "ram-bundle" - // - // The path to the CLI configuration file. Default is empty. - // bundleConfig = file(../rn-cli.config.js) - // - // The name of the generated asset file containing your JS bundle - // bundleAssetName = "MyApplication.android.bundle" - // - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") - // - // A list of extra flags to pass to the 'bundle' commands. - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle - // extraPackagerArgs = [] - - /* Hermes Commands */ - // The hermes compiler command to run. By default it is 'hermesc' - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" - // - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" - // hermesFlags = ["-O", "-output-source-map"] -} - -project.ext.sentryCli = [ - collectModulesScript: "../../../dist/js/tools/collectModules.js", - modulesPaths: [ - "node_modules", - "../..", - ], - skipCollectModules: false, -] - -apply from: "../../../sentry.gradle" - -/** - * Set this to true to create two separate APKs instead of one: - * - An APK that only works on ARM devices - * - An APK that only works on x86 devices - * The advantage is the size of the APK is reduced by about 4MB. - * Upload all the APKs to the Play Store and people will download - * the correct one based on the CPU architecture of their device. - */ -def enableSeparateBuildPerCPUArchitecture = false - -/** - * Run Proguard to shrink the Java bytecode in release builds. - */ -def enableProguardInReleaseBuilds = true - -/** - * The preferred build flavor of JavaScriptCore. - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -android { - ndkVersion rootProject.ext.ndkVersion - - compileSdkVersion rootProject.ext.compileSdkVersion - - namespace "io.sentry.sample" - defaultConfig { - applicationId "io.sentry.sample" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "2.0" - } - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" - } - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://facebook.github.io/react-native/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - - } - } - - //2 files found for path lib/arm64-v8a/libc++_shared.so. This version of the Android Gradle Plugin chooses the f - packagingOptions { - pickFirst 'lib/x86/libc++_shared.so' - pickFirst 'lib/x86_64/libc++_shared.so' - pickFirst 'lib/armeabi-v7a/libc++_shared.so' - pickFirst 'lib/arm64-v8a/libc++_shared.so' - pickFirst 'lib/x86/libfbjni.so' - pickFirst 'lib/x86_64/libfbjni.so' - pickFirst 'lib/armeabi-v7a/libfbjni.so' - pickFirst 'lib/arm64-v8a/libfbjni.so' - } -} - -dependencies { - implementation project(':sentry_react-native') - - // The version of react-native is set by the React Native Gradle Plugin - implementation("com.facebook.react:react-android") - - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" - - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/sample/android/app/build_defs.bzl b/sample/android/app/build_defs.bzl deleted file mode 100644 index fff270f8d..000000000 --- a/sample/android/app/build_defs.bzl +++ /dev/null @@ -1,19 +0,0 @@ -"""Helper definitions to glob .aar and .jar targets""" - -def create_aar_targets(aarfiles): - for aarfile in aarfiles: - name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] - lib_deps.append(":" + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) - -def create_jar_targets(jarfiles): - for jarfile in jarfiles: - name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] - lib_deps.append(":" + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) diff --git a/sample/android/app/debug.keystore b/sample/android/app/debug.keystore deleted file mode 100644 index 364e105ed..000000000 Binary files a/sample/android/app/debug.keystore and /dev/null differ diff --git a/sample/android/app/proguard-rules.pro b/sample/android/app/proguard-rules.pro deleted file mode 100644 index 11b025724..000000000 --- a/sample/android/app/proguard-rules.pro +++ /dev/null @@ -1,10 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: diff --git a/sample/android/app/src/debug/AndroidManifest.xml b/sample/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 4b185bc15..000000000 --- a/sample/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/sample/android/app/src/main/AndroidManifest.xml b/sample/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 54018a727..000000000 --- a/sample/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/sample/android/app/src/main/assets/logo_mini.png b/sample/android/app/src/main/assets/logo_mini.png deleted file mode 100644 index a7c02bbb6..000000000 Binary files a/sample/android/app/src/main/assets/logo_mini.png and /dev/null differ diff --git a/sample/android/app/src/main/java/io/sentry/sample/AssetsModule.java b/sample/android/app/src/main/java/io/sentry/sample/AssetsModule.java deleted file mode 100644 index 2fca3ca5d..000000000 --- a/sample/android/app/src/main/java/io/sentry/sample/AssetsModule.java +++ /dev/null @@ -1,42 +0,0 @@ -package io.sentry.sample; -import android.content.Context; - -import com.facebook.react.bridge.Promise; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContextBaseJavaModule; -import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.WritableArray; -import com.facebook.react.bridge.WritableNativeArray; - -import java.io.InputStream; - -public class AssetsModule extends ReactContextBaseJavaModule { - - AssetsModule(ReactApplicationContext context) { - super(context); - } - - @Override - public String getName() { - return "AssetsModule"; - } - - @ReactMethod - public void getExampleAssetData(Promise promise) { - try { - InputStream stream = this.getReactApplicationContext().getResources().getAssets() - .open("logo_mini.png"); - int size = stream.available(); - byte[] buffer = new byte[size]; - stream.read(buffer); - stream.close(); - WritableArray array = new WritableNativeArray(); - for (int i = 0; i < size; i++) { - array.pushInt(buffer[i]); - } - promise.resolve(array); - } catch (Exception e) { - promise.reject(e); - } - } -} diff --git a/sample/android/app/src/main/java/io/sentry/sample/MainActivity.java b/sample/android/app/src/main/java/io/sentry/sample/MainActivity.java deleted file mode 100644 index f8167a514..000000000 --- a/sample/android/app/src/main/java/io/sentry/sample/MainActivity.java +++ /dev/null @@ -1,46 +0,0 @@ -package io.sentry.sample; - -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactActivityDelegate; -import com.facebook.react.ReactRootView; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. This is - * used to schedule rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "sample"; - } - - /** - * Returns the instance of the {@link ReactActivityDelegate}. There the RootView - * is created and - * you can specify the renderer you wish to use - the new renderer (Fabric) or - * the old renderer - * (Paper). - */ - @Override - protected ReactActivityDelegate createReactActivityDelegate() { - return new MainActivityDelegate(this, getMainComponentName()); - } - - public static class MainActivityDelegate extends ReactActivityDelegate { - public MainActivityDelegate(ReactActivity activity, String mainComponentName) { - super(activity, mainComponentName); - } - - @Override - protected ReactRootView createRootView() { - ReactRootView reactRootView = new ReactRootView(getContext()); - return reactRootView; - } - - @Override - protected boolean isConcurrentRootEnabled() { - return false; - } - } -} diff --git a/sample/android/app/src/main/java/io/sentry/sample/MainApplication.java b/sample/android/app/src/main/java/io/sentry/sample/MainApplication.java deleted file mode 100644 index deefa452f..000000000 --- a/sample/android/app/src/main/java/io/sentry/sample/MainApplication.java +++ /dev/null @@ -1,58 +0,0 @@ -package io.sentry.sample; - -import android.app.Application; -import android.content.Context; -import com.facebook.react.PackageList; -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.config.ReactFeatureFlags; -import com.facebook.soloader.SoLoader; -import java.lang.reflect.InvocationTargetException; -import java.util.List; - -import io.sentry.react.RNSentryPackage; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List packages = new PackageList(this).getPackages(); - packages.add(new SamplePackage()); - - for (ReactPackage pkg : packages) { - if (pkg instanceof RNSentryPackage) { - return packages; - } - } - - packages.add(new RNSentryPackage()); - - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - }; - - @Override - public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; - } - - @Override - public void onCreate() { - super.onCreate(); - SoLoader.init(this, /* native exopackage */ false); - } -} diff --git a/sample/android/app/src/main/java/io/sentry/sample/SamplePackage.java b/sample/android/app/src/main/java/io/sentry/sample/SamplePackage.java deleted file mode 100644 index 3f24830a9..000000000 --- a/sample/android/app/src/main/java/io/sentry/sample/SamplePackage.java +++ /dev/null @@ -1,28 +0,0 @@ -package io.sentry.sample; -import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.uimanager.ViewManager; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class SamplePackage implements ReactPackage { - - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - return Collections.emptyList(); - } - - @Override - public List createNativeModules( - ReactApplicationContext reactContext) { - List modules = new ArrayList<>(); - - modules.add(new AssetsModule(reactContext)); - - return modules; - } - -} \ No newline at end of file diff --git a/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a2f590828..000000000 Binary files a/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 1b5239980..000000000 Binary files a/sample/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index ff10afd6e..000000000 Binary files a/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 115a4c768..000000000 Binary files a/sample/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index dcd3cd808..000000000 Binary files a/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 459ca609d..000000000 Binary files a/sample/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 8ca12fe02..000000000 Binary files a/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8e19b410a..000000000 Binary files a/sample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b824ebdd4..000000000 Binary files a/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 4c19a13c2..000000000 Binary files a/sample/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/sample/android/app/src/main/res/values/strings.xml b/sample/android/app/src/main/res/values/strings.xml deleted file mode 100644 index d17b2cddd..000000000 --- a/sample/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - sample - diff --git a/sample/android/app/src/main/res/values/styles.xml b/sample/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 62fe59fa4..000000000 --- a/sample/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/sample/android/build.gradle b/sample/android/build.gradle deleted file mode 100644 index 961c7a415..000000000 --- a/sample/android/build.gradle +++ /dev/null @@ -1,22 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = "33.0.0" - minSdkVersion = 21 - compileSdkVersion = 33 - targetSdkVersion = 33 - - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. - ndkVersion = "23.1.7779620" - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle:7.3.1") - classpath("com.facebook.react:react-native-gradle-plugin") - classpath("io.sentry:sentry-android-gradle-plugin:3.4.2") - } -} diff --git a/sample/android/gradle.properties b/sample/android/gradle.properties deleted file mode 100644 index a792b2a0a..000000000 --- a/sample/android/gradle.properties +++ /dev/null @@ -1,27 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -hermesEnabled=true diff --git a/sample/android/gradle/wrapper/gradle-wrapper.jar b/sample/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7454180f2..000000000 Binary files a/sample/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/sample/android/gradle/wrapper/gradle-wrapper.properties b/sample/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 8fad3f5a9..000000000 --- a/sample/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/sample/android/gradlew b/sample/android/gradlew deleted file mode 100755 index 1b6c78733..000000000 --- a/sample/android/gradlew +++ /dev/null @@ -1,234 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/sample/android/gradlew.bat b/sample/android/gradlew.bat deleted file mode 100644 index ac1b06f93..000000000 --- a/sample/android/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/sample/android/sentry.properties b/sample/android/sentry.properties deleted file mode 100644 index 0cdf17015..000000000 --- a/sample/android/sentry.properties +++ /dev/null @@ -1,4 +0,0 @@ -#defaults.url=https://sentry.io/ -defaults.org=sentry-sdks -defaults.project=sentry-react-native -#auth.token= diff --git a/sample/android/settings.gradle b/sample/android/settings.gradle deleted file mode 100644 index 1f7039417..000000000 --- a/sample/android/settings.gradle +++ /dev/null @@ -1,7 +0,0 @@ -rootProject.name = 'sample' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -include ':app' -includeBuild('../node_modules/react-native-gradle-plugin') - -include ':sentry_react-native' -project(':sentry_react-native').projectDir = new File(rootProject.projectDir, '../../android') diff --git a/sample/app.json b/sample/app.json deleted file mode 100644 index f633be1d1..000000000 --- a/sample/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "sample", - "displayName": "sample" -} \ No newline at end of file diff --git a/sample/babel.config.js b/sample/babel.config.js deleted file mode 100644 index 232253cc3..000000000 --- a/sample/babel.config.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = { - presets: ['module:metro-react-native-babel-preset'], - plugins: [ - [ - 'module-resolver', - { - alias: { - '@sentry/react-native': '../dist/js', - }, - }, - ], - ], -}; diff --git a/sample/index.js b/sample/index.js deleted file mode 100644 index bae89f2ff..000000000 --- a/sample/index.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @format - */ - -import {AppRegistry} from 'react-native'; -import 'react-native-gesture-handler'; - -import App from './src/App'; -import {name as appName} from './app.json'; - -AppRegistry.registerComponent(appName, () => App); diff --git a/sample/ios/Podfile b/sample/ios/Podfile deleted file mode 100644 index c493c7a1a..000000000 --- a/sample/ios/Podfile +++ /dev/null @@ -1,45 +0,0 @@ -require_relative '../node_modules/react-native/scripts/react_native_pods' -require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' - -platform :ios, '12.4' -install! 'cocoapods', :deterministic_uuids => false - -target 'sample' do - config = use_native_modules! - - use_react_native!( - :path => config[:reactNativePath], - # Hermes is now enabled by default. Disable by setting this flag to false. - # Upcoming versions of React Native may rely on get_default_flags(), but - # we make it explicit here to aid in the React Native upgrade process. - :hermes_enabled => true, - :fabric_enabled => false, - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/.." - ) - - pod 'RNSentry', :path => '../../RNSentry.podspec' - - target 'sampleTests' do - inherit! :complete - end - - post_install do |installer| - react_native_post_install( - installer, - # Set `mac_catalyst_enabled` to `true` in order to apply patches - # necessary for Mac Catalyst builds - :mac_catalyst_enabled => false - ) - __apply_Xcode_12_5_M1_post_install_workaround(installer) - end -end - -target 'sample-tvOS' do - # Pods for sample-tvOS - - target 'sample-tvOSTests' do - inherit! :search_paths - # Pods for testing - end -end diff --git a/sample/ios/sample-tvOS/Info.plist b/sample/ios/sample-tvOS/Info.plist deleted file mode 100644 index ecbd496be..000000000 --- a/sample/ios/sample-tvOS/Info.plist +++ /dev/null @@ -1,53 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/sample/ios/sample-tvOSTests/Info.plist b/sample/ios/sample-tvOSTests/Info.plist deleted file mode 100644 index 68d8ee1b8..000000000 --- a/sample/ios/sample-tvOSTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - io.sentry.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/sample/ios/sample.xcodeproj/project.pbxproj b/sample/ios/sample.xcodeproj/project.pbxproj deleted file mode 100644 index 56dbdc458..000000000 --- a/sample/ios/sample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1056 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* sampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* sampleTests.m */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 291E10E70F1BBB8566D2FAB5 /* libPods-sample-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57081814DA22CAD4CD6D307A /* libPods-sample-tvOS.a */; }; - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2DCD954D1E0B4F2C00145EB5 /* sampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* sampleTests.m */; }; - 3363443028D3404000E758E8 /* RCTAssetsModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 3363442E28D3404000E758E8 /* RCTAssetsModule.m */; }; - 3363443128D3404000E758E8 /* RCTAssetsModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 3363442E28D3404000E758E8 /* RCTAssetsModule.m */; }; - 5519B2ECB22EA85E105F9BD6 /* libPods-sample-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 06747EB610677789FC2B739B /* libPods-sample-tvOSTests.a */; }; - BFB50BFE184C493D0EAB0846 /* libPods-sample-sampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B58A8E6547B8B94F9031BDC /* libPods-sample-sampleTests.a */; }; - F533B6D2C077CDAB462AD561 /* libPods-sample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 98F4D8088D36C81F972A9162 /* libPods-sample.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = sample; - }; - 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; - remoteInfo = "sample-tvOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00E356EE1AD99517003FC87E /* sampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = sampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* sampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = sampleTests.m; sourceTree = ""; }; - 06747EB610677789FC2B739B /* libPods-sample-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-sample-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07F961A680F5B00A75B9A /* sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = sample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = sample/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = sample/AppDelegate.m; sourceTree = ""; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = sample/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = sample/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = sample/main.m; sourceTree = ""; }; - 2D02E47B1E0B4A5D006451C7 /* sample-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "sample-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D02E4901E0B4A5D006451C7 /* sample-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "sample-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3363442E28D3404000E758E8 /* RCTAssetsModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RCTAssetsModule.m; path = sample/RCTAssetsModule.m; sourceTree = ""; }; - 3363442F28D3404000E758E8 /* RCTAssetsModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTAssetsModule.h; path = sample/RCTAssetsModule.h; sourceTree = ""; }; - 3B58A8E6547B8B94F9031BDC /* libPods-sample-sampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-sample-sampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 453F0102215F3F2F1C492D44 /* Pods-sample-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-sample-tvOSTests/Pods-sample-tvOSTests.debug.xcconfig"; sourceTree = ""; }; - 4BA911B4B0D2B2B6C1FF2844 /* Pods-sample-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-sample-tvOSTests/Pods-sample-tvOSTests.release.xcconfig"; sourceTree = ""; }; - 4E82EF7569F395628526D122 /* Pods-sample-sampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample-sampleTests.debug.xcconfig"; path = "Target Support Files/Pods-sample-sampleTests/Pods-sample-sampleTests.debug.xcconfig"; sourceTree = ""; }; - 57081814DA22CAD4CD6D307A /* libPods-sample-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-sample-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7755961568B7B0EB6FA4EF13 /* Pods-sample-sampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample-sampleTests.release.xcconfig"; path = "Target Support Files/Pods-sample-sampleTests/Pods-sample-sampleTests.release.xcconfig"; sourceTree = ""; }; - 98F4D8088D36C81F972A9162 /* libPods-sample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-sample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9CE7A0150AC6DD2223C0E812 /* Pods-sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample.release.xcconfig"; path = "Target Support Files/Pods-sample/Pods-sample.release.xcconfig"; sourceTree = ""; }; - A6816468CF8CC0E3D5AAEFB9 /* Pods-sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample.debug.xcconfig"; path = "Target Support Files/Pods-sample/Pods-sample.debug.xcconfig"; sourceTree = ""; }; - A6CF4DC0EB2AF2C2E88A9276 /* Pods-sample-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-sample-tvOS/Pods-sample-tvOS.debug.xcconfig"; sourceTree = ""; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; - F15918AFA2B320D7E9FD6D44 /* Pods-sample-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-sample-tvOS.release.xcconfig"; path = "Target Support Files/Pods-sample-tvOS/Pods-sample-tvOS.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BFB50BFE184C493D0EAB0846 /* libPods-sample-sampleTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F533B6D2C077CDAB462AD561 /* libPods-sample.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 291E10E70F1BBB8566D2FAB5 /* libPods-sample-tvOS.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5519B2ECB22EA85E105F9BD6 /* libPods-sample-tvOSTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* sampleTests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* sampleTests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = sampleTests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* sample */ = { - isa = PBXGroup; - children = ( - 3363442F28D3404000E758E8 /* RCTAssetsModule.h */, - 3363442E28D3404000E758E8 /* RCTAssetsModule.m */, - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = sample; - sourceTree = ""; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - ED2971642150620600B7C4FE /* JavaScriptCore.framework */, - 98F4D8088D36C81F972A9162 /* libPods-sample.a */, - 3B58A8E6547B8B94F9031BDC /* libPods-sample-sampleTests.a */, - 57081814DA22CAD4CD6D307A /* libPods-sample-tvOS.a */, - 06747EB610677789FC2B739B /* libPods-sample-tvOSTests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* sample */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* sampleTests */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - A07C996A2A263F8493FEBD7E /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* sample.app */, - 00E356EE1AD99517003FC87E /* sampleTests.xctest */, - 2D02E47B1E0B4A5D006451C7 /* sample-tvOS.app */, - 2D02E4901E0B4A5D006451C7 /* sample-tvOSTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - A07C996A2A263F8493FEBD7E /* Pods */ = { - isa = PBXGroup; - children = ( - A6816468CF8CC0E3D5AAEFB9 /* Pods-sample.debug.xcconfig */, - 9CE7A0150AC6DD2223C0E812 /* Pods-sample.release.xcconfig */, - 4E82EF7569F395628526D122 /* Pods-sample-sampleTests.debug.xcconfig */, - 7755961568B7B0EB6FA4EF13 /* Pods-sample-sampleTests.release.xcconfig */, - A6CF4DC0EB2AF2C2E88A9276 /* Pods-sample-tvOS.debug.xcconfig */, - F15918AFA2B320D7E9FD6D44 /* Pods-sample-tvOS.release.xcconfig */, - 453F0102215F3F2F1C492D44 /* Pods-sample-tvOSTests.debug.xcconfig */, - 4BA911B4B0D2B2B6C1FF2844 /* Pods-sample-tvOSTests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* sampleTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "sampleTests" */; - buildPhases = ( - E2516F7F4E91F358185E331B /* [CP] Check Pods Manifest.lock */, - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - ACBE39BD4034EE846294AF2C /* [CP] Copy Pods Resources */, - 0E8F2596BF2AF7D4635FC910 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = sampleTests; - productName = sampleTests; - productReference = 00E356EE1AD99517003FC87E /* sampleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* sample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "sample" */; - buildPhases = ( - 43A46DA415080401B5041A79 /* [CP] Check Pods Manifest.lock */, - FD10A7F022414F080027D42C /* Start Packager */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 3ACC5152BE964D499820323D /* Upload Debug Symbols to Sentry */, - 44274D46379AA6ECCC90070C /* [CP] Copy Pods Resources */, - 622A846A4DBCFC5B8C8CAE3E /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = sample; - productName = sample; - productReference = 13B07F961A680F5B00A75B9A /* sample.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E47A1E0B4A5D006451C7 /* sample-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample-tvOS" */; - buildPhases = ( - DF7B175CBDCE6067A34AE749 /* [CP] Check Pods Manifest.lock */, - FD10A7F122414F3F0027D42C /* Start Packager */, - 2D02E4771E0B4A5D006451C7 /* Sources */, - 2D02E4781E0B4A5D006451C7 /* Frameworks */, - 2D02E4791E0B4A5D006451C7 /* Resources */, - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "sample-tvOS"; - productName = "sample-tvOS"; - productReference = 2D02E47B1E0B4A5D006451C7 /* sample-tvOS.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E48F1E0B4A5D006451C7 /* sample-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample-tvOSTests" */; - buildPhases = ( - 615F7FF2CBB8515CA8D98247 /* [CP] Check Pods Manifest.lock */, - 2D02E48C1E0B4A5D006451C7 /* Sources */, - 2D02E48D1E0B4A5D006451C7 /* Frameworks */, - 2D02E48E1E0B4A5D006451C7 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, - ); - name = "sample-tvOSTests"; - productName = "sample-tvOSTests"; - productReference = 2D02E4901E0B4A5D006451C7 /* sample-tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1310; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = 62L9982P5R; - LastSwiftMigration = 1120; - }; - 2D02E47A1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - 2D02E48F1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - TestTargetID = 2D02E47A1E0B4A5D006451C7; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "sample" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* sample */, - 00E356ED1AD99517003FC87E /* sampleTests */, - 2D02E47A1E0B4A5D006451C7 /* sample-tvOS */, - 2D02E48F1E0B4A5D006451C7 /* sample-tvOSTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4791E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48E1E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"../../node_modules/@sentry/cli/bin/sentry-cli react-native xcode $REACT_NATIVE_XCODE\\\"\"\n\nexport MODULES_PATHS=\"$PWD/../node_modules,$PWD/../../..\"\n/bin/sh ../../scripts/collect-modules.sh\n"; - }; - 0E8F2596BF2AF7D4635FC910 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-sample-sampleTests/Pods-sample-sampleTests-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-sample-sampleTests/Pods-sample-sampleTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native Code And Images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/@sentry/cli/bin/sentry-cli react-native xcode ../node_modules/react-native/scripts/react-native-xcode.sh"; - }; - 3ACC5152BE964D499820323D /* Upload Debug Symbols to Sentry */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Upload Debug Symbols to Sentry"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# First set the path to sentry.properties\nexport SENTRY_PROPERTIES=sentry.properties\n\n# Setup nvm and set node\n[ -z \"$NVM_DIR\" ] && export NVM_DIR=\"$HOME/.nvm\"\n\nif [[ -s \"$HOME/.nvm/nvm.sh\" ]]; then\n. \"$HOME/.nvm/nvm.sh\"\nelif [[ -x \"$(command -v brew)\" && -s \"$(brew --prefix nvm)/nvm.sh\" ]]; then\n. \"$(brew --prefix nvm)/nvm.sh\"\nfi\n\n# Set up the nodenv node version manager if present\nif [[ -x \"$HOME/.nodenv/bin/nodenv\" ]]; then\neval \"$(\"$HOME/.nodenv/bin/nodenv\" init -)\"\nfi\n\n# Trying notion\nif [ -z \"$NODE_BINARY\" ]; then\nif [[ -s \"$HOME/.notion/bin/node\" ]]; then\nexport NODE_BINARY=\"$HOME/.notion/bin/node\"\nfi\nfi\n\n[ -z \"$NODE_BINARY\" ] && export NODE_BINARY=\"node\"\n\n# Run sentry cli script to upload debug symbols\n$NODE_BINARY ../../node_modules/@sentry/cli/bin/sentry-cli upload-dif \"$DWARF_DSYM_FOLDER_PATH\"\n"; - }; - 43A46DA415080401B5041A79 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-sample-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 44274D46379AA6ECCC90070C /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-sample/Pods-sample-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-sample/Pods-sample-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 615F7FF2CBB8515CA8D98247 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-sample-tvOSTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 622A846A4DBCFC5B8C8CAE3E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-sample/Pods-sample-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-sample/Pods-sample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - ACBE39BD4034EE846294AF2C /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-sample-sampleTests/Pods-sample-sampleTests-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-sample-sampleTests/Pods-sample-sampleTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - DF7B175CBDCE6067A34AE749 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-sample-tvOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - E2516F7F4E91F358185E331B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-sample-sampleTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - FD10A7F022414F080027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; - FD10A7F122414F3F0027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* sampleTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - 3363443028D3404000E758E8 /* RCTAssetsModule.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4771E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, - 3363443128D3404000E758E8 /* RCTAssetsModule.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48C1E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DCD954D1E0B4F2C00145EB5 /* sampleTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* sample */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D02E47A1E0B4A5D006451C7 /* sample-tvOS */; - targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 13B07FB21A68108700A75B9A /* Base */, - ); - name = LaunchScreen.xib; - path = sample; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4E82EF7569F395628526D122 /* Pods-sample-sampleTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = sampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample.app/sample"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7755961568B7B0EB6FA4EF13 /* Pods-sample-sampleTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = sampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample.app/sample"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A6816468CF8CC0E3D5AAEFB9 /* Pods-sample.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 62L9982P5R; - ENABLE_BITCODE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "FB_SONARKIT_ENABLED=1", - ); - INFOPLIST_FILE = sample/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = sample; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9CE7A0150AC6DD2223C0E812 /* Pods-sample.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 97JCY7859U; - INFOPLIST_FILE = sample/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = sample; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 2D02E4971E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A6CF4DC0EB2AF2C2E88A9276 /* Pods-sample-tvOS.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; - }; - name = Debug; - }; - 2D02E4981E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F15918AFA2B320D7E9FD6D44 /* Pods-sample-tvOS.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 12.0; - }; - name = Release; - }; - 2D02E4991E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 453F0102215F3F2F1C492D44 /* Pods-sample-tvOSTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample-tvOS.app/sample-tvOS"; - TVOS_DEPLOYMENT_TARGET = 12.0; - }; - name = Debug; - }; - 2D02E49A1E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4BA911B4B0D2B2B6C1FF2844 /* Pods-sample-tvOSTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "sample-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/sample-tvOS.app/sample-tvOS"; - TVOS_DEPLOYMENT_TARGET = 12.0; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; - LIBRARY_SEARCH_PATHS = ( - "$(SDKROOT)/usr/lib/swift", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; - LIBRARY_SEARCH_PATHS = ( - "$(SDKROOT)/usr/lib/swift", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "sampleTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "sample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4971E0B4A5E006451C7 /* Debug */, - 2D02E4981E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "sample-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4991E0B4A5E006451C7 /* Debug */, - 2D02E49A1E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "sample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/sample/ios/sample.xcodeproj/xcshareddata/xcschemes/sample-tvOS.xcscheme b/sample/ios/sample.xcodeproj/xcshareddata/xcschemes/sample-tvOS.xcscheme deleted file mode 100644 index cfc65935f..000000000 --- a/sample/ios/sample.xcodeproj/xcshareddata/xcschemes/sample-tvOS.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sample/ios/sample.xcodeproj/xcshareddata/xcschemes/sample.xcscheme b/sample/ios/sample.xcodeproj/xcshareddata/xcschemes/sample.xcscheme deleted file mode 100644 index 6497c926e..000000000 --- a/sample/ios/sample.xcodeproj/xcshareddata/xcschemes/sample.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sample/ios/sample.xcworkspace/contents.xcworkspacedata b/sample/ios/sample.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 8a5dde68f..000000000 --- a/sample/ios/sample.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/sample/ios/sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/sample/ios/sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/sample/ios/sample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/sample/ios/sample/AppDelegate.h b/sample/ios/sample/AppDelegate.h deleted file mode 100644 index ef1de86a2..000000000 --- a/sample/ios/sample/AppDelegate.h +++ /dev/null @@ -1,8 +0,0 @@ -#import -#import - -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/sample/ios/sample/AppDelegate.m b/sample/ios/sample/AppDelegate.m deleted file mode 100644 index 6e6c0db46..000000000 --- a/sample/ios/sample/AppDelegate.m +++ /dev/null @@ -1,35 +0,0 @@ -#import "AppDelegate.h" - -#import -#import -#import - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; - RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge - moduleName:@"sample" - initialProperties:nil]; - - rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -@end diff --git a/sample/ios/sample/Base.lproj/LaunchScreen.xib b/sample/ios/sample/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 1f9ab6510..000000000 --- a/sample/ios/sample/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sample/ios/sample/Images.xcassets/AppIcon.appiconset/Contents.json b/sample/ios/sample/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 81213230d..000000000 --- a/sample/ios/sample/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/sample/ios/sample/Images.xcassets/Contents.json b/sample/ios/sample/Images.xcassets/Contents.json deleted file mode 100644 index 73c00596a..000000000 --- a/sample/ios/sample/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/sample/ios/sample/Images.xcassets/ExampleBinaryData.dataset/Contents.json b/sample/ios/sample/Images.xcassets/ExampleBinaryData.dataset/Contents.json deleted file mode 100644 index e599f9c63..000000000 --- a/sample/ios/sample/Images.xcassets/ExampleBinaryData.dataset/Contents.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "data" : [ - { - "compression-type" : "none", - "filename" : "logo_mini.png", - "idiom" : "universal", - "universal-type-identifier" : "image\/png" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/sample/ios/sample/Images.xcassets/ExampleBinaryData.dataset/logo_mini.png b/sample/ios/sample/Images.xcassets/ExampleBinaryData.dataset/logo_mini.png deleted file mode 100644 index a7c02bbb6..000000000 Binary files a/sample/ios/sample/Images.xcassets/ExampleBinaryData.dataset/logo_mini.png and /dev/null differ diff --git a/sample/ios/sample/Info.plist b/sample/ios/sample/Info.plist deleted file mode 100644 index 5ab2f2471..000000000 --- a/sample/ios/sample/Info.plist +++ /dev/null @@ -1,57 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - sample - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 2.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/sample/ios/sample/RCTAssetsModule.h b/sample/ios/sample/RCTAssetsModule.h deleted file mode 100644 index 0cde90cb2..000000000 --- a/sample/ios/sample/RCTAssetsModule.h +++ /dev/null @@ -1,3 +0,0 @@ -#import -@interface RCTAssetsModule : NSObject -@end diff --git a/sample/ios/sample/RCTAssetsModule.m b/sample/ios/sample/RCTAssetsModule.m deleted file mode 100644 index dc9fd7063..000000000 --- a/sample/ios/sample/RCTAssetsModule.m +++ /dev/null @@ -1,28 +0,0 @@ -#import "RCTAssetsModule.h" - -@implementation RCTAssetsModule - -RCT_EXPORT_METHOD(getExampleAssetData: (RCTPromiseResolveBlock)resolve - rejecter:(RCTPromiseRejectBlock)reject) -{ - NSDataAsset *data = [[NSDataAsset alloc] initWithName:@"ExampleBinaryData"]; - if (data == nil) { - reject(@"SampleSentryReactNative",@"Failed to load exmaple binary data asset.", nil); - } - - NSMutableArray *array = [NSMutableArray arrayWithCapacity:data.data.length]; - - const char *bytes = [data.data bytes]; - - for (int i = 0; i < [data.data length]; i++) - { - [array addObject:[[NSNumber alloc] initWithChar:bytes[i]]]; - } - - resolve(array); -} - -RCT_EXPORT_MODULE(AssetsModule); - -@end - diff --git a/sample/ios/sample/main.m b/sample/ios/sample/main.m deleted file mode 100644 index b1df44b95..000000000 --- a/sample/ios/sample/main.m +++ /dev/null @@ -1,9 +0,0 @@ -#import - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/sample/ios/sampleTests/Info.plist b/sample/ios/sampleTests/Info.plist deleted file mode 100644 index ba72822e8..000000000 --- a/sample/ios/sampleTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/sample/ios/sampleTests/sampleTests.m b/sample/ios/sampleTests/sampleTests.m deleted file mode 100644 index b7900f51a..000000000 --- a/sample/ios/sampleTests/sampleTests.m +++ /dev/null @@ -1,65 +0,0 @@ -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface sampleTests : XCTestCase - -@end - -@implementation sampleTests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - - -@end diff --git a/sample/ios/sentry.properties b/sample/ios/sentry.properties deleted file mode 100644 index 0cdf17015..000000000 --- a/sample/ios/sentry.properties +++ /dev/null @@ -1,4 +0,0 @@ -#defaults.url=https://sentry.io/ -defaults.org=sentry-sdks -defaults.project=sentry-react-native -#auth.token= diff --git a/sample/jest.config.js b/sample/jest.config.js deleted file mode 100644 index 556d7418f..000000000 --- a/sample/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -require('dotenv').config(); - -module.exports = { - verbose: true, -}; diff --git a/sample/metro.config.js b/sample/metro.config.js deleted file mode 100644 index 16391b5bc..000000000 --- a/sample/metro.config.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Metro configuration for React Native - * https://github.com/facebook/react-native - * - * @format - */ - -const path = require('path'); -const blacklist = require('metro-config/src/defaults/exclusionList'); -const parentDir = path.resolve(__dirname, '..'); - -module.exports = { - projectRoot: __dirname, - watchFolders: [ - path.resolve(__dirname, 'node_modules'), - `${parentDir}/dist`, - `${parentDir}/node_modules`, - ], - resolver: { - blacklistRE: blacklist([ - new RegExp(`${parentDir}/node_modules/react-native/.*`), - ]), - extraNodeModules: new Proxy( - { - /* - As the parent dir node_modules is blacklisted as you can see above. So it won't be able - to find react-native to build the code from the parent folder, - so we'll have to redirect it to use the react-native inside sample's node_modules. - */ - 'react-native': path.resolve(__dirname, 'node_modules/react-native'), - }, - { - get: (target, name) => { - if (target.hasOwnProperty(name)) { - return target[name]; - } - return path.join(process.cwd(), `node_modules/${name}`); - }, - }, - ), - }, - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: false, - }, - }), - }, -}; diff --git a/sample/package.json b/sample/package.json deleted file mode 100644 index 30d0ab26e..000000000 --- a/sample/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "dependencies": { - "@react-native-community/masked-view": "^0.1.11", - "@react-navigation/native": "^5.9.8", - "@react-navigation/stack": "^5.14.9", - "react": "18.2.0", - "react-native": "0.71.4", - "react-native-gesture-handler": "^2.9.0", - "react-native-reanimated": "^2.14.4", - "react-native-safe-area-context": "^4.5.0", - "react-native-screens": "^2.18.1", - "react-redux": "^8.0.5", - "redux": "^4.2.1" - }, - "devDependencies": { - "@babel/core": "^7.21.0", - "@babel/runtime": "^7.21.0", - "@react-native-community/eslint-config": "^2.0.0", - "appium": "^2.0.0-beta.57", - "appium-uiautomator2-driver": "^2.12.6", - "appium-xcuitest-driver": "^4.19.0", - "babel-jest": "^29.5.0", - "babel-plugin-module-resolver": "^4.1.0", - "dotenv": "^8.6.0", - "eslint": "^7.32.0", - "jest": "^29.5.0", - "metro-react-native-babel-preset": "0.74.0", - "minimist": "^1.2.8", - "webdriverio": "^7.30.2", - "xcode": "^3.0.1" - }, - "name": "sample", - "private": true, - "scripts": { - "android": "react-native run-android", - "ios": "react-native run-ios", - "lint": "eslint .", - "start": "react-native start", - "start:test": "react-native start --reset-cache --config ./metro.config.test.js", - "test": "jest", - "test-prep": "sh ./scripts/prepareConfigsForTesting.sh" - }, - "version": "0.0.1" -} diff --git a/sample/scripts/update-rn.sh b/sample/scripts/update-rn.sh deleted file mode 100755 index c82115234..000000000 --- a/sample/scripts/update-rn.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -tagPrefix='v' # react-native has a prefix in the repo, but the package.json doesn't have that - we must align -repo="https://github.com/facebook/react-native.git" -packages=('react-native') - -. $(dirname "$0")/../../scripts/update-package-json.sh - -if [[ "$1" == "set-version" ]]; then - # Also update package.json with all other dependencies - ( - cd "$(dirname "$0")/.." - yarn upgrade - npx -y syncyarnlock --save --keepPrefix - yarn install - ) -fi diff --git a/sample/src/App.tsx b/sample/src/App.tsx deleted file mode 100644 index 501d92f92..000000000 --- a/sample/src/App.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import * as React from 'react'; -import { Provider } from 'react-redux'; -import { - NavigationContainer, - NavigationContainerRef, -} from '@react-navigation/native'; -import { createStackNavigator } from '@react-navigation/stack'; - -// Import the Sentry React Native SDK -import * as Sentry from '@sentry/react-native'; -import * as Integrations from '@sentry/integrations'; - -import HomeScreen from './screens/HomeScreen'; -import TrackerScreen from './screens/TrackerScreen'; -import ManualTrackerScreen from './screens/ManualTrackerScreen'; -import PerformanceTimingScreen from './screens/PerformanceTimingScreen'; -import ReduxScreen from './screens/ReduxScreen'; - -import { store } from './reduxApp'; -import { SENTRY_INTERNAL_DSN } from './dsn'; - -const reactNavigationInstrumentation = - new Sentry.ReactNavigationInstrumentation({ - routeChangeTimeoutMs: 500, // How long it will wait for the route change to complete. Default is 1000ms - }); -Sentry.init({ - // Replace the example DSN below with your own DSN: - dsn: SENTRY_INTERNAL_DSN, - debug: true, - beforeSend: (e: Sentry.Event) => { - console.log('Event beforeSend:', e); - return e; - }, - // This will be called with a boolean `didCallNativeInit` when the native SDK has been contacted. - onReady: ({ didCallNativeInit }) => { - console.log('onReady called with didCallNativeInit:', didCallNativeInit); - }, - maxCacheItems: 40, // Extend from the default 30. - integrations: [ - new Sentry.ReactNativeTracing({ - // The time to wait in ms until the transaction will be finished, For testing, default is 1000 ms - idleTimeout: 5000, - routingInstrumentation: reactNavigationInstrumentation, - tracePropagationTargets: ['localhost', /^\//, /^https:\/\//], - beforeNavigate: (context: Sentry.ReactNavigationTransactionContext) => { - // Example of not sending a transaction for the screen with the name "Manual Tracker" - if (context.data.route.name === 'ManualTracker') { - context.sampled = false; - } - - return context; - }, - }), - { - name: 'Dedupe', - setupOnce: (_addGlobalEventProcessor, _getCurrentHub) => { - console.log('Dedupe Dummy Integration'); - }, - }, - new Integrations.HttpClient({ - // This array can contain tuples of `[begin, end]` (both inclusive), - // Single status codes, or a combinations of both. - // default: [[500, 599]] - failedRequestStatusCodes: [[400, 599]], - // This array can contain Regexes or strings, or combinations of both. - // default: [/.*/] - failedRequestTargets: [/.*/], - }), - ], - enableAutoSessionTracking: true, - // For testing, session close when 5 seconds (instead of the default 30) in the background. - sessionTrackingIntervalMillis: 5000, - // This will capture ALL TRACES and likely use up all your quota - tracesSampleRate: 1.0, - // Sets the `release` and `dist` on Sentry events. Make sure this matches EXACTLY with the values on your sourcemaps - // otherwise they will not work. - // release: 'myapp@1.2.3+1', - // dist: `1`, - attachStacktrace: true, - // Attach screenshots to events. - attachScreenshot: true, - // Attach view hierarchy to events. - attachViewHierarchy: true, -}); - -const Stack = createStackNavigator(); - -const App = () => { - const navigation = React.useRef(); - - return ( - - { - reactNavigationInstrumentation.registerNavigationContainer( - navigation, - ); - }}> - - - - - - - - - - ); -}; - -// Wrap your app to get more features out of the box such as auto performance monitoring. -export default Sentry.wrap(App, { - touchEventBoundaryProps: { - labelName: 'custom-sentry-label-name', - }, -}); diff --git a/sample/src/assets/sentry-announcement.png b/sample/src/assets/sentry-announcement.png deleted file mode 100644 index b29992aba..000000000 Binary files a/sample/src/assets/sentry-announcement.png and /dev/null differ diff --git a/sample/src/assets/sentry-logo.png b/sample/src/assets/sentry-logo.png deleted file mode 100644 index 2b8887b95..000000000 Binary files a/sample/src/assets/sentry-logo.png and /dev/null differ diff --git a/sample/src/components/Counter.tsx b/sample/src/components/Counter.tsx deleted file mode 100644 index a30cef869..000000000 --- a/sample/src/components/Counter.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import * as React from 'react'; -import {View, Text, TouchableOpacity} from 'react-native'; -import {useSelector, useDispatch} from 'react-redux'; - -const Counter = () => { - const counter = useSelector((state) => state.counter); - const dispatch = useDispatch(); - - return ( - - Count: - {counter} - - dispatch({ - type: 'COUNTER_INCREMENT', - }) - }> - Increment - - - dispatch({ - type: 'COUNTER_RESET', - }) - }> - Reset - - - ); -}; - -export default Counter; diff --git a/sample/src/components/UserFeedbackModal.tsx b/sample/src/components/UserFeedbackModal.tsx deleted file mode 100644 index ddd707cf6..000000000 --- a/sample/src/components/UserFeedbackModal.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import React, { useState } from 'react'; -import { View, Modal, StyleSheet, Text, TouchableOpacity, TextInput, Image } from 'react-native'; -import * as Sentry from '@sentry/react-native'; -import { UserFeedback } from '@sentry/react-native'; -import { styles as homeScreenStyles } from '../screens/HomeScreen'; - -export const DEFAULT_COMMENTS = `It's broken again! Please fix it.`; - -export function UserFeedbackModal() { - const [comments, onChangeComments] = React.useState(DEFAULT_COMMENTS); - const [modalVisible, setModalVisible] = useState(false); - const clearComments = () => onChangeComments(DEFAULT_COMMENTS); - - return ( - - { - setModalVisible(!modalVisible); - }} - > - - - - Whoops, what happened? - - { - setModalVisible(!modalVisible); - - const sentryId = Sentry.captureMessage('Message that needs user feedback'); - - const userFeedback: UserFeedback = { - event_id: sentryId, - name: 'John Doe', - email: 'john@doe.com', - comments, - }; - - Sentry.captureUserFeedback(userFeedback); - clearComments(); - }}> - Send feedback - - { - setModalVisible(!modalVisible); - }}> - Close - - - - - { - setModalVisible(true); - }}> - Send user feedback - - - ); -} - -const styles = StyleSheet.create({ - centeredView: { - flex: 1, - justifyContent: "center", - alignItems: "center", - }, - modalView: { - margin: 5, - backgroundColor: "white", - borderRadius: 6, - padding: 25, - alignItems: "center", - shadowColor: "#000", - shadowOffset: { - width: 0, - height: 2 - }, - shadowOpacity: 0.25, - shadowRadius: 4, - elevation: 5 - }, - input: { - margin: 12, - marginBottom: 20, - borderWidth: 0.5, - borderColor: '#c6becf', - padding: 15, - borderRadius: 6, - height: 100, - width: 250, - textAlignVertical: 'top', - }, - modalText: { - marginBottom: 15, - textAlign: "center", - fontSize: 18, - }, - modalImage: { - marginBottom: 20, - width: 80, - height: 80, - } -}); diff --git a/sample/src/dsn.ts b/sample/src/dsn.ts deleted file mode 100644 index 1da1872d6..000000000 --- a/sample/src/dsn.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const SENTRY_INTERNAL_DSN = - 'https://d870ad989e7046a8b9715a57f59b23b5@o447951.ingest.sentry.io/5428561'; diff --git a/sample/src/reduxApp.ts b/sample/src/reduxApp.ts deleted file mode 100644 index cc0fc7091..000000000 --- a/sample/src/reduxApp.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {createStore} from 'redux'; -import * as Sentry from '@sentry/react'; - -const initialState = { - counter: 0, -}; - -const reducer = (state = initialState, action) => { - switch (action.type) { - case 'COUNTER_INCREMENT': - return { - ...state, - counter: state.counter + 1, - }; - case 'COUNTER_RESET': - return { - ...state, - counter: 0, - }; - default: - return state; - } -}; - -/* - Example of how to use the Sentry redux enhancer packaged with @sentry/react: -*/ - -const sentryEnhancer = Sentry.createReduxEnhancer(); - -const store = createStore(reducer, sentryEnhancer); - -export {store}; diff --git a/sample/src/screens/HomeScreen.tsx b/sample/src/screens/HomeScreen.tsx deleted file mode 100644 index 48686c98c..000000000 --- a/sample/src/screens/HomeScreen.tsx +++ /dev/null @@ -1,389 +0,0 @@ -import React, {useEffect} from 'react'; -import { - Image, - ScrollView, - StatusBar, - StyleSheet, - Text, - TouchableOpacity, - View, -} from 'react-native'; -import { StackNavigationProp } from '@react-navigation/stack'; -import { CommonActions } from '@react-navigation/native'; - -import * as Sentry from '@sentry/react-native'; - -import { getTestProps } from '../../utils/getTestProps'; -import { SENTRY_INTERNAL_DSN } from '../dsn'; -import { SeverityLevel } from '@sentry/types'; -import { Scope } from '@sentry/react-native'; -import { NativeModules } from 'react-native'; -import { UserFeedbackModal } from '../components/UserFeedbackModal'; - -const {AssetsModule} = NativeModules; - -interface Props { - navigation: StackNavigationProp; -} - -const HomeScreen = (props: Props) => { - const currentDSN = Sentry.getCurrentHub().getClient().getOptions().dsn; - - // Show bad code inside error boundary to trigger it. - const [showBadCode, setShowBadCode] = React.useState(false); - - const setScopeProps = () => { - const dateString = new Date().toString(); - - Sentry.setUser({ - id: 'test-id-0', - email: 'testing@testing.test', - username: 'USER-TEST', - ip_address: '1.1.1.1', - segment: 'test-segment', - specialField: 'special user field', - specialFieldNumber: 418, - }); - - Sentry.setTag('SINGLE-TAG', dateString); - // @ts-ignore - Sentry.setTag('SINGLE-TAG-NUMBER', 100); - Sentry.setTags({ - 'MULTI-TAG-0': dateString, - 'MULTI-TAG-1': dateString, - 'MULTI-TAG-2': dateString, - }); - - Sentry.setExtra('SINGLE-EXTRA', dateString); - Sentry.setExtra('SINGLE-EXTRA-NUMBER', 100); - Sentry.setExtra('SINGLE-EXTRA-OBJECT', { - message: 'I am a teapot', - status: 418, - array: ['boo', 100, 400, { objectInsideArray: 'foobar' }], - }); - Sentry.setExtras({ - 'MULTI-EXTRA-0': dateString, - 'MULTI-EXTRA-1': dateString, - 'MULTI-EXTRA-2': dateString, - }); - - Sentry.setContext('TEST-CONTEXT', { - stringTest: 'Hello', - numberTest: 404, - objectTest: { - foo: 'bar', - }, - arrayTest: ['foo', 'bar', 400], - nullTest: null, - undefinedTest: undefined, - }); - - Sentry.addBreadcrumb({ - level: 'info' as SeverityLevel, - message: `TEST-BREADCRUMB-INFO: ${dateString}`, - }); - Sentry.addBreadcrumb({ - level: 'debug' as SeverityLevel, - message: `TEST-BREADCRUMB-DEBUG: ${dateString}`, - }); - Sentry.addBreadcrumb({ - level: 'error' as SeverityLevel, - message: `TEST-BREADCRUMB-ERROR: ${dateString}`, - }); - Sentry.addBreadcrumb({ - level: 'fatal' as SeverityLevel, - message: `TEST-BREADCRUMB-FATAL: ${dateString}`, - }); - Sentry.addBreadcrumb({ - level: 'info' as SeverityLevel, - message: `TEST-BREADCRUMB-DATA: ${dateString}`, - data: { - stringTest: 'Hello', - numberTest: 404, - objectTest: { - foo: 'bar', - }, - arrayTest: ['foo', 'bar', 400], - nullTest: null, - undefinedTest: undefined, - }, - category: 'TEST-CATEGORY', - }); - - console.log('Test scope properties were set.'); - }; - - const [data, setData] = React.useState(null); - useEffect(() => { - AssetsModule.getExampleAssetData() - .then((asset: number[]) => setData(new Uint8Array(asset))); - }, []); - - return ( - <> - - - { - // @ts-ignore - global.HermesInternal == null ? null : ( - - Engine: Hermes - - ) - } - - - Hey there! - - This is a simple sample app for you to try out the Sentry React - Native SDK. - - { - props.navigation.navigate('EndToEndTests'); - }}> - End to End Tests - - {currentDSN === SENTRY_INTERNAL_DSN && ( - - - 😃 Hey! You need to replace the DSN inside Sentry.init with your - own or you won't see the events on your dashboard. - - - )} - - { - Sentry.captureMessage('Test Message'); - }} - sentry-label="captureMessage"> - Capture Message - - - { - Sentry.captureException(new Error('Test Error')); - }} - custom-sentry-label-name="captureException via custom Sentry label"> - Capture Exception - - - { - throw new Error('Thrown Error'); - }} - sentry-label="throwError"> - Uncaught Thrown Error - - - { - new Promise(() => { - throw new Error('Unhandled Promise Rejection'); - }); - }}> - Unhandled Promise Rejection - - - { - Sentry.nativeCrash(); - }}> - Native Crash - - - { - setScopeProps(); - }}> - Set Scope Properties - - - { - await Sentry.flush(); - console.log('Sentry.flush() completed.'); - }}> - Flush - - - { - await Sentry.close(); - console.log('Sentry.close() completed.'); - }}> - Close - - - ( - Error boundary caught with event id: {eventId} - )}> - { - setShowBadCode(true); - }}> - - Activate Error Boundary {showBadCode &&
} - - - - - { - Sentry.configureScope((scope: Scope) => { - scope.addAttachment({ - data: 'Attachment content', - filename: 'attachment.txt', - }); - scope.addAttachment({data: data, filename: 'logo.png'}); - console.log('Sentry attachment added.'); - }); - }}> - Add attachment - - - { - Sentry.configureScope((scope: Scope) => { - console.log(scope.getAttachments()); - }); - }}> - Get attachment - - - - - { - try { - fetch('http://localhost:8081/not-found'); - } catch (error) { - //ignore the error, it will be send to Sentry - } - }}> - Capture HTTP Client Error - - - - { - props.navigation.navigate('Tracker'); - }}> - Auto Tracing Example - - - { - props.navigation.navigate('ManualTracker'); - }}> - Manual Tracing Example - - - { - // Navigate with a reset action just to test - props.navigation.dispatch( - CommonActions.reset({ - index: 1, - routes: [ - { name: 'Home' }, - { - name: 'PerformanceTiming', - params: { someParam: 'hello' }, - }, - ], - }), - ); - }}> - Performance Timing - - - { - props.navigation.navigate('Redux'); - }}> - Redux Example - - - - - - ); -}; - -export const styles = StyleSheet.create({ - scrollView: { - backgroundColor: '#fff', - flex: 1, - }, - engine: { - position: 'absolute', - right: 0, - }, - logo: { - width: 80, - height: 80, - }, - body: { - backgroundColor: '#fff', - }, - welcomeTitle: { - fontSize: 24, - fontWeight: '600', - color: '#362D59', - }, - welcomeBody: { - marginTop: 8, - fontSize: 18, - fontWeight: '400', - color: '#362D59', - }, - warningBlock: { - marginTop: 12, - backgroundColor: '#E1567C', - padding: 8, - borderRadius: 6, - }, - warningText: { - color: '#fff', - }, - contentContainer: { - paddingHorizontal: 20, - paddingVertical: 40, - }, - buttonArea: { - marginTop: 20, - backgroundColor: '#F6F6F8', - borderWidth: 1, - borderColor: '#c6becf', - borderRadius: 6, - }, - buttonText: { - color: '#3b6ecc', - fontWeight: '700', - fontSize: 16, - padding: 14, - textAlign: 'center', - }, - spacer: { - height: 1, - width: '100%', - backgroundColor: '#c6becf', - }, - hiddenE2e: { - width: 1, - height: 1, - opacity: 0, - }, -}); - -export default HomeScreen; diff --git a/sample/src/screens/ManualTrackerScreen.tsx b/sample/src/screens/ManualTrackerScreen.tsx deleted file mode 100644 index 2096fccf7..000000000 --- a/sample/src/screens/ManualTrackerScreen.tsx +++ /dev/null @@ -1,156 +0,0 @@ -import * as React from 'react'; -import {Button, View, StyleSheet, Text, ActivityIndicator} from 'react-native'; - -import * as Sentry from '@sentry/react-native'; - -/** - * An example of how to add a Sentry Transaction to a React component manually. - * So you can control all spans that belong to that one transaction. - * - * This screen calls an API to get the latest COVID-19 Data to display. We attach a span - * to the fetch call and track the time it takes for Promise to resolve. - */ -const TrackerScreen = () => { - const [cases, setCases] = React.useState<{ - TotalConfirmed: number; - TotalDeaths: number; - TotalRecovered: number; - } | null>(null); - - const transaction = React.useRef(null); - - React.useEffect(() => { - // Initialize the transaction for the screen. - transaction.current = Sentry.startTransaction({ - name: 'Tracker Screen', - op: 'navigation', - }); - - return () => { - // Finishing the transaction triggers sending the data to Sentry. - transaction.current?.finish(); - transaction.current = null; - Sentry.configureScope((scope) => { - scope.setSpan(undefined); - }); - }; - }, []); - - const loadData = () => { - setCases(null); - - // Create a child span for the API call. - const span = transaction.current?.startChild({ - op: 'http', - description: 'Fetch Covid19 data from API', - }); - - fetch('https://api.covid19api.com/summary', { - method: 'GET', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - }) - .then((response) => response.json()) - .then((json) => { - setCases(json.Global); - - span?.setData('json', json); - span?.finish(); - }); - }; - - React.useEffect(() => { - loadData(); - }, []); - - return ( - - - Global COVID19 Cases - - - {cases ? ( - <> - - - - - ) : ( - - )} - -