diff --git a/.github/workflows/Prototype.yml b/.github/workflows/Prototype.yml index d1f2e17a..25f7a46c 100644 --- a/.github/workflows/Prototype.yml +++ b/.github/workflows/Prototype.yml @@ -149,7 +149,6 @@ jobs: KEYCHAIN_PATH: ${{ env.KEYCHAIN_PATH }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} PP_PATH: ${{ env.PP_PATH }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} run: | export LANG=en_US.UTF-8; export LANGUAGE=en_US:en; diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index f540b649..991bf3c8 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -226,7 +226,6 @@ jobs: KEYCHAIN_PATH: ${{ env.KEYCHAIN_PATH }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} PP_PATH: ${{ env.PP_PATH }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} run: | export LANG=en_US.UTF-8; export LANGUAGE=en_US:en; @@ -310,7 +309,6 @@ jobs: KEYCHAIN_PATH: ${{ env.KEYCHAIN_PATH }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} PP_PATH: ${{ env.PP_PATH }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} run: | export LANG=en_US.UTF-8; export LANGUAGE=en_US:en; diff --git a/Brewfile b/Brewfile index 47425eeb..f56a1485 100644 --- a/Brewfile +++ b/Brewfile @@ -2,8 +2,5 @@ brew "swiftgen" brew "swiftlint" brew "swiftformat" -tap "getsentry/tools" -brew "getsentry/tools/sentry-cli" - tap "mono0926/license-plist" brew "mono0926/license-plist/license-plist" diff --git a/BundesIdent.xcodeproj/project.pbxproj b/BundesIdent.xcodeproj/project.pbxproj index 86f628f9..fe742d52 100644 --- a/BundesIdent.xcodeproj/project.pbxproj +++ b/BundesIdent.xcodeproj/project.pbxproj @@ -64,7 +64,6 @@ E11EB2AD2853A8EA008B4042 /* SetupScreens.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11EB2AC2853A8EA008B4042 /* SetupScreens.swift */; }; E1234DB12976E0BC00837872 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1234DB02976E0BC00837872 /* SceneDelegate.swift */; }; E1234DB32976EA3900837872 /* BundLicensePlistViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1234DB22976EA3900837872 /* BundLicensePlistViewController.swift */; }; - E128E0BA288941DC00C5195F /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = E128E0B9288941DC00C5195F /* Sentry */; }; E128E0BC28898D3400C5195F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E128E0BB28898D3400C5195F /* AppDelegate.swift */; }; E12B2D682A1F9A2E00CC6045 /* ReviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E12B2D672A1F9A2E00CC6045 /* ReviewController.swift */; }; E12B2D6A2A1F9B4B00CC6045 /* SetupDoneTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E12B2D692A1F9B4B00CC6045 /* SetupDoneTests.swift */; }; @@ -392,7 +391,6 @@ 43269A702A0118B500093FD7 /* AusweisApp2SDKWrapper in Frameworks */, D2B76A7A28BE4B93000B442D /* Analytics in Frameworks */, B9F5055829361F69009FE297 /* TCACoordinators in Frameworks */, - E128E0BA288941DC00C5195F /* Sentry in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -899,7 +897,6 @@ ); name = BundesIdent; packageProductDependencies = ( - E128E0B9288941DC00C5195F /* Sentry */, E1BC3D8528B7E919007A7B39 /* LicensePlistViewController */, D2B76A7928BE4B93000B442D /* Analytics */, E144EBD528C63A31009B4900 /* MarkdownUI */, @@ -945,7 +942,6 @@ mainGroup = E5CEB271281041330076B9FE; packageReferences = ( E13925B928410F3F00161F5C /* XCRemoteSwiftPackageReference "Cuckoo" */, - E128E0B8288941DC00C5195F /* XCRemoteSwiftPackageReference "sentry-cocoa" */, E1BC3D8428B7E919007A7B39 /* XCRemoteSwiftPackageReference "LicensePlistViewController" */, E144EBD428C63A31009B4900 /* XCRemoteSwiftPackageReference "MarkdownUI" */, B9F5055629361F69009FE297 /* XCRemoteSwiftPackageReference "TCACoordinators" */, @@ -1952,14 +1948,6 @@ minimumVersion = 0.3.0; }; }; - E128E0B8288941DC00C5195F /* XCRemoteSwiftPackageReference "sentry-cocoa" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/getsentry/sentry-cocoa.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 7.0.0; - }; - }; E13925B928410F3F00161F5C /* XCRemoteSwiftPackageReference "Cuckoo" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/Brightify/Cuckoo"; @@ -2006,11 +1994,6 @@ isa = XCSwiftPackageProductDependency; productName = Analytics; }; - E128E0B9288941DC00C5195F /* Sentry */ = { - isa = XCSwiftPackageProductDependency; - package = E128E0B8288941DC00C5195F /* XCRemoteSwiftPackageReference "sentry-cocoa" */; - productName = Sentry; - }; E13925C1284110FD00161F5C /* Cuckoo */ = { isa = XCSwiftPackageProductDependency; package = E13925B928410F3F00161F5C /* XCRemoteSwiftPackageReference "Cuckoo" */; diff --git a/BundesIdent.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/BundesIdent.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 90485157..146d7036 100644 --- a/BundesIdent.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/BundesIdent.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -72,15 +72,6 @@ "revision" : "1d853c3b7acfdb6552f63666390e37374f87c5cd" } }, - { - "identity" : "sentry-cocoa", - "kind" : "remoteSourceControl", - "location" : "https://github.com/getsentry/sentry-cocoa.git", - "state" : { - "revision" : "cf43eac1aa12017868c257ad3854ad87a5de0758", - "version" : "7.31.5" - } - }, { "identity" : "swift-case-paths", "kind" : "remoteSourceControl", diff --git a/BundesIdent/AppConfig.swift b/BundesIdent/AppConfig.swift index d71fe158..9b9791fa 100644 --- a/BundesIdent/AppConfig.swift +++ b/BundesIdent/AppConfig.swift @@ -1,33 +1,20 @@ import Foundation import AVFAudio -import Sentry protocol AppConfigType { - var sentryDSN: String { get } var matomoSiteID: String { get } var matomoURL: URL { get } - func configureSentry(_ options: Options) func configureAudio() } struct AppConfig: AppConfigType { - let sentryDSN: String let matomoURL: URL let matomoSiteID: String let unleashURL: String let unleashClientKey: String init(bundle: Bundle) { - // Sentry - // swiftlint:disable force_cast - let sentryProjectID = bundle.infoDictionary!["SentryProjectID"] as! String - let sentryPublicKey = bundle.infoDictionary!["SentryPublicKey"] as! String - let sentryHost = bundle.infoDictionary!["SentryHost"] as! String - // swiftlint:enable force_cast - - sentryDSN = "https://\(sentryPublicKey)@\(sentryHost)/\(sentryProjectID)" - // Matomo // swiftlint:disable force_cast let matomoHost = bundle.infoDictionary!["MatomoHost"] as! String @@ -43,44 +30,6 @@ struct AppConfig: AppConfigType { // swiftlint:enable force_cast } - func configureSentry(_ options: Options) { - options.dsn = sentryDSN -#if DEBUG - options.enabled = false -#endif -#if SENTRY_DEBUG - options.debug = true -#endif - options.tracesSampleRate = 1.0 - - options.enableAutoPerformanceTracking = false - options.enableAutoBreadcrumbTracking = false - - options.enableNetworkBreadcrumbs = false - options.enableNetworkTracking = false - - options.attachViewHierarchy = false - options.enableUIViewControllerTracking = false - options.enableUserInteractionTracing = false - options.enableAppHangTracking = false - options.beforeSend = { - guard let context: [String: [String: Any]] = $0.context else { return $0 } - - let osKeys = Set(["version", "name"]) - let deviceKeys = Set(["family", "model", "model_id"]) - let appKeys = Set(["app_build", "app_version"]) - let newContext: [String: [String: Any]] = [ - "user info": context["user info"], - "os": context["os"]?.filter({ osKeys.contains($0.key) }), - "device": context["device"]?.filter({ deviceKeys.contains($0.key) }), - "app": context["app"]?.filter({ appKeys.contains($0.key) }) - ].compactMapValues({ $0 }) - - $0.context = newContext - return $0 - } - } - func configureAudio() { try? AVAudioSession.sharedInstance() .setCategory(.ambient, options: [.mixWithOthers]) diff --git a/BundesIdent/BundesIdentApp.swift b/BundesIdent/BundesIdentApp.swift index deda2f9b..7c3ae878 100644 --- a/BundesIdent/BundesIdentApp.swift +++ b/BundesIdent/BundesIdentApp.swift @@ -1,7 +1,6 @@ import SwiftUI import TCACoordinators import ComposableArchitecture -import Sentry import Analytics import XCTestDynamicOverlay @@ -13,8 +12,6 @@ struct BundesIdentApp: App { init() { let config = AppConfig(bundle: Bundle.main) - SentrySDK.start(configureOptions: config.configureSentry) - config.configureAudio() let userDefaults = UserDefaults.standard diff --git a/BundesIdent/Default.xcconfig b/BundesIdent/Default.xcconfig index db3e994e..29e4f1d5 100644 --- a/BundesIdent/Default.xcconfig +++ b/BundesIdent/Default.xcconfig @@ -1,4 +1,2 @@ -SENTRY_PROJECT_ID = 6589396 -SENTRY_PUBLIC_KEY = 70d55c1a01854e01a6360cc815b88d34 MATOMO_SITE_ID = 2 UNLEASH_CLIENT_KEY = *:development.d3f05ca02117c3949aa784da9bf7b3382a4e6b89929868a75c551a11 diff --git a/BundesIdent/Helpers/IssueTracker.swift b/BundesIdent/Helpers/IssueTracker.swift index 2c46e9f4..6eafb61a 100644 --- a/BundesIdent/Helpers/IssueTracker.swift +++ b/BundesIdent/Helpers/IssueTracker.swift @@ -1,30 +1,24 @@ -import Sentry import Analytics import OSLog -struct SentryIssueTracker: IssueTracker { - func addBreadcrumb(crumb: Breadcrumb) { - SentrySDK.addBreadcrumb(crumb: crumb) - } - - func capture(error: CustomNSError) { - SentrySDK.capture(error: error) +struct Breadcrumb { + enum Level: String { + case info } + + let level: Level + let category: String + var message: String? } extension IssueTracker { func addViewBreadcrumb(view: AnalyticsView) { - let breadcrumb = Breadcrumb() - breadcrumb.level = .info - breadcrumb.category = view.route.joined(separator: "/") + let breadcrumb = Breadcrumb(level: .info, category: view.route.joined(separator: "/")) addBreadcrumb(crumb: breadcrumb) } func addInfoBreadcrumb(category: String, message: String) { - let breadcrumb = Breadcrumb() - breadcrumb.level = .info - breadcrumb.category = category - breadcrumb.message = message + let breadcrumb = Breadcrumb(level: .info, category: category, message: message) addBreadcrumb(crumb: breadcrumb) } } @@ -32,7 +26,11 @@ extension IssueTracker { struct LogIssueTracker: IssueTracker { func addBreadcrumb(crumb: Breadcrumb) { - os_log(.debug, "Breadcrumb added: \(crumb)") + var literal = "[\(crumb.level.rawValue)] \(crumb.category)" + if let message = crumb.message { + literal.append(" \(message)") + } + os_log(.debug, "Breadcrumb added: \(literal)") } func capture(error: CustomNSError) { diff --git a/BundesIdent/Info.plist b/BundesIdent/Info.plist index 4173c389..5d5811df 100644 --- a/BundesIdent/Info.plist +++ b/BundesIdent/Info.plist @@ -19,12 +19,6 @@ bund.matomo.cloud MatomoSiteID $(MATOMO_SITE_ID) - SentryHost - o1248831.ingest.sentry.io - SentryProjectID - $(SENTRY_PROJECT_ID) - SentryPublicKey - $(SENTRY_PUBLIC_KEY) UIAppFonts BundesSans-DTP-Regular.otf diff --git a/BundesIdent/Preview.xcconfig b/BundesIdent/Preview.xcconfig index a1219e0f..2ef7fbec 100644 --- a/BundesIdent/Preview.xcconfig +++ b/BundesIdent/Preview.xcconfig @@ -1,3 +1 @@ -SENTRY_PROJECT_ID = 6589396 -SENTRY_PUBLIC_KEY = 70d55c1a01854e01a6360cc815b88d34 MATOMO_SITE_ID = 2 diff --git a/BundesIdent/Prototype.xcconfig b/BundesIdent/Prototype.xcconfig index 9e15a436..9b5ace44 100644 --- a/BundesIdent/Prototype.xcconfig +++ b/BundesIdent/Prototype.xcconfig @@ -1,3 +1 @@ -SENTRY_PROJECT_ID = -SENTRY_PUBLIC_KEY = MATOMO_SITE_ID = 5 diff --git a/BundesIdent/Release.xcconfig b/BundesIdent/Release.xcconfig index 885d3bb2..39fd4ed0 100644 --- a/BundesIdent/Release.xcconfig +++ b/BundesIdent/Release.xcconfig @@ -1,4 +1,2 @@ -SENTRY_PROJECT_ID = 6589505 -SENTRY_PUBLIC_KEY = 81bc611af42347bc8d7b487f807f9577 MATOMO_SITE_ID = 3 UNLEASH_CLIENT_KEY = *:production.cf4117e736dba7c96d1d3cf714ecec1e8d88e243f5285928d0ef3e6f diff --git a/BundesIdent/TCA/Coordinator.swift b/BundesIdent/TCA/Coordinator.swift index d1386920..9d011cb8 100644 --- a/BundesIdent/TCA/Coordinator.swift +++ b/BundesIdent/TCA/Coordinator.swift @@ -2,7 +2,6 @@ import ComposableArchitecture import TCACoordinators import SwiftUI import Analytics -import Sentry enum HandleURLError: Error, CustomStringConvertible, CustomNSError { case componentsInvalid diff --git a/BundesIdent/TCA/Dependencies.swift b/BundesIdent/TCA/Dependencies.swift index 28679497..d3aafe0f 100644 --- a/BundesIdent/TCA/Dependencies.swift +++ b/BundesIdent/TCA/Dependencies.swift @@ -48,7 +48,7 @@ enum StorageManagerKey: DependencyKey { } enum IssueTrackerKey: DependencyKey { - static var liveValue: IssueTracker = SentryIssueTracker() + static var liveValue: IssueTracker = LogIssueTracker() static var testValue: IssueTracker = LogIssueTracker() } diff --git a/BundesIdent/Types/Types.swift b/BundesIdent/Types/Types.swift index bbc84307..a7d5fd83 100644 --- a/BundesIdent/Types/Types.swift +++ b/BundesIdent/Types/Types.swift @@ -2,7 +2,6 @@ import Foundation import Combine -import Sentry protocol EIDInteractionManagerType { func identify(tokenURL: URL, messages: ScanOverlayMessages) -> EIDInteractionPublisher diff --git a/BundesIdent/Views/Identification/IdentificationCANScan.swift b/BundesIdent/Views/Identification/IdentificationCANScan.swift index cd13c4c8..7a831ac8 100644 --- a/BundesIdent/Views/Identification/IdentificationCANScan.swift +++ b/BundesIdent/Views/Identification/IdentificationCANScan.swift @@ -1,7 +1,6 @@ import SwiftUI import ComposableArchitecture import Combine -import Sentry struct IdentificationCANScan: ReducerProtocol { diff --git a/BundesIdent/Views/Identification/IdentificationOverview/IdentificationOverviewLoading.swift b/BundesIdent/Views/Identification/IdentificationOverview/IdentificationOverviewLoading.swift index 85f26c60..c17bba2d 100644 --- a/BundesIdent/Views/Identification/IdentificationOverview/IdentificationOverviewLoading.swift +++ b/BundesIdent/Views/Identification/IdentificationOverview/IdentificationOverviewLoading.swift @@ -1,6 +1,5 @@ import ComposableArchitecture import SwiftUI -import Sentry struct IdentificationOverviewLoading: ReducerProtocol { @Dependency(\.issueTracker) var issueTracker diff --git a/BundesIdent/Views/Identification/IdentificationPINScan.swift b/BundesIdent/Views/Identification/IdentificationPINScan.swift index 120b1734..062a51c9 100644 --- a/BundesIdent/Views/Identification/IdentificationPINScan.swift +++ b/BundesIdent/Views/Identification/IdentificationPINScan.swift @@ -1,7 +1,6 @@ import SwiftUI import ComposableArchitecture import Combine -import Sentry enum IdentificationScanError: Error, Equatable, CustomNSError { case eIDInteraction(EIDInteractionError) diff --git a/BundesIdent/Views/Setup/SetupCANScan.swift b/BundesIdent/Views/Setup/SetupCANScan.swift index fc2777d6..026b3373 100644 --- a/BundesIdent/Views/Setup/SetupCANScan.swift +++ b/BundesIdent/Views/Setup/SetupCANScan.swift @@ -1,7 +1,6 @@ import SwiftUI import ComposableArchitecture import Combine -import Sentry struct SetupCANScan: ReducerProtocol { diff --git a/BundesIdent/Views/Setup/SetupScan.swift b/BundesIdent/Views/Setup/SetupScan.swift index a367be6a..e0b2b16b 100644 --- a/BundesIdent/Views/Setup/SetupScan.swift +++ b/BundesIdent/Views/Setup/SetupScan.swift @@ -1,7 +1,6 @@ import SwiftUI import ComposableArchitecture import Combine -import Sentry import OSLog struct SetupScan: ReducerProtocol { diff --git a/BundesIdentTests/Managers/UnleashManagerTests.swift b/BundesIdentTests/Managers/UnleashManagerTests.swift index 38aaa166..674f2346 100644 --- a/BundesIdentTests/Managers/UnleashManagerTests.swift +++ b/BundesIdentTests/Managers/UnleashManagerTests.swift @@ -1,7 +1,6 @@ import XCTest import Analytics import Cuckoo -import Sentry @testable import BundesIdent final class UnleashManagerTests: XCTestCase { diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 1acaedc9..5b27f354 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -161,11 +161,6 @@ platform :ios do desc 'Deliver Preview' lane :deliverPreview do |options| make_screenshots = options[:screenshots] == true - sentry_upload_dsym( - auth_token: ENV['SENTRY_AUTH_TOKEN'], - org_slug: 'digitalservice', - project_slug: 'useid-preview-ios', - ) upload_to_testflight( api_key_path: ENV['APPSTORECONNECT_API_KEY_PATH'], skip_waiting_for_build_processing: true @@ -205,11 +200,6 @@ platform :ios do desc 'Deliver Production' lane :deliverProduction do |options| make_screenshots = options[:screenshots] == true - sentry_upload_dsym( - auth_token: ENV['SENTRY_AUTH_TOKEN'], - org_slug: 'digitalservice', - project_slug: 'useid-ios', - ) upload_to_testflight( api_key_path: ENV['APPSTORECONNECT_API_KEY_PATH'], skip_waiting_for_build_processing: true