diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 5fddb1e91d9..119878ce8c5 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -48,11 +48,14 @@ jobs: - name: Download and Apply Patch run: ./apply-patch.sh "${{ github.event.pull_request.head.sha }}" "${{ github.sha }}" add-sentry-to-alamofire - - name: Install Firewalk - run: brew install alamofire/alamofire/firewalk + - name: Download Firewalk + run: curl "https://github.com/Alamofire/Firewalk/releases/download/0.8.1/firewalk.zip" --output firewalk.zip -L + + - name: Unzip Firewalk + run: Unzip "firewalk.zip" - name: Start Firewalk - run: firewalk & + run: ./firewalk & - name: Validate Firewalk is running run: curl http://localhost:8080/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 9996250df5d..a8b8831af6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,9 +10,10 @@ This version adds a dependency on Swift. ### Fixes -- Errors shortly after SentrySDK.init now affect the session (#2430) +- Errors shortly after `SentrySDK.init` now affect the session (#2430) - Use the same default environment for events and sessions (#2447) - Increase `SentryCrashMAX_STRINGBUFFERSIZE` to reduce the instances where we're dropping a crash due to size limit (#2465) +- `SentryAppStateManager` correctly unsubscribes from `NSNotificationCenter` when closing the SDK (#2460) ### Breaking Changes @@ -42,6 +43,13 @@ This version adds a dependency on Swift. - Rename `SentryOptions.enablePreWarmedAppStartTracking` to `enablePreWarmedAppStartTracing` - Rename `SentryOptions.enableFileIOTracking` to `enableFileIOTracing` - Rename `SentryOptions.enableCoreDataTracking` to `enableCoreDataTracing` + +## 7.31.3 + +### Fixes + +- Reporting crashes when restarting the SDK (#2440) +- Core data span status with error (#2439) ## 7.31.2 diff --git a/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj b/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj index 1e717cffe92..c1c94c626d4 100644 --- a/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj +++ b/Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj @@ -1111,7 +1111,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 7.31.2; + MARKETING_VERSION = 7.31.3; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.sample.iOS-Swift"; @@ -1140,7 +1140,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 7.31.2; + MARKETING_VERSION = 7.31.3; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.sample.iOS-Swift"; @@ -1785,7 +1785,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 7.31.2; + MARKETING_VERSION = 7.31.3; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift.Clip"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match Development io.sentry.sample.iOS-Swift.Clip"; @@ -1820,7 +1820,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 7.31.2; + MARKETING_VERSION = 7.31.3; PRODUCT_BUNDLE_IDENTIFIER = "io.sentry.sample.iOS-Swift.Clip"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "match AppStore io.sentry.sample.iOS-Swift.Clip"; diff --git a/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift b/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift index 3d273396dc3..eb0d35b2004 100644 --- a/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift +++ b/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift @@ -7,9 +7,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? static let defaultDSN = "https://6cc9bae94def43cab8444a99e0031c28@o447951.ingest.sentry.io/5428557" - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - + + static func startSentry() { // For testing purposes, we want to be able to change the DSN and store it to disk. In a real app, you shouldn't need this behavior. let dsn = DSNStorage.shared.getDSN() ?? AppDelegate.defaultDSN DSNStorage.shared.saveDSN(dsn: dsn) @@ -45,6 +44,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { let httpStatusCodeRange = HttpStatusCodeRange(min: 400, max: 599) options.failedRequestStatusCodes = [ httpStatusCodeRange ] } + } + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + + AppDelegate.startSentry() if #available(iOS 14.0, *) { metricKit.receiveReports() diff --git a/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard b/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard index 0ed14a09aba..029585c65a8 100644 --- a/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard +++ b/Samples/iOS-Swift/iOS-Swift/Base.lproj/Main.storyboard @@ -1,9 +1,9 @@ - + - + @@ -18,13 +18,13 @@ - + - + - + + + - +