diff --git a/.github/file-filters.yml b/.github/file-filters.yml index a5407a6ab26..65d9ef1f54a 100644 --- a/.github/file-filters.yml +++ b/.github/file-filters.yml @@ -1,4 +1,4 @@ -# This is used by the action https://github.com/dorny/paths-filter (which we have forked to https://github.com/getsentry/paths-filter) +# This is used by the action https://github.com/dorny/paths-filter high_risk_code: &high_risk_code - 'Sources/Sentry/SentryNSURLSessionTaskSearch.m' diff --git a/.github/last-release-runid b/.github/last-release-runid index eb163fc51a4..8f588bb000d 100644 --- a/.github/last-release-runid +++ b/.github/last-release-runid @@ -1 +1 @@ -8538785668 +9064167907 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a86689c0ead..4589ad56069 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -149,6 +149,7 @@ jobs: - uses: actions/download-artifact@v4 with: name: ${{ github.sha }} + path: Carthage/ - run: ./scripts/ci-select-xcode.sh 15.2 - run: make build-xcframework-sample shell: sh diff --git a/.github/workflows/changes-in-high-risk-code.yml b/.github/workflows/changes-in-high-risk-code.yml index e822fe9c8d2..bc93f2e2352 100644 --- a/.github/workflows/changes-in-high-risk-code.yml +++ b/.github/workflows/changes-in-high-risk-code.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v4 - name: Get changed files id: changes - uses: getsentry/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 with: token: ${{ github.token }} filters: .github/file-filters.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c7a436b3b31..7099eb68da7 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -29,7 +29,7 @@ jobs: uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@cdcdbb579706841c47f7063dda365e292e5cad7a # pin@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} @@ -42,4 +42,4 @@ jobs: -destination platform="iOS Simulator,OS=latest,name=iPhone 14 Pro" | xcpretty && exit ${PIPESTATUS[0]} - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@cdcdbb579706841c47f7063dda365e292e5cad7a # pin@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a37e4efd9e0..80146e2594e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,6 +35,7 @@ jobs: Carthage/Sentry.xcframework.zip Carthage/Sentry-Dynamic.xcframework.zip Carthage/SentrySwiftUI.xcframework.zip + Carthage/Sentry-WihoutUIKitOrAppKit.zip overwrite: true job_release: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9995aed4d3c..ae098939acd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,14 +20,6 @@ on: - ".codecov.yml" - Sentry.xcodeproj - # run the workflow any time an Xcode scheme changes for a sample app - - "Samples/tvOS-Swift/tvOS-Swift.xcodeproj/xcshareddata/xcschemes/tvOS-Swift.xcscheme" - - "Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS13-Swift.xcscheme" - - "Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftUITests.xcscheme" - - "Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift.xcscheme" - - "Samples/macOS-Swift/macOS-Swift.xcodeproj/xcshareddata/xcschemes/macOS-Swift.xcscheme" - - "Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/xcshareddata/xcschemes/iOS-ObjectiveC.xcscheme" - # 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 }} @@ -246,7 +238,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@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # pin@v4.1.1 + uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # pin@v4.3.1 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 @@ -258,7 +250,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@c16abc29c95fcf9174b58eb7e1abf4c866893bc8 # pin@v4.1.1 + uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # pin@v4.3.1 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.yml b/.github/workflows/ui-tests.yml index 5509297eacb..27e9824d6a1 100644 --- a/.github/workflows/ui-tests.yml +++ b/.github/workflows/ui-tests.yml @@ -14,7 +14,7 @@ on: - 'scripts/ci-select-xcode.sh' # run the workflow any time an Xcode scheme changes for one of the sample apps with a UI test suite we run in saucelabs - - 'Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftUITests.xcscheme' + - 'Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift-UITests.xcscheme' - 'Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift.xcscheme' @@ -78,7 +78,7 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ failure() || cancelled() }} with: - name: raw-swiftui-test-output-${{matrix.platform}}-xcode-${{matrix.xcode}}-os-${{matrix.test-destination-os}} + name: raw-ios-swiftui-test-output-xcode-${{matrix.xcode}}-${{matrix.device}} path: | ~/Library/Logs/scan/*.log ./fastlane/test_output/** @@ -148,7 +148,7 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ failure() || cancelled() }} with: - name: raw-uitest-output-asan + name: raw-ios-swift-test-output-${{matrix.xcode}}-${{matrix.device}} path: | ~/Library/Logs/scan/*.log ./fastlane/test_output/** diff --git a/CHANGELOG.md b/CHANGELOG.md index d63aae1f398..c166181b7e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,97 @@ ## Unreleased +### Fixes + +- Fix retrieving GraphQL operation names crashing ([#3973](https://github.com/getsentry/sentry-cocoa/pull/3973)) + +## 8.26.0 + +### Features + +- Add SIGTERM support ([#3895](https://github.com/getsentry/sentry-cocoa/pull/3895)) + +### Fixes + +- Fix data race when calling reportFullyDisplayed from a background thread (#3926) +- Ensure flushing envelopes directly after capturing them (#3915) +- Unable to find class: SentryCrashExceptionApplication (#3957) +- Clang error for Xcode 15.4 (#3958) +- Potential deadlock when starting the SDK (#3970) + +### Improvements + +- Send Cocoa SDK features (#3948) + +## 8.25.2 + +### Features + +The following two features, disabled by default, were mistakenly added to the release. We usually only add features in minor releases. + +- Add option to use own NSURLSession for transport (#3811) +- Support sending GraphQL operation names in HTTP breadcrumbs (#3931) + +### Fixes + +- 'SentryFileManager+Test.h' file not found (#3950) + +## 8.25.1 + +### Fixes + +- Ignore SentryFramesTracker thread sanitizer data races (#3922) +- Handle no releaseName in WatchDogTerminationLogic (#3919) +- Stop SessionReplay when closing SDK (#3941) + +### Improvements + +- Remove not needed lock for logging (#3934) +- Session replay Improvements (#3877) + - Use image average color and text font color to redact session replay + - Removed iOS 16 restriction from session replay + - Performance improvement + +## 8.25.0 + +### Features + +- Add Session Replay, which is **still experimental**. (#3625) + - Access is limited to early access orgs on Sentry. If you're interested, [sign up for the waitlist](https://sentry.io/lp/mobile-replay-beta/) + +### Fixes + +- Crash due to a background call to -[UIApplication applicationState] (#3855) +- Save framework without UIKit/AppKit as Github Asset for releases (#3858) +- Fix crash associated with runtime collision in global C function names (#3862) +- Remove wrong error log in SentryCoreDataTracker (#3894) +- Don't transmit device boot time in envelopes enriched with crash data (#3912, #3916) + +### Improvements + +- Capture transactions on a background thread (#3892) + +## 8.25.0-alpha.0 + +### Features + +- Add Session Replay, which is **still experimental**. (#3625) + - Access is limited to early access orgs on Sentry. If you're interested, [sign up for the waitlist](https://sentry.io/lp/mobile-replay-beta/) + +### Fixes + +- Crash due to a background call to -[UIApplication applicationState] (#3855) +- Save framework without UIKit/AppKit as Github Asset for releases (#3858) +- Fix crash associated with runtime collision in global C function names (#3862) +- Remove wrong error log in SentryCoreDataTracker (#3894) + +## 8.24.0 + ### Features - Add timing API for Metrics (#3812): +- Add [rate limiting](https://develop.sentry.dev/sdk/rate-limiting/) for Metrics (#3838) +- Data normalization for Metrics (#3843) ## 8.23.0 diff --git a/Gemfile.lock b/Gemfile.lock index c7b08f191de..2186a10e016 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -226,7 +226,7 @@ GEM mime-types-data (3.2023.1003) mini_magick (4.12.0) mini_mime (1.1.5) - mini_portile2 (2.8.5) + mini_portile2 (2.8.6) minitest (5.22.2) molinillo (0.8.0) multi_json (1.15.0) @@ -237,7 +237,7 @@ GEM naturally (2.2.1) netrc (0.11.0) nkf (0.2.0) - nokogiri (1.16.2) + nokogiri (1.16.5) mini_portile2 (~> 2.8.2) racc (~> 1.4) optparse (0.4.0) diff --git a/LICENSE.md b/LICENSE.md index 5a483f25178..95b14dbf956 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 Sentry +Copyright (c) 2015-2024 Sentry Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile index 70717268578..018641e1c94 100644 --- a/Makefile +++ b/Makefile @@ -65,6 +65,7 @@ build-xcframework: ditto -c -k -X --rsrc --keepParent Carthage/Sentry.xcframework Carthage/Sentry.xcframework.zip ditto -c -k -X --rsrc --keepParent Carthage/Sentry-Dynamic.xcframework Carthage/Sentry-Dynamic.xcframework.zip ditto -c -k -X --rsrc --keepParent Carthage/SentrySwiftUI.xcframework Carthage/SentrySwiftUI.xcframework.zip + ditto -c -k -X --rsrc --keepParent Carthage/Sentry-WihoutUIKitOrAppKit.xcframework Carthage/Sentry-WihoutUIKitOrAppKit.zip build-xcframework-sample: ./scripts/create-carthage-json.sh diff --git a/Package.swift b/Package.swift index 17a4539bba3..9bf4ade9564 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.23.0/Sentry.xcframework.zip", - checksum: "f6d5e846ee979671211ff526fe7600f7d7b6348940314b2b76e5b64901165e26" //Sentry-Static + url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.26.0/Sentry.xcframework.zip", + checksum: "f56ecefdc9db1f0801a99a9a929a035c1a2458ed5ff25f8d0d10727bb5c435a6" //Sentry-Static ), .binaryTarget( name: "Sentry-Dynamic", - url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.23.0/Sentry-Dynamic.xcframework.zip", - checksum: "33ed13e177056530d3fb4fdecf48d573a631c776b08952b839cc4d5a7157f327" //Sentry-Dynamic + url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.26.0/Sentry-Dynamic.xcframework.zip", + checksum: "8eb5cf92d5b4fbc3acb86ca1fbf9834a48ee64601154608a2b62ba4a40b8cc5b" //Sentry-Dynamic ), .target ( name: "SentrySwiftUI", dependencies: ["Sentry", "SentryInternal"], diff --git a/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/xcshareddata/xcschemes/iOS-ObjectiveC.xcscheme b/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/xcshareddata/xcschemes/iOS-ObjectiveC.xcscheme deleted file mode 100644 index f08e9a04e02..00000000000 --- a/Samples/iOS-ObjectiveC/iOS-ObjectiveC.xcodeproj/xcshareddata/xcschemes/iOS-ObjectiveC.xcscheme +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/BaseUITest.swift b/Samples/iOS-Swift/iOS-Swift-UITests/BaseUITest.swift similarity index 100% rename from Samples/iOS-Swift/iOS-SwiftUITests/BaseUITest.swift rename to Samples/iOS-Swift/iOS-Swift-UITests/BaseUITest.swift diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/Info.plist b/Samples/iOS-Swift/iOS-Swift-UITests/Info.plist similarity index 100% rename from Samples/iOS-Swift/iOS-SwiftUITests/Info.plist rename to Samples/iOS-Swift/iOS-Swift-UITests/Info.plist diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/LaunchUITests.swift b/Samples/iOS-Swift/iOS-Swift-UITests/LaunchUITests.swift similarity index 98% rename from Samples/iOS-Swift/iOS-SwiftUITests/LaunchUITests.swift rename to Samples/iOS-Swift/iOS-Swift-UITests/LaunchUITests.swift index ee4d91c4937..fb806fe977a 100644 --- a/Samples/iOS-Swift/iOS-SwiftUITests/LaunchUITests.swift +++ b/Samples/iOS-Swift/iOS-Swift-UITests/LaunchUITests.swift @@ -2,7 +2,7 @@ import XCTest class LaunchUITests: BaseUITest { - func testCrashRecovery() { + func testCrashRecovery() throws { //We will be removing this test from iOS 12 because it fails during CI, which looks like a bug that we cannot reproduce. //If we introduce a bug in the crash report process we will catch it with tests for iOS 13 or above. //For some reason is not possible to use @available(iOS 13, *) in the test function. @@ -14,6 +14,8 @@ class LaunchUITests: BaseUITest { app.launch() waitForExistenceOfMainScreen() + } else { + throw XCTSkip("Only run on iOS 13 or later.") } } diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/ProfilingUITests.swift b/Samples/iOS-Swift/iOS-Swift-UITests/ProfilingUITests.swift similarity index 100% rename from Samples/iOS-Swift/iOS-SwiftUITests/ProfilingUITests.swift rename to Samples/iOS-Swift/iOS-Swift-UITests/ProfilingUITests.swift diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/TopViewControllerTests.swift b/Samples/iOS-Swift/iOS-Swift-UITests/TopViewControllerTests.swift similarity index 100% rename from Samples/iOS-Swift/iOS-SwiftUITests/TopViewControllerTests.swift rename to Samples/iOS-Swift/iOS-Swift-UITests/TopViewControllerTests.swift diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/UIEventBreadcrumbTests.swift b/Samples/iOS-Swift/iOS-Swift-UITests/UIEventBreadcrumbTests.swift similarity index 100% rename from Samples/iOS-Swift/iOS-SwiftUITests/UIEventBreadcrumbTests.swift rename to Samples/iOS-Swift/iOS-Swift-UITests/UIEventBreadcrumbTests.swift diff --git a/Samples/iOS-Swift/iOS-SwiftUITests/UITestHelpers.swift b/Samples/iOS-Swift/iOS-Swift-UITests/UITestHelpers.swift similarity index 100% rename from Samples/iOS-Swift/iOS-SwiftUITests/UITestHelpers.swift rename to Samples/iOS-Swift/iOS-Swift-UITests/UITestHelpers.swift diff --git a/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj b/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj index 634538f37df..301f865ac00 100644 --- a/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj +++ b/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj @@ -291,7 +291,7 @@ 7B4F33F7271EBD2500C8591E /* SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUI.swift; sourceTree = ""; }; 7B4F33FA271EBE0C00C8591E /* SwiftUIViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIViewController.swift; sourceTree = ""; }; 7B5525B22938B5B5006A2932 /* DiskWriteException.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiskWriteException.swift; sourceTree = ""; }; - 7B64386826A6C544000D0F65 /* iOS-SwiftUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS-SwiftUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7B64386826A6C544000D0F65 /* iOS-Swift-UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS-Swift-UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 7B64386A26A6C544000D0F65 /* LaunchUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchUITests.swift; sourceTree = ""; }; 7B64386C26A6C544000D0F65 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7B79000329028C7300A7F467 /* MetricKitManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetricKitManager.swift; sourceTree = ""; }; @@ -439,7 +439,7 @@ 848A2576286E3490008A8858 /* PerformanceBenchmarks */, 6308532C2440C44F00DDE4CE /* Sentry.xcodeproj */, 637AFDA8243B02760034958B /* iOS-Swift */, - 7B64386926A6C544000D0F65 /* iOS-SwiftUITests */, + 7B64386926A6C544000D0F65 /* iOS-Swift-UITests */, D840D521273A07F400CDF142 /* iOS-SwiftClip */, D8269A3A274C095E00BD5BD5 /* iOS13-Swift */, D85DAA4A274C244F004DF43C /* iOS13-SwiftTests */, @@ -454,7 +454,7 @@ isa = PBXGroup; children = ( 637AFDA6243B02760034958B /* iOS-Swift.app */, - 7B64386826A6C544000D0F65 /* iOS-SwiftUITests.xctest */, + 7B64386826A6C544000D0F65 /* iOS-Swift-UITests.xctest */, D840D520273A07F400CDF142 /* iOS-SwiftClip.app */, D8269A39274C095E00BD5BD5 /* iOS13-Swift.app */, D85DAA49274C244F004DF43C /* iOS13-SwiftTests.xctest */, @@ -487,7 +487,7 @@ path = "iOS-Swift"; sourceTree = ""; }; - 7B64386926A6C544000D0F65 /* iOS-SwiftUITests */ = { + 7B64386926A6C544000D0F65 /* iOS-Swift-UITests */ = { isa = PBXGroup; children = ( D83A30DF279F1F5C00372D0A /* fatal-error-binary-images-message2.json */, @@ -502,7 +502,7 @@ 7B64386C26A6C544000D0F65 /* Info.plist */, D8832B1B2AF5101300C522B0 /* TopViewControllerTests.swift */, ); - path = "iOS-SwiftUITests"; + path = "iOS-Swift-UITests"; sourceTree = ""; }; 848A2576286E3490008A8858 /* PerformanceBenchmarks */ = { @@ -647,9 +647,9 @@ productReference = 637AFDA6243B02760034958B /* iOS-Swift.app */; productType = "com.apple.product-type.application"; }; - 7B64386726A6C544000D0F65 /* iOS-SwiftUITests */ = { + 7B64386726A6C544000D0F65 /* iOS-Swift-UITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 7B64387226A6C544000D0F65 /* Build configuration list for PBXNativeTarget "iOS-SwiftUITests" */; + buildConfigurationList = 7B64387226A6C544000D0F65 /* Build configuration list for PBXNativeTarget "iOS-Swift-UITests" */; buildPhases = ( 7B64386426A6C544000D0F65 /* Sources */, 7B64386526A6C544000D0F65 /* Frameworks */, @@ -662,11 +662,11 @@ D83A30CB279F075800372D0A /* PBXTargetDependency */, 7B64386E26A6C544000D0F65 /* PBXTargetDependency */, ); - name = "iOS-SwiftUITests"; + name = "iOS-Swift-UITests"; packageProductDependencies = ( ); productName = "iOS-SwiftUITests"; - productReference = 7B64386826A6C544000D0F65 /* iOS-SwiftUITests.xctest */; + productReference = 7B64386826A6C544000D0F65 /* iOS-Swift-UITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; 848A2560286E3351008A8858 /* PerformanceBenchmarks */ = { @@ -799,7 +799,7 @@ projectRoot = ""; targets = ( 637AFDA5243B02760034958B /* iOS-Swift */, - 7B64386726A6C544000D0F65 /* iOS-SwiftUITests */, + 7B64386726A6C544000D0F65 /* iOS-Swift-UITests */, 848A2560286E3351008A8858 /* PerformanceBenchmarks */, D840D51F273A07F400CDF142 /* iOS-SwiftClip */, D8269A38274C095E00BD5BD5 /* iOS13-Swift */, @@ -1248,7 +1248,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.23.0; + MARKETING_VERSION = 8.26.0; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.sample.iOS-Swift"; @@ -1277,7 +1277,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.23.0; + MARKETING_VERSION = 8.26.0; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.sample.iOS-Swift"; @@ -1296,14 +1296,14 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = 97JCY7859U; - INFOPLIST_FILE = "iOS-SwiftUITests/Info.plist"; + INFOPLIST_FILE = "iOS-Swift-UITests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-SwiftUITests"; + PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-Swift-UITests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.iOS-SwiftUITests.xctrunner"; "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; @@ -1320,14 +1320,14 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = 97JCY7859U; - INFOPLIST_FILE = "iOS-SwiftUITests/Info.plist"; + INFOPLIST_FILE = "iOS-Swift-UITests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-SwiftUITests"; + PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-Swift-UITests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.iOS-SwiftUITests.xctrunner"; "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; @@ -1482,14 +1482,14 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = 97JCY7859U; - INFOPLIST_FILE = "iOS-SwiftUITests/Info.plist"; + INFOPLIST_FILE = "iOS-Swift-UITests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-SwiftUITests"; + PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-Swift-UITests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.iOS-SwiftUITests.xctrunner"; "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; @@ -1707,14 +1707,14 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = 97JCY7859U; - INFOPLIST_FILE = "iOS-SwiftUITests/Info.plist"; + INFOPLIST_FILE = "iOS-Swift-UITests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-SwiftUITests"; + PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.iOS-Swift-UITests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.iOS-SwiftUITests.xctrunner"; "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; @@ -1926,7 +1926,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.23.0; + MARKETING_VERSION = 8.26.0; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift.Clip"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.sample.iOS-Swift.Clip"; @@ -1961,7 +1961,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.23.0; + MARKETING_VERSION = 8.26.0; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift.Clip"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.sample.iOS-Swift.Clip"; @@ -2040,7 +2040,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7B64387226A6C544000D0F65 /* Build configuration list for PBXNativeTarget "iOS-SwiftUITests" */ = { + 7B64387226A6C544000D0F65 /* Build configuration list for PBXNativeTarget "iOS-Swift-UITests" */ = { isa = XCConfigurationList; buildConfigurations = ( 7B64386F26A6C544000D0F65 /* Debug */, diff --git a/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift.xcscheme b/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift.xcscheme index be27eeb600c..5c9ed68d793 100644 --- a/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift.xcscheme +++ b/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-Swift.xcscheme @@ -33,8 +33,8 @@ @@ -73,6 +73,10 @@ argument = "--disable-file-io-tracing" isEnabled = "NO"> + + diff --git a/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftClip.xcscheme b/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftClip.xcscheme deleted file mode 100644 index 76a81269831..00000000000 --- a/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftClip.xcscheme +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftUITests.xcscheme b/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftUITests.xcscheme deleted file mode 100644 index 37a4ca1e81a..00000000000 --- a/Samples/iOS-Swift/iOS-Swift.xcodeproj/xcshareddata/xcschemes/iOS-SwiftUITests.xcscheme +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift b/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift index 5bf093e78b7..6b894c1f56f 100644 --- a/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift +++ b/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift @@ -17,13 +17,17 @@ class AppDelegate: UIResponder, UIApplicationDelegate { let dsn = DSNStorage.shared.getDSN() ?? AppDelegate.defaultDSN DSNStorage.shared.saveDSN(dsn: dsn) - SentrySDK.start { options in + SentrySDK.start(configureOptions: { options in options.dsn = dsn options.beforeSend = { event in return event } options.debug = true + if #available(iOS 16.0, *) { + options.experimental.sessionReplay = SentryReplayOptions(sessionSampleRate: 1, errorSampleRate: 1, redactAllText: true, redactAllImages: true) + } + if #available(iOS 15.0, *) { options.enableMetricKit = true } @@ -60,7 +64,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { options.sessionTrackingIntervalMillis = 5_000 options.attachScreenshot = true options.attachViewHierarchy = true - + #if targetEnvironment(simulator) options.enableSpotlight = true options.environment = "test-app" @@ -71,6 +75,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { options.enableTimeToFullDisplayTracing = true options.enablePerformanceV2 = true options.enableMetrics = true + options.enableContinuousProfiling = ProcessInfo.processInfo.arguments.contains("--enable-continuous-profiling") options.add(inAppInclude: "iOS_External") @@ -130,7 +135,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } return scope } - } + }) SentrySDK.metrics.increment(key: "app.start", value: 1.0, tags: ["view": "app-delegate"]) diff --git a/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard b/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard index 99d889c2667..43363350dc6 100644 --- a/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard +++ b/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard @@ -518,7 +518,7 @@ - + @@ -686,13 +686,13 @@ - + - + - +