diff --git a/.github/last-release-runid b/.github/last-release-runid index 24d416962f8..9b60e59bed7 100644 --- a/.github/last-release-runid +++ b/.github/last-release-runid @@ -1 +1 @@ -10958820944 +11345222588 diff --git a/.github/workflows/benchmarking.yml b/.github/workflows/benchmarking.yml index 7290089557c..19a800574fd 100644 --- a/.github/workflows/benchmarking.yml +++ b/.github/workflows/benchmarking.yml @@ -16,6 +16,7 @@ on: - '.sauce/benchmarking-config.yml' - 'fastlane/**' - 'scripts/ci-select-xcode.sh' + - 'scripts/build-xcframework.sh' # https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value concurrency: @@ -28,7 +29,7 @@ jobs: runs-on: macos-13 steps: - uses: actions/checkout@v4 - - run: ./scripts/ci-select-xcode.sh + - run: ./scripts/ci-select-xcode.sh 15.2 - uses: ruby/setup-ruby@v1 with: bundler-cache: true @@ -91,7 +92,7 @@ jobs: - uses: actions/download-artifact@v4 with: name: DerivedData-Xcode - - run: npm install -g saucectl@0.173.2 + - run: npm install -g saucectl@0.186.0 - name: Run Benchmarks in SauceLab env: SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }} @@ -100,11 +101,11 @@ jobs: app-metrics: name: Collect app metrics - runs-on: macos-13 + runs-on: macos-13-xlarge steps: - name: Git checkout uses: actions/checkout@v4 - - run: ./scripts/ci-select-xcode.sh + - run: ./scripts/ci-select-xcode.sh 15.2 - uses: ruby/setup-ruby@v1 with: bundler-cache: true @@ -125,7 +126,16 @@ jobs: MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_USERNAME: ${{ secrets.MATCH_USERNAME }} - name: Build Framework - run: make build-xcframework + run: ./scripts/build-xcframework.sh iOSOnly + + - name: Archive build log if failed + uses: actions/upload-artifact@v4 + if: ${{ failure() || cancelled() }} + with: + name: raw-build-output-build-xcframework + path: | + build-xcframework.log + - name: Build test app with sentry run: bundle exec fastlane build_perf_test_app_sentry env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 455a7137b2c..94284f9592e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -203,7 +203,7 @@ jobs: # We don't upload codecov for scheduled runs as CodeCov only accepts a limited amount of uploads per commit. - name: Push code coverage to codecov id: codecov_1 - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # pin@v4.6.0 if: ${{ contains(matrix.platform, 'iOS') && !contains(github.ref, 'release') && github.event.schedule == '' }} with: # Although public repos should not have to specify a token there seems to be a bug with the Codecov GH action, which can @@ -215,7 +215,7 @@ jobs: # Sometimes codecov uploads etc can fail. Retry one time to rule out e.g. intermittent network failures. - name: Push code coverage to codecov id: codecov_2 - uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # pin@v4.5.0 + uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # pin@v4.6.0 if: ${{ steps.codecov_1.outcome == 'failure' && contains(matrix.platform, 'iOS') && !contains(github.ref, 'release') && github.event.schedule == '' }} with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/ui-tests-critical.yml b/.github/workflows/ui-tests-critical.yml new file mode 100644 index 00000000000..c87d4c86b55 --- /dev/null +++ b/.github/workflows/ui-tests-critical.yml @@ -0,0 +1,103 @@ +name: UI Tests Critical +on: + push: + branches: + - main + + pull_request: + paths: + - 'Sources/**' + - '.github/workflows/ui-tests-critical.yml' + - 'fastlane/**' + - 'TestSamples/**' + +# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + build-sample: + name: Build SwiftUITestSample Sample + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + - run: ./scripts/ci-select-xcode.sh 16 + - uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - run: bundle exec fastlane build_ios_swift_ui_test_sample + - uses: actions/upload-artifact@v4 + with: + name: SwiftUITestSample + path: TestSamples/SwiftUITestSample/DerivedData/Build/Products/Debug-iphonesimulator/SwiftUITestSample.app + + run-tests: + name: Test iOS ${{matrix.os-version}} on ${{matrix.device}} Simulator + needs: [build-sample] + runs-on: ${{matrix.runs-on}} + env: + APP_ARTIFACT_NAME: "SwiftUITestSample" + APP_PATH: "Sample.app" + + MAESTRO_FLOWS_PATH: "TestSamples/SwiftUITestSample/Maestro" + MAESTRO_LOGS_PATH: "MaestroLogs" + + # https://github.com/facebook/react-native/blob/24e7f7d25629a7af6d877a0b79fed2faaab96437/.github/actions/maestro-ios/action.yml#L57 + MAESTRO_DRIVER_STARTUP_TIMEOUT: 1500000 # 25 min, CI can be slow at times + strategy: + fail-fast: false + matrix: + include: + - runs-on: macos-12 + xcode: "13.4.1" + device: "iPhone 8" + os-version: "15.5" + create-simulator: true + - runs-on: macos-13 + xcode: "14.3.1" + device: "iPhone 14" + os-version: "16.4" + create-simulator: true + - runs-on: macos-14-xlarge + # on macos-14 the iOS 17.5 simulator was unstable + # crashing and failing all UI tests + # iOS 15.5, 16.4 and 18.1 worked on the base runners + xcode: "15.4" + device: "iPhone 15" + os-version: "17.5" + - runs-on: macos-15 + xcode: "16" + device: "iPhone 16" + os-version: "18.1" + + steps: + - uses: actions/checkout@v4 + - name: Create ${{matrix.device}} (${{matrix.os-version}}) Simulator using Xcode ${{matrix.xcode}} + if: ${{matrix.create-simulator}} + run: ./scripts/create-simulator.sh "${{matrix.xcode}}" "${{matrix.os-version}}" "${{matrix.device}}" + - name: Install Maestro + run: brew tap mobile-dev-inc/tap && brew install mobile-dev-inc/tap/maestro@1.38 + - name: Install iDB Companion + run: brew tap facebook/fb && brew install facebook/fb/idb-companion + + - uses: actions/download-artifact@v4 + with: + name: ${{env.APP_ARTIFACT_NAME}} + path: ${{env.APP_PATH}} + - uses: futureware-tech/simulator-action@bfa03d93ec9de6dacb0c5553bbf8da8afc6c2ee9 # pin@v3 + with: + model: ${{matrix.device}} + os_version: ${{matrix.os-version}} + - name: Run Maestro Flows + run: | + xcrun simctl install booted ${{env.APP_PATH}} + + maestro test ${{env.MAESTRO_FLOWS_PATH}} --format junit --debug-output ${{env.MAESTRO_LOGS_PATH}} + + - name: Store Maestro Logs + uses: actions/upload-artifact@v4 + if: failure() + with: + name: maestro-logs-${{matrix.device}}-${{matrix.os-version}} + path: ${{env.MAESTRO_LOGS_PATH}} diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml index b51d55ac9fd..a9468125d0c 100644 --- a/.github/workflows/ui-tests.yml +++ b/.github/workflows/ui-tests.yml @@ -79,9 +79,9 @@ jobs: path: | ~/Library/Logs/scan/*.log ./fastlane/test_output/** - - ios-swift-ui-tests: - name: iOS-Swift UI Tests ${{matrix.device}} + + ui-tests-swift: + name: UI Tests for iOS-Swift ${{matrix.device}} Simulator runs-on: ${{matrix.runs-on}} strategy: fail-fast: false @@ -105,10 +105,10 @@ jobs: - name: Create iOS 16.4 simulator if: ${{ matrix.device == 'iPhone 14 (16.4)' }} - run: ./scripts/create-simulator.sh 14.3.1 16.4 16-4 + run: ./scripts/create-simulator.sh 14.3.1 16.4 "iPhone 14" - name: Run Fastlane - run: fastlane ui_tests_ios_swift device:"${{matrix.device}}" + run: fastlane ui_tests_ios_swift device:"${{matrix.device}}" - name: Archiving Raw Test Logs uses: actions/upload-artifact@v4 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7a5a5fdb7d3..8561c2ed7e4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -11,7 +11,7 @@ repos: fail_fast: true args: - "check-versions" - + - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 hooks: @@ -20,6 +20,7 @@ repos: - id: check-symlinks - id: check-xml - id: check-yaml + args: [--allow-multiple-documents] - id: detect-private-key - id: end-of-file-fixer - id: no-commit-to-branch @@ -30,7 +31,7 @@ repos: - id: check-github-actions - id: check-github-workflows args: [--verbose] - + - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.10.0.1 hooks: @@ -45,7 +46,7 @@ repos: types_or: ["objective-c", "objective-c++", "c", "c++"] args: - "format-clang" - + - id: format-swift name: Format Swift entry: make diff --git a/Brewfile b/Brewfile index 8ffcfe6e9b8..52e9d66f869 100644 --- a/Brewfile +++ b/Brewfile @@ -5,3 +5,7 @@ brew 'rbenv' brew 'pre-commit' brew 'python3' brew 'jq' +tap 'facebook/fb' +brew 'facebook/fb/idb-companion' +tap 'mobile-dev-inc/tap' +brew 'mobile-dev-inc/tap/maestro' diff --git a/Brewfile.lock.json b/Brewfile.lock.json index 9ae9cc6b22e..ca8b73ac018 100644 --- a/Brewfile.lock.json +++ b/Brewfile.lock.json @@ -278,6 +278,22 @@ } } } + }, + "facebook/fb/idb-companion": { + "version": "1.1.8", + "bottle": false + }, + "mobile-dev-inc/tap/maestro": { + "version": "1.38.1", + "bottle": false + } + }, + "tap": { + "facebook/fb": { + "revision": "c0386793f59da10c619787f2aa18d938ef1d69c9" + }, + "mobile-dev-inc/tap": { + "revision": "14a5d2ab054e7829e8028e827d35a2cc3156a4a0" } } }, diff --git a/CHANGELOG.md b/CHANGELOG.md index 74c4f42213b..e8721386e0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,19 +4,105 @@ ### Features +- feat: API to manually start/stop Session Replay (#4414) +- Custom redact modifier for SwiftUI (#4362, #4392) + +### Removal of Experimental API + +- Remove the deprecated experimental Metrics API (#4406): [Learn more](https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Metrics-Beta-Coming-to-an-End) + +### Fixes + +- Edge case for swizzleClassNameExclude (#4405): Skip creating transactions for UIViewControllers ignored for swizzling +via the option `swizzleClassNameExclude`. +- Add TTID/TTFD spans when loadView gets skipped (#4415) +- Finish TTID correctly when viewWillAppear is skipped (#4417) +- Swizzling RootUIViewController if ignored by `swizzleClassNameExclude` (#4407) +- Data race in SentrySwizzleInfo.originalCalled (#4434) +- Thread running at user-initiated quality-of-service for session replay (#4439) + + +### Improvements + +- Serializing profile on a BG Thread (#4377) to avoid potentially slightly blocking the main thread. +- Session Replay performance for SwiftUI (#4419) +- Speed up getBinaryImages (#4435) for finishing transactions and capturing events +- Use UInts in envelope deserialization (#4441) + +## 8.38.0 + +### Features + - Added breadcrumb.origin private field (#4358) - Custom redact modifier for SwiftUI (#4362) +- AppHangV2 detection (#4379) Add a new algorithm for detecting app hangs that differentiates between fully blocking and non-fully blocking app hangs. Read more in-depth in our [docs](https://docs.sentry.io/platforms/apple/guides/ios/configuration/app-hangs/#app-hangs-v2). +- Add support for arm64e (#3398) - Add mergeable libraries support to dynamic libraries (#4381) ### Improvements - Speed up HTTP tracking for multiple requests in parallel (#4366) - Slightly speed up SentryInAppLogic (#4370) +- Rename session replay `redact` options and APIs to `mask` (#4373) - Stop canceling timer for manual transactions (#4380) ### Fixes - Fix the versioning to support app release with Beta versions (#4368) +- Linking ongoing trace to crash event (#4393) +- Edge case for swizzleClassNameExclude (#4405) + +## 8.38.0-beta.1 + +### Features + +- Added breadcrumb.origin private field (#4358) +- Custom redact modifier for SwiftUI (#4362) +- AppHangV2 detection (#4379) Add a new algorithm for detecting app hangs that differentiates between fully blocking and non-fully blocking app hangs. Read more in-depth in our [docs](https://docs.sentry.io/platforms/apple/guides/ios/configuration/app-hangs/#app-hangs-v2). +- Add support for arm64e (#3398) +- Add mergeable libraries support to dynamic libraries (#4381) + +### Improvements + +- Speed up HTTP tracking for multiple requests in parallel (#4366) +- Slightly speed up SentryInAppLogic (#4370) +- Rename session replay `redact` options and APIs to `mask` (#4373) +- Stop canceling timer for manual transactions (#4380) + +### Fixes + +- Fix the versioning to support app release with Beta versions (#4368) +- Linking ongoing trace to crash event (#4393) +- Edge case for swizzleClassNameExclude (#4405): Skip creating transactions for UIViewControllers ignored for swizzling +via the option `swizzleClassNameExclude`. + +## 8.37.0 + +### Features + +- Added `thermal_state` to device context (#4305) +- Send envelopes that cannot be cached to disk (#4294) + +### Refactoring + +- Moved session replay API to `SentrySDK.replay` (#4326) +- Changed default session replay quality to `medium` (#4326) + +### Fixes + +- Resumes replay when the app becomes active (#4303) +- Session replay redact view with transformation (#4308) +- Correct redact UIView with higher zPosition (#4309) +- Don't redact clipped views (#4325) +- Session replay for crash not created because of a race condition (#4314) +- Double-quoted include, expected angle-bracketed instead (#4298) +- Discontinue use of NSApplicationSupportDirectory in favor of NSCachesDirectory (#4335) +- Safe guard `strncpy` usage (#4336) +- Stop using `redactAllText` as an indicator tha redact is enabled (#4327) + +### Improvements + +- Avoid extra work when storing invalid envelopes (#4337) ## 8.37.0-beta.1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c168323f19f..181e64141f3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,9 +44,6 @@ Test guidelines: * Make use of the fixture pattern for test setup code. For examples, checkout [SentryClientTest](/Tests/SentryTests/SentryClientTest.swift) or [SentryHttpTransportTests](/Tests/SentryTests/SentryHttpTransportTests.swift). * Use [TestData](/Tests/SentryTests/Protocol/TestData.swift) when possible to avoid setting up data classes with test values. * Name the variable of the class you are testing `sut`, which stands for [system under test](https://en.wikipedia.org/wiki/System_under_test). -* We prefer using [Nimble](https://github.com/Quick/Nimble) over XCTest for test assertions. We can't use the latest Nimble version and are stuck -with [v10.0.0](https://github.com/Quick/Nimble/releases/tag/v10.0.0), cause it's the latest one that still supports Xcode 13.2.1, which we use in CI for -running our tests. [v11.0.0](https://github.com/Quick/Nimble/releases/tag/v11.0.0) already requires Swift 5.6 / Xcode 13.3. * When calling `SentrySDK.start` in a test, specify only the minimum integrations required to minimize side effects for tests and reduce flakiness. diff --git a/Gemfile.lock b/Gemfile.lock index 06189f19ef2..33df5df7291 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -24,7 +24,7 @@ GEM artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.981.0) + aws-partitions (1.986.0) aws-sdk-core (3.209.1) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) @@ -33,7 +33,7 @@ GEM aws-sdk-kms (1.94.0) aws-sdk-core (~> 3, >= 3.207.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.166.0) + aws-sdk-s3 (1.167.0) aws-sdk-core (~> 3, >= 3.207.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) @@ -97,7 +97,7 @@ GEM escape (0.0.4) ethon (0.16.0) ffi (>= 1.15.0) - excon (0.111.0) + excon (0.112.0) faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -127,7 +127,7 @@ GEM faraday_middleware (1.2.1) faraday (~> 1.0) fastimage (2.3.1) - fastlane (2.223.1) + fastlane (2.224.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -219,7 +219,7 @@ GEM concurrent-ruby (~> 1.0) jmespath (1.6.2) json (2.7.2) - jwt (2.9.1) + jwt (2.9.3) base64 logger (1.6.1) mime-types (3.5.1) @@ -292,13 +292,13 @@ GEM uber (0.1.0) unicode-display_width (2.6.0) word_wrap (1.0.0) - xcodeproj (1.25.0) + xcodeproj (1.25.1) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.3.0) - rexml (>= 3.3.2, < 4.0) + rexml (>= 3.3.6, < 4.0) xcpretty (0.3.0) rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) diff --git a/Makefile b/Makefile index c72a4a80666..987f06bd48a 100644 --- a/Makefile +++ b/Makefile @@ -50,6 +50,9 @@ test-alamofire: test-homekit: ./scripts/test-homekit.sh +test-ui-critical: + ./scripts/test-ui-critical.sh + analyze: rm -rf analyzer xcodebuild analyze -workspace Sentry.xcworkspace -scheme Sentry -configuration Release CLANG_ANALYZER_OUTPUT=html CLANG_ANALYZER_OUTPUT_DIR=analyzer -destination "platform=iOS Simulator,OS=latest,name=iPhone 11" CODE_SIGNING_ALLOWED="NO" | xcpretty -t && [[ -z `find analyzer -name "*.html"` ]] diff --git a/Package.swift b/Package.swift index 90bcacaa8af..a9a0d14bc61 100644 --- a/Package.swift +++ b/Package.swift @@ -12,13 +12,13 @@ let package = Package( targets: [ .binaryTarget( name: "Sentry", - url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.37.0-beta.1/Sentry.xcframework.zip", - checksum: "ec3883674ff8374d56f936d5d0155ffa01ee7bfadc31e086d768b6126843476d" //Sentry-Static + url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.38.0/Sentry.xcframework.zip", + checksum: "e2467151decc3a20f1b2afd47486ff97afa5fdc99272817e3db1d491b8105caa" //Sentry-Static ), .binaryTarget( name: "Sentry-Dynamic", - url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.37.0-beta.1/Sentry-Dynamic.xcframework.zip", - checksum: "fdd797fb6aec8830e5aa541f7d7eddabd435a9118853525f0ebd847b40e5c90d" //Sentry-Dynamic + url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.38.0/Sentry-Dynamic.xcframework.zip", + checksum: "1693d0280f08a23529640a95c49c4c975316bab442c5fa4408e6348988a33fc3" //Sentry-Dynamic ), .target ( name: "SentrySwiftUI", dependencies: ["Sentry", "SentryInternal"], diff --git a/README.md b/README.md index aa308219978..667f923caba 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,14 @@ _Bad software is everywhere, and we're tired of it. Sentry is on a mission to he This SDK is written in Objective-C but also provides a nice Swift interface. +# Releases + +This repo uses the following ways to release SDK updates: + +- `Pre-release`: We create pre-releases (alpha, beta, RC,…) for larger and potentially more impactful changes, such as new features or major versions. +- `Latest`: We continuously release major/minor/hotfix versions from the `main` branch. These releases go through all our internal quality gates and are very safe to use and intended to be the default for most teams. +- `Stable`: We promote releases from `Latest` when they have been used in the field for some time and in scale, considering time since release, adoption, and other quality and stability metrics. These releases will be indicated on the [releases page](https://github.com/getsentry/sentry-cocoa/releases/) with the `Stable` suffix. + **Where is the master branch?** We renamed the default branch from `master` to `main`. diff --git a/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/project.pbxproj b/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/project.pbxproj index 45484f91824..d3051035aa8 100644 --- a/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/project.pbxproj +++ b/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 6250B97C2CB69C96009512D6 /* NoARCCrash.m in Sources */ = {isa = PBXBuildFile; fileRef = 6250B97B2CB69C96009512D6 /* NoARCCrash.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 630853492440C46E00DDE4CE /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6308533B2440C45500DDE4CE /* Sentry.framework */; }; 6308534A2440C46E00DDE4CE /* Sentry.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6308533B2440C45500DDE4CE /* Sentry.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 637AFDCB243B036B0034958B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 637AFDCA243B036B0034958B /* AppDelegate.m */; }; @@ -95,6 +96,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 6250B9752CB69C86009512D6 /* NoARCCrash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoARCCrash.h; sourceTree = ""; }; + 6250B97B2CB69C96009512D6 /* NoARCCrash.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NoARCCrash.m; sourceTree = ""; }; 630853352440C45500DDE4CE /* Sentry.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Sentry.xcodeproj; path = ../../Sentry.xcodeproj; sourceTree = ""; }; 634C7EC724406A4900AFDE9F /* Sentry.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Sentry.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 637AFDC6243B036B0034958B /* iOS-ObjectiveC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "iOS-ObjectiveC.app"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -186,6 +189,8 @@ 637AFDD0243B036B0034958B /* ViewController.m */, 7B8A5C9C2715B5CF008ACD3B /* InitializerViewController.h */, 7B8A5C9D2715B5DE008ACD3B /* InitializerViewController.m */, + 6250B9752CB69C86009512D6 /* NoARCCrash.h */, + 6250B97B2CB69C96009512D6 /* NoARCCrash.m */, 637AFDD2243B036B0034958B /* Main.storyboard */, 637AFDD5243B036D0034958B /* Assets.xcassets */, 7B3427F925876DDB00056519 /* Tongariro.jpg */, @@ -415,6 +420,7 @@ 637AFDCB243B036B0034958B /* AppDelegate.m in Sources */, 84BA72AB2C9369A40045B828 /* GitInjections.swift in Sources */, 637AFDDC243B036D0034958B /* main.m in Sources */, + 6250B97C2CB69C96009512D6 /* NoARCCrash.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Samples/iOS-ObjectiveC/iOS-ObjectiveC/AppDelegate.m b/Samples/iOS-ObjectiveC/iOS-ObjectiveC/AppDelegate.m index 32063b5159d..12793889677 100644 --- a/Samples/iOS-ObjectiveC/iOS-ObjectiveC/AppDelegate.m +++ b/Samples/iOS-ObjectiveC/iOS-ObjectiveC/AppDelegate.m @@ -29,8 +29,8 @@ - (BOOL)application:(UIApplication *)application options.failedRequestStatusCodes = @[ httpStatusCodeRange ]; options.experimental.sessionReplay.quality = SentryReplayQualityMedium; - options.experimental.sessionReplay.redactAllText = true; - options.experimental.sessionReplay.redactAllImages = true; + options.experimental.sessionReplay.maskAllText = true; + options.experimental.sessionReplay.maskAllImages = true; options.experimental.sessionReplay.sessionSampleRate = 0; options.experimental.sessionReplay.onErrorSampleRate = 1; diff --git a/Samples/iOS-ObjectiveC/iOS-ObjectiveC/Base.lproj/Main.storyboard b/Samples/iOS-ObjectiveC/iOS-ObjectiveC/Base.lproj/Main.storyboard index 2c900cc5bf7..cc7f38e8d3b 100644 --- a/Samples/iOS-ObjectiveC/iOS-ObjectiveC/Base.lproj/Main.storyboard +++ b/Samples/iOS-ObjectiveC/iOS-ObjectiveC/Base.lproj/Main.storyboard @@ -1,9 +1,9 @@ - + - + @@ -24,7 +24,7 @@ - + - +