From a1594f01b0461148a79b25205f7aa735c5fe8274 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Mon, 15 Jul 2024 15:18:52 -0400 Subject: [PATCH 01/39] Update Crash CoreData and Data Model Add CoreDataClass and CoreDataProperties NSManagedObject subclasses Disable code Generation Remove .xcdatamodeld from Compile Sources Build Phase --- Backtrace.xcodeproj/project.pbxproj | 22 ++++++++++++++----- .../Resources/Crash+CoreDataClass.swift | 5 +++++ .../Resources/Crash+CoreDataProperties.swift | 16 ++++++++++++++ .../Model.xcdatamodel/contents | 4 ++-- 4 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 Sources/Features/Resources/Crash+CoreDataClass.swift create mode 100644 Sources/Features/Resources/Crash+CoreDataProperties.swift diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 0cb7ef18..ffbcc530 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -10,6 +10,12 @@ 0B6B4CFD25CD8331002DA15C /* BacktraceOomWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */; }; 0B6B4CFE25CD8331002DA15C /* BacktraceOomWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */; }; 0B6B4CFF25CD8331002DA15C /* BacktraceOomWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */; }; + 2062D9C62C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */; }; + 2062D9C72C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */; }; + 2062D9C82C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */; }; + 2062D9C92C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */; }; + 2062D9CA2C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */; }; + 2062D9CB2C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */; }; 282C85E7223FD8E70014FE75 /* BacktraceCrashExceptionApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 282C85E6223FD8E70014FE75 /* BacktraceCrashExceptionApplication.swift */; }; 2846E1F8222F1DE60035F98C /* NetworkReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2846E1F7222F1DE50035F98C /* NetworkReachability.swift */; }; 2846E1F9222F1DE60035F98C /* NetworkReachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2846E1F7222F1DE50035F98C /* NetworkReachability.swift */; }; @@ -250,7 +256,6 @@ F28F165921E2A0DA008E4B96 /* URLSession+Sync.swift in Sources */ = {isa = PBXBuildFile; fileRef = F28F165721E2A0DA008E4B96 /* URLSession+Sync.swift */; }; F29959AB225539960085B5C3 /* BacktraceCrashReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F21211A4222348AC000B3692 /* BacktraceCrashReporter.swift */; }; F29959AC2255399B0085B5C3 /* BacktraceReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = F282075721CEA31F0017367F /* BacktraceReport.swift */; }; - F29959AD22553B340085B5C3 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F2AB639A22479A3200939BC9 /* Model.xcdatamodeld */; }; F29CD78D21FC6BC700216C59 /* BacktraceFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F29CD78C21FC6BC700216C59 /* BacktraceFileManager.swift */; }; F29CD78E21FC6BC700216C59 /* BacktraceFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F29CD78C21FC6BC700216C59 /* BacktraceFileManager.swift */; }; F29CD79121FCC25600216C59 /* BacktraceWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = F29CD79021FCC25600216C59 /* BacktraceWatcher.swift */; }; @@ -274,8 +279,6 @@ F2AB637F22464FD500939BC9 /* DebuggerCheckerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AB637D22464FD500939BC9 /* DebuggerCheckerMock.swift */; }; F2AB63812246E16400939BC9 /* ReportingPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AB63802246E16400939BC9 /* ReportingPolicy.swift */; }; F2AB63822246E16400939BC9 /* ReportingPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AB63802246E16400939BC9 /* ReportingPolicy.swift */; }; - F2AB639C22479A3500939BC9 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F2AB639A22479A3200939BC9 /* Model.xcdatamodeld */; }; - F2AB639D22479A3600939BC9 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F2AB639A22479A3200939BC9 /* Model.xcdatamodeld */; }; F2AB63A022479FDF00939BC9 /* BacktraceApi.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2D8BE3921BD78A9007CFEFA /* BacktraceApi.swift */; }; F2AFB5912225E5D000AAA1D7 /* Foundation+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AFB5902225E5D000AAA1D7 /* Foundation+Extensions.swift */; }; F2AFB5922225E5D000AAA1D7 /* Foundation+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2AFB5902225E5D000AAA1D7 /* Foundation+Extensions.swift */; }; @@ -382,6 +385,8 @@ 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BacktraceOomWatcher.swift; sourceTree = ""; }; 1B23C39D7D0C11ABC494BDF4 /* Pods_Example_macOS_ObjC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example_macOS_ObjC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1F36490C977B28FFED3FA6BB /* Pods-Example-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-Example-tvOS/Pods-Example-tvOS.debug.xcconfig"; sourceTree = ""; }; + 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Crash+CoreDataClass.swift"; sourceTree = ""; }; + 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Crash+CoreDataProperties.swift"; sourceTree = ""; }; 26A69065BABD7253C1D61320 /* Pods_Backtrace_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Backtrace_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 282C85E6223FD8E70014FE75 /* BacktraceCrashExceptionApplication.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BacktraceCrashExceptionApplication.swift; sourceTree = ""; }; 2846E1F7222F1DE50035F98C /* NetworkReachability.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkReachability.swift; sourceTree = ""; }; @@ -926,6 +931,8 @@ F2AB6395224799A200939BC9 /* Resources */ = { isa = PBXGroup; children = ( + 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */, + 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */, F2AB639A22479A3200939BC9 /* Model.xcdatamodeld */, ); path = Resources; @@ -1943,6 +1950,8 @@ 28F95BC822526023003936E0 /* URLSession+Sync.swift in Sources */, 28F95BED225260D3003936E0 /* AttributesProvider.swift in Sources */, 28F95BDB22526088003936E0 /* SignalContext.swift in Sources */, + 2062D9CA2C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */, + 2062D9CB2C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */, 6E896E932727627D0005CDF2 /* BacktraceMetrics.swift in Sources */, 6EB713EE275ED4EF0075D1C1 /* SummedEventsPayload.swift in Sources */, 28F95BD122526068003936E0 /* BacktraceResult.swift in Sources */, @@ -1960,7 +1969,6 @@ 28F95BE2225260A2003936E0 /* BacktraceApi.swift in Sources */, 28F95BDC2252608B003936E0 /* Result.swift in Sources */, F2A81B4F23EF1730007C63E4 /* BacktraceApiProtocol.swift in Sources */, - F29959AD22553B340085B5C3 /* Model.xcdatamodeld in Sources */, 28F95BE3225260A5003936E0 /* HttpMethod.swift in Sources */, 28F95BD22252606B003936E0 /* BacktraceDatabaseSettings.swift in Sources */, F29959AC2255399B0085B5C3 /* BacktraceReport.swift in Sources */, @@ -2023,7 +2031,6 @@ F2AFB59E22274EDA00AAA1D7 /* Dispatching.swift in Sources */, 2846E1F9222F1DE60035F98C /* NetworkReachability.swift in Sources */, F21211A9222348C2000B3692 /* SignalContext.swift in Sources */, - F2AB639D22479A3600939BC9 /* Model.xcdatamodeld in Sources */, F259E4E3222AD9F100F282C7 /* AttributesProvider.swift in Sources */, F266B83321C77B9600D14417 /* BacktraceClient.swift in Sources */, F25F9E9821EE84AF00236E04 /* BacktraceReportStatus.swift in Sources */, @@ -2061,6 +2068,8 @@ F29CD78E21FC6BC700216C59 /* BacktraceFileManager.swift in Sources */, A24A4B8E28B5961A004F5052 /* BacktraceBreadcrumbSettings.swift in Sources */, 6E87F5FC27347A6E00B90B07 /* UniqueEventsPayload.swift in Sources */, + 2062D9C82C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */, + 2062D9C92C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */, 6E87F5F4273325A800B90B07 /* UniqueEvent.swift in Sources */, F2D7122221F10C45002D2A26 /* BacktraceClientConfiguration.swift in Sources */, A24A4B9428B59768004F5052 /* BacktraceBreadcrumbsLogManager.swift in Sources */, @@ -2141,7 +2150,6 @@ 28AC773F220A2A2900FED661 /* MultipartRequest.swift in Sources */, F25F9E9A21EE84EA00236E04 /* BacktraceResult.swift in Sources */, A24A4B8528B59604004F5052 /* BacktraceNotificationObserver.swift in Sources */, - F2AB639C22479A3500939BC9 /* Model.xcdatamodeld in Sources */, F28F165121E2A08F008E4B96 /* HttpMethod.swift in Sources */, F22EB87721BBD36800DEE94E /* BacktraceClient.swift in Sources */, AF5AB04726261A760003698C /* AttachmentBookmarkHandler.swift in Sources */, @@ -2169,6 +2177,8 @@ F28F165821E2A0DA008E4B96 /* URLSession+Sync.swift in Sources */, F26EBF3A23F21AEC00A64218 /* BacktraceNetworkClient.swift in Sources */, A24A4B8928B5960E004F5052 /* BacktraceBreadcrumbs.swift in Sources */, + 2062D9C62C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */, + 2062D9C72C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */, 28614F9E220B6D7C00D35EFB /* DefaultAttributes.swift in Sources */, F2D8BE3A21BD78A9007CFEFA /* BacktraceApi.swift in Sources */, F2AB636D22442B5100939BC9 /* DebuggerChecker.swift in Sources */, diff --git a/Sources/Features/Resources/Crash+CoreDataClass.swift b/Sources/Features/Resources/Crash+CoreDataClass.swift new file mode 100644 index 00000000..a485b0c8 --- /dev/null +++ b/Sources/Features/Resources/Crash+CoreDataClass.swift @@ -0,0 +1,5 @@ +import Foundation +import CoreData + +@objc(Crash) +public class Crash: NSManagedObject {} diff --git a/Sources/Features/Resources/Crash+CoreDataProperties.swift b/Sources/Features/Resources/Crash+CoreDataProperties.swift new file mode 100644 index 00000000..d0155e37 --- /dev/null +++ b/Sources/Features/Resources/Crash+CoreDataProperties.swift @@ -0,0 +1,16 @@ +import Foundation +import CoreData + +extension Crash { + + @nonobjc public class func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: "Crash") + } + + @NSManaged public var attachmentPaths: [String]? + @NSManaged public var dateAdded: Date? + @NSManaged public var hashProperty: String? + @NSManaged public var reportData: Data? + @NSManaged public var retryCount: Int64 + +} diff --git a/Sources/Features/Resources/Model.xcdatamodeld/Model.xcdatamodel/contents b/Sources/Features/Resources/Model.xcdatamodeld/Model.xcdatamodel/contents index 89483118..e06fa8ed 100644 --- a/Sources/Features/Resources/Model.xcdatamodeld/Model.xcdatamodel/contents +++ b/Sources/Features/Resources/Model.xcdatamodeld/Model.xcdatamodel/contents @@ -1,6 +1,6 @@ - - + + From 3431fa58fa0de55d7230de26ce858cd36f3c85f9 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Mon, 15 Jul 2024 15:27:47 -0400 Subject: [PATCH 02/39] Migrate Backtrace.podspec resources attribute to multi-platform resource_bundle --- Backtrace.podspec | 2 +- Podfile.lock | 2 +- Sources/Features/Repository/PersistentRepository.swift | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Backtrace.podspec b/Backtrace.podspec index 0a9e71ad..2692d5a1 100644 --- a/Backtrace.podspec +++ b/Backtrace.podspec @@ -33,6 +33,6 @@ Pod::Spec.new do |s| s.tvos.public_header_files = ["Backtrace-tvOS/**/*.h*"] s.static_framework = true s.dependency "PLCrashReporter", '1.11' - s.resources = 'Sources/**/*.xcdatamodeld' + s.resource_bundle = { 'Backtrace' => 'Sources/**/*.xcdatamodeld' } end diff --git a/Podfile.lock b/Podfile.lock index 32803084..dda718ec 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -22,7 +22,7 @@ EXTERNAL SOURCES: :path: "./Backtrace.podspec" SPEC CHECKSUMS: - Backtrace: c0a4280935bff4ac8d84faedc5f79a7b582b9204 + Backtrace: 24561b65671cccc6c23d1f12149e71ce02addeff Nimble: 5316ef81a170ce87baf72dd961f22f89a602ff84 PLCrashReporter: 7a9dff14a23ba5d2e28c6160f0bb6fada5e71a8d Quick: 749aa754fd1e7d984f2000fe051e18a3a9809179 diff --git a/Sources/Features/Repository/PersistentRepository.swift b/Sources/Features/Repository/PersistentRepository.swift index daefc619..feed11ce 100644 --- a/Sources/Features/Repository/PersistentRepository.swift +++ b/Sources/Features/Repository/PersistentRepository.swift @@ -31,7 +31,9 @@ final class PersistentRepository { .persistentRepositoryInitError(details: "Couldn't find model url for name: \(momdName)") } #else - guard let modelURL = Bundle(for: type(of: self)).url(forResource: momdName, withExtension: "momd") else { + guard let bundleURL = Bundle(for: PersistentRepository.self).url(forResource: "Backtrace", withExtension: "bundle"), + let resourcesBundle = Bundle(url: bundleURL), + let modelURL = resourcesBundle.url(forResource: momdName, withExtension: "momd") else { throw RepositoryError .persistentRepositoryInitError(details: "Couldn't find model url for name: \(momdName)") } From 367e24a38c41f9d182a2d4c6b8719afbdfc1bafe Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Mon, 15 Jul 2024 15:29:49 -0400 Subject: [PATCH 03/39] Add pod lib lint command to workflows and scripts --- .github/workflows/deploy.yml | 2 ++ .github/workflows/test.yml | 2 ++ scripts/test.sh | 1 + 3 files changed, 5 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d662e960..4d2e3b07 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,6 +29,8 @@ jobs: - uses: actions/checkout@v3 - name: Install dependencies run: sh scripts/install.sh + - name: Run pod lib lint + run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' # END COPY PASTE FROM TEST.YML deploy-cocoapods: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0e12eced..1baa174c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,3 +29,5 @@ jobs: - uses: actions/checkout@v3 - name: Install dependencies run: sh scripts/install.sh + - name: Run pod lib lint + run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' diff --git a/scripts/test.sh b/scripts/test.sh index 47b1608e..7cce5e70 100644 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -7,3 +7,4 @@ set -o xtrace # to trace what gets executed. Useful for debugging fastlane ios tests fastlane mac tests fastlane tvos tests +pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' \ No newline at end of file From ac019432f666e41544193fc3d3b0120ceb4ebd3a Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 15:30:46 -0400 Subject: [PATCH 04/39] Add BacktraceResources bundle --- Backtrace.podspec | 2 +- Backtrace.xcodeproj/project.pbxproj | 280 +++++++++++++++++- .../Repository/PersistentRepository.swift | 2 +- 3 files changed, 268 insertions(+), 16 deletions(-) diff --git a/Backtrace.podspec b/Backtrace.podspec index 2692d5a1..6b363e76 100644 --- a/Backtrace.podspec +++ b/Backtrace.podspec @@ -33,6 +33,6 @@ Pod::Spec.new do |s| s.tvos.public_header_files = ["Backtrace-tvOS/**/*.h*"] s.static_framework = true s.dependency "PLCrashReporter", '1.11' - s.resource_bundle = { 'Backtrace' => 'Sources/**/*.xcdatamodeld' } + s.resource_bundle = { 'BacktraceResources' => 'Sources/**/*.xcdatamodeld' } end diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index ffbcc530..097a1e49 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -10,6 +10,10 @@ 0B6B4CFD25CD8331002DA15C /* BacktraceOomWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */; }; 0B6B4CFE25CD8331002DA15C /* BacktraceOomWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */; }; 0B6B4CFF25CD8331002DA15C /* BacktraceOomWatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */; }; + 2046B45B2C46FA1100A927DB /* Model.xcdatamodeld in Resources */ = {isa = PBXBuildFile; fileRef = F2AB639A22479A3200939BC9 /* Model.xcdatamodeld */; }; + 2046B45C2C46FA5600A927DB /* BacktraceResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2046B4552C46F97800A927DB /* BacktraceResources.bundle */; }; + 2046B45F2C46FCE500A927DB /* BacktraceResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2046B4552C46F97800A927DB /* BacktraceResources.bundle */; }; + 2046B4622C46FCF400A927DB /* BacktraceResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2046B4552C46F97800A927DB /* BacktraceResources.bundle */; }; 2062D9C62C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */; }; 2062D9C72C457B4500E4CE3C /* Crash+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */; }; 2062D9C82C457B4500E4CE3C /* Crash+CoreDataClass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */; }; @@ -314,6 +318,27 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 2046B4592C46F9CE00A927DB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F2C2FA4521BBD23B00934744 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2046B4542C46F97800A927DB; + remoteInfo = BacktraceResources; + }; + 2046B45D2C46FCDB00A927DB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F2C2FA4521BBD23B00934744 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2046B4542C46F97800A927DB; + remoteInfo = BacktraceResources; + }; + 2046B4602C46FCED00A927DB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = F2C2FA4521BBD23B00934744 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2046B4542C46F97800A927DB; + remoteInfo = BacktraceResources; + }; 28F95BBA22525DCC003936E0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = F2C2FA4521BBD23B00934744 /* Project object */; @@ -385,6 +410,7 @@ 0B6B4CFC25CD8331002DA15C /* BacktraceOomWatcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BacktraceOomWatcher.swift; sourceTree = ""; }; 1B23C39D7D0C11ABC494BDF4 /* Pods_Example_macOS_ObjC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example_macOS_ObjC.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1F36490C977B28FFED3FA6BB /* Pods-Example-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-Example-tvOS/Pods-Example-tvOS.debug.xcconfig"; sourceTree = ""; }; + 2046B4552C46F97800A927DB /* BacktraceResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BacktraceResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 2062D9C42C457B4500E4CE3C /* Crash+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Crash+CoreDataClass.swift"; sourceTree = ""; }; 2062D9C52C457B4500E4CE3C /* Crash+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Crash+CoreDataProperties.swift"; sourceTree = ""; }; 26A69065BABD7253C1D61320 /* Pods_Backtrace_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Backtrace_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -563,6 +589,13 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 2046B4522C46F97800A927DB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 28F95BAD22525DCC003936E0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1024,6 +1057,7 @@ 28F95BB022525DCC003936E0 /* Backtrace.framework */, 28F95BB822525DCC003936E0 /* Backtrace-tvOSTests.xctest */, F2A11BF722553C2800354640 /* Example-tvOS.app */, + 2046B4552C46F97800A927DB /* BacktraceResources.bundle */, ); name = Products; sourceTree = ""; @@ -1157,6 +1191,23 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 2046B4542C46F97800A927DB /* BacktraceResources */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2046B4582C46F97800A927DB /* Build configuration list for PBXNativeTarget "BacktraceResources" */; + buildPhases = ( + 2046B4512C46F97800A927DB /* Sources */, + 2046B4522C46F97800A927DB /* Frameworks */, + 2046B4532C46F97800A927DB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = BacktraceResources; + productName = BacktraceResources; + productReference = 2046B4552C46F97800A927DB /* BacktraceResources.bundle */; + productType = "com.apple.product-type.bundle"; + }; 28F95BAF22525DCC003936E0 /* Backtrace-tvOS */ = { isa = PBXNativeTarget; buildConfigurationList = 28F95BC122525DCC003936E0 /* Build configuration list for PBXNativeTarget "Backtrace-tvOS" */; @@ -1171,6 +1222,7 @@ buildRules = ( ); dependencies = ( + 2046B4612C46FCED00A927DB /* PBXTargetDependency */, ); name = "Backtrace-tvOS"; productName = "Backtrace-tvOS"; @@ -1211,6 +1263,7 @@ buildRules = ( ); dependencies = ( + 2046B45E2C46FCDB00A927DB /* PBXTargetDependency */, ); name = "Backtrace-macOS"; productName = "Backtrace-macOS"; @@ -1271,6 +1324,7 @@ buildRules = ( ); dependencies = ( + 2046B45A2C46F9CE00A927DB /* PBXTargetDependency */, ); name = "Backtrace-iOS"; productName = "Backtrace-iOS"; @@ -1366,6 +1420,9 @@ LastSwiftUpdateCheck = 1020; LastUpgradeCheck = 1010; TargetAttributes = { + 2046B4542C46F97800A927DB = { + CreatedOnToolsVersion = 15.4; + }; 28F95BAF22525DCC003936E0 = { CreatedOnToolsVersion = 10.1; }; @@ -1424,15 +1481,25 @@ F2D8BE1E21BC5F97007CFEFA /* Example-iOS-ObjC */, F2D8BE4121BDA7CF007CFEFA /* Example-macOS-ObjC */, F2A11BF622553C2800354640 /* Example-tvOS */, + 2046B4542C46F97800A927DB /* BacktraceResources */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 2046B4532C46F97800A927DB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2046B45B2C46FA1100A927DB /* Model.xcdatamodeld in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 28F95BAE22525DCC003936E0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2046B4622C46FCF400A927DB /* BacktraceResources.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1448,6 +1515,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2046B45F2C46FCE500A927DB /* BacktraceResources.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1473,6 +1541,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2046B45C2C46FA5600A927DB /* BacktraceResources.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1915,6 +1984,13 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 2046B4512C46F97800A927DB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 28F95BAC22525DCC003936E0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2262,6 +2338,21 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 2046B45A2C46F9CE00A927DB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2046B4542C46F97800A927DB /* BacktraceResources */; + targetProxy = 2046B4592C46F9CE00A927DB /* PBXContainerItemProxy */; + }; + 2046B45E2C46FCDB00A927DB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2046B4542C46F97800A927DB /* BacktraceResources */; + targetProxy = 2046B45D2C46FCDB00A927DB /* PBXContainerItemProxy */; + }; + 2046B4612C46FCED00A927DB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2046B4542C46F97800A927DB /* BacktraceResources */; + targetProxy = 2046B4602C46FCED00A927DB /* PBXContainerItemProxy */; + }; 28F95BBB22525DCC003936E0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 28F95BAF22525DCC003936E0 /* Backtrace-tvOS */; @@ -2331,6 +2422,158 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 2046B4562C46F97800A927DB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = 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_DOCUMENTATION_COMMENTS = YES; + 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = QURK42X89U; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + 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; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSPrincipalClass = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 13.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = Backtrace.BacktraceResources; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 2046B4572C46F97800A927DB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = 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_DOCUMENTATION_COMMENTS = YES; + 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_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = QURK42X89U; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSPrincipalClass = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 13.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = Backtrace.BacktraceResources; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 28F95BC222525DCC003936E0 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 33EA597CC049EB0DFA70324F /* Pods-Backtrace-tvOS.debug.xcconfig */; @@ -2723,7 +2966,7 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -2806,7 +3049,7 @@ SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -2887,7 +3130,7 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; @@ -2959,7 +3202,7 @@ SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Release; }; @@ -3232,7 +3475,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -3318,7 +3561,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -3403,7 +3646,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; @@ -3478,7 +3721,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -3561,7 +3804,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; @@ -3636,7 +3879,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -3716,7 +3959,7 @@ STRIP_SWIFT_SYMBOLS = NO; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; @@ -3788,7 +4031,7 @@ STRIP_SWIFT_SYMBOLS = NO; SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -3867,7 +4110,7 @@ SDKROOT = macosx; STRIP_STYLE = debugging; STRIP_SWIFT_SYMBOLS = NO; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Debug; }; @@ -3938,13 +4181,22 @@ SDKROOT = macosx; STRIP_STYLE = debugging; STRIP_SWIFT_SYMBOLS = NO; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 2046B4582C46F97800A927DB /* Build configuration list for PBXNativeTarget "BacktraceResources" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2046B4562C46F97800A927DB /* Debug */, + 2046B4572C46F97800A927DB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 28F95BC122525DCC003936E0 /* Build configuration list for PBXNativeTarget "Backtrace-tvOS" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Sources/Features/Repository/PersistentRepository.swift b/Sources/Features/Repository/PersistentRepository.swift index feed11ce..a92ce4a8 100644 --- a/Sources/Features/Repository/PersistentRepository.swift +++ b/Sources/Features/Repository/PersistentRepository.swift @@ -31,7 +31,7 @@ final class PersistentRepository { .persistentRepositoryInitError(details: "Couldn't find model url for name: \(momdName)") } #else - guard let bundleURL = Bundle(for: PersistentRepository.self).url(forResource: "Backtrace", withExtension: "bundle"), + guard let bundleURL = Bundle(for: type(of: self)).url(forResource: "BacktraceResources", withExtension: "bundle"), let resourcesBundle = Bundle(url: bundleURL), let modelURL = resourcesBundle.url(forResource: momdName, withExtension: "momd") else { throw RepositoryError From 66179f943001c5e65f505a6642105358808db691 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 15:31:48 -0400 Subject: [PATCH 05/39] Specify Podfile project .xcworkspace --- Podfile | 1 + Podfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Podfile b/Podfile index 718113a1..9d0fe47e 100644 --- a/Podfile +++ b/Podfile @@ -1,6 +1,7 @@ source 'https://cdn.cocoapods.org/' # Library +project 'Backtrace.xcworkspace' # Definitions def shared_pods diff --git a/Podfile.lock b/Podfile.lock index dda718ec..5f0830ec 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -22,11 +22,11 @@ EXTERNAL SOURCES: :path: "./Backtrace.podspec" SPEC CHECKSUMS: - Backtrace: 24561b65671cccc6c23d1f12149e71ce02addeff + Backtrace: a90dcc0f33cb29155c5b15209fbb5be30137ad29 Nimble: 5316ef81a170ce87baf72dd961f22f89a602ff84 PLCrashReporter: 7a9dff14a23ba5d2e28c6160f0bb6fada5e71a8d Quick: 749aa754fd1e7d984f2000fe051e18a3a9809179 -PODFILE CHECKSUM: e47f2680ac506c05a737c701413cc45490f16077 +PODFILE CHECKSUM: 9879217fb9b028733c19f11520859f8869f67aba COCOAPODS: 1.15.2 From 4198a7f8527ddf6be83bfe29a9eee500292cd034 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 15:36:28 -0400 Subject: [PATCH 06/39] Update project.pbxproj Remove CODE_SIGN_IDENTITY --- Backtrace.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 097a1e49..67105c8d 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2456,12 +2456,13 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = QURK42X89U; + DEVELOPMENT_TEAM = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2536,11 +2537,12 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = QURK42X89U; + DEVELOPMENT_TEAM = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; From 9a464a5a0de42c20e4caa5478d6768cf08540a7e Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 18:42:54 -0400 Subject: [PATCH 07/39] Update github workflows --- .github/workflows/Podfile | 34 +++++++++++++++++++++++ .github/workflows/deploy.yml | 54 ++++++++++++++++++++++++++++++------ 2 files changed, 80 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/Podfile diff --git a/.github/workflows/Podfile b/.github/workflows/Podfile new file mode 100644 index 00000000..633feab8 --- /dev/null +++ b/.github/workflows/Podfile @@ -0,0 +1,34 @@ +# We do not support iOS <11, so set that as minimum +platform :ios, '11.0' + +plugin 'cocoapods-rome', { :pre_compile => Proc.new { |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + # Based on the environment variable, either build with our without Swift libraries embedded (needed for iOS >10, <12.2) https://developer.apple.com/documentation/xcode-release-notes/swift-5-release-notes-for-xcode-10_2 + config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = ENV['SWIFT_EMBEDDED'] + config.build_settings['SWIFT_VERSION'] = '5' + + # Based on the environment variable, either build with our without Bitcode + config.build_settings['ENABLE_BITCODE'] = ENV['ENABLE_BITCODE'] + config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' + + # Exclude building for arm64 simulator (M1 chipset). XCFrameworks are needed to support this properly, future work + config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' + + # These two options seem to be defaults already, so probably not critical + config.build_settings['VALIDATE_WORKSPACE'] = 'YES' + config.build_settings['BUILD_LIBRARIES_FOR_DISTRIBUTION'] = 'YES' + end + end + + installer.pods_project.save +}, + + dsym: true, + configuration: 'Release' +} + +target 'backtrace' do + use_frameworks! + pod 'Backtrace' +end \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4d2e3b07..953ab179 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -32,16 +32,54 @@ jobs: - name: Run pod lib lint run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' # END COPY PASTE FROM TEST.YML - - deploy-cocoapods: + + build-dynamic-frameworks: runs-on: macos-latest needs: [pod-lint, test] - + + strategy: + matrix: + ENABLE_BITCODE: [YES, NO] + SWIFT_EMBEDDED: [YES, NO] + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + - name: Install cocoapods and rome + run: gem install cocoapods cocoapods-rome + + - name: Run pod install with Podfile from workflows directory + run: cp .github/workflows/Podfile . && pod install + env: + ENABLE_BITCODE: ${{ matrix.ENABLE_BITCODE }} + SWIFT_EMBEDDED: ${{ matrix.SWIFT_EMBEDDED }} + BACKTRACE_VERSION: ${{ github.ref_name }} + + - name: Tar files to preserve file permissions + run: tar -cvzf Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }}.tar.gz Rome/ dSYM/ + + - uses: actions/upload-artifact@v3 + with: + name: Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }} + path: Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }}.tar.gz + + upload-to-github-release: + runs-on: ubuntu-latest + needs: build-dynamic-frameworks + steps: - uses: actions/checkout@v3 - - name: Install dependencies - run: sh scripts/install.sh - - name: Deploy to Cocoapods - run: sh scripts/deploy.sh + + - uses: actions/download-artifact@v3 + id: download + with: + path: artifacts/ + + - uses: xresloader/upload-to-github-release@v1 env: - COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + file: ${{ steps.download.outputs.download-path }} + draft: true + verbose: env.ACTIONS_STEP_DEBUG \ No newline at end of file From 6b63060367931e4d05f85e38eb03bd7fdfd813a8 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 18:45:26 -0400 Subject: [PATCH 08/39] Update deploy.yml --- .github/workflows/deploy.yml | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 953ab179..734c5365 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,13 +30,26 @@ jobs: - name: Install dependencies run: sh scripts/install.sh - name: Run pod lib lint - run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' + run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' # END COPY PASTE FROM TEST.YML - - build-dynamic-frameworks: + + deploy-cocoapods: runs-on: macos-latest needs: [pod-lint, test] + + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: sh scripts/install.sh + - name: Deploy to Cocoapods + run: sh scripts/deploy.sh + env: + COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} + build-dynamic-frameworks: + runs-on: macos-latest + needs: [pod-lint, test] + strategy: matrix: ENABLE_BITCODE: [YES, NO] @@ -48,7 +61,7 @@ jobs: - name: Install cocoapods and rome run: gem install cocoapods cocoapods-rome - + - name: Run pod install with Podfile from workflows directory run: cp .github/workflows/Podfile . && pod install env: @@ -63,7 +76,7 @@ jobs: with: name: Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }} path: Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }}.tar.gz - + upload-to-github-release: runs-on: ubuntu-latest needs: build-dynamic-frameworks From 70a771a64a027143f3dee0b8cce3fb4c33bc92f2 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 18:54:49 -0400 Subject: [PATCH 09/39] Update deploy.sh --- scripts/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 5e58544a..582a8f97 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -6,4 +6,4 @@ set -o xtrace # to trace what gets executed. Useful for debugging # This script requires the `COCOAPODS_TRUNK_TOKEN` env var to be set. # See more: https://fuller.li/posts/automated-cocoapods-releases-with-ci/. -pod trunk push Backtrace.podspec --allow-warnings +#pod trunk push Backtrace.podspec --allow-warnings From 83f654d23e57102747dbd9dcb6dbe76b4bc0bf2a Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 16 Jul 2024 18:59:11 -0400 Subject: [PATCH 10/39] Bump backtraceVersion and update changelog --- Backtrace.podspec | 2 +- CHANGELOG.md | 9 +++++++++ Sources/Features/Attributes/DefaultAttributes.swift | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Backtrace.podspec b/Backtrace.podspec index 6b363e76..ce4038db 100644 --- a/Backtrace.podspec +++ b/Backtrace.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |s| s.name = "Backtrace" - s.version = "2.0.4" + s.version = "2.0.5-beta2" s.swift_version = '5' s.summary = "Backtrace's integration with iOS, macOS and tvOS" s.description = "Reliable crash and hang reporting for iOS, macOS and tvOS." diff --git a/CHANGELOG.md b/CHANGELOG.md index 54f394ae..8be251db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Backtrace Cocoa Release Notes +## Version 2.0.5-beta2 +- Generates static frameworks + +## Version 2.0.5-beta1 +- Adds BacktraceResources bundle +- Updates CoreData and Data Model +- Adds pod integrity check +- Fixes issue where assets are not copied to generated frameworks when statically linking sdk + ## Version 2.0.4 - Upgrades PLCrashReporter (#122) - Adds scoped attributes to PLCrashreport (#125) diff --git a/Sources/Features/Attributes/DefaultAttributes.swift b/Sources/Features/Attributes/DefaultAttributes.swift index 4e05f4ff..b2ed6800 100644 --- a/Sources/Features/Attributes/DefaultAttributes.swift +++ b/Sources/Features/Attributes/DefaultAttributes.swift @@ -200,7 +200,7 @@ struct LibInfo: AttributesSource { private static let applicationGuidKey = "backtrace.unique.user.identifier" private static let applicationLangName = "backtrace-cocoa" - var backtraceVersion = "2.0.4" + var backtraceVersion = "2.0.5-beta2" var immutable: [String: Any?] { return ["guid": LibInfo.guid(store: UserDefaultsStore.self).uuidString, From f743a72d3402f7b8ef90781504eeaa3b5bd4aa0e Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Fri, 26 Jul 2024 18:50:50 -0400 Subject: [PATCH 11/39] Create xcframeworks --- .github/workflows/deploy.yml | 21 +++++------------- scripts/xcframeworkgen.sh | 43 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 scripts/xcframeworkgen.sh diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 734c5365..2a9ab8f5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -49,33 +49,22 @@ jobs: build-dynamic-frameworks: runs-on: macos-latest needs: [pod-lint, test] - - strategy: - matrix: - ENABLE_BITCODE: [YES, NO] - SWIFT_EMBEDDED: [YES, NO] steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - - name: Install cocoapods and rome - run: gem install cocoapods cocoapods-rome - - - name: Run pod install with Podfile from workflows directory - run: cp .github/workflows/Podfile . && pod install + - name: Build frameworks + run: sh scripts/xcframeworkgen.sh env: - ENABLE_BITCODE: ${{ matrix.ENABLE_BITCODE }} - SWIFT_EMBEDDED: ${{ matrix.SWIFT_EMBEDDED }} BACKTRACE_VERSION: ${{ github.ref_name }} - name: Tar files to preserve file permissions - run: tar -cvzf Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }}.tar.gz Rome/ dSYM/ + run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ - uses: actions/upload-artifact@v3 with: - name: Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }} - path: Archive_DynamicFramework_iOS_Bitcode${{ matrix.ENABLE_BITCODE }}_SwiftEmbedded${{ matrix.SWIFT_EMBEDDED }}_${{ github.ref_name }}.tar.gz + name: Archive_XCFrameworks_${{ github.ref_name }} + path: Archive_XCFrameworks_${{ github.ref_name }}.tar.gz upload-to-github-release: runs-on: ubuntu-latest diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh new file mode 100644 index 00000000..5efea041 --- /dev/null +++ b/scripts/xcframeworkgen.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +PROJECT_DIR="$(dirname "$0")/.." +BUILD_PATH="${PROJECT_DIR}/.build" +WORKFLOW_XC_PATH="${PROJECT_DIR}/.github/workflows/frameworks" + +rm -rf ${BUILD_PATH} +rm -rf ${WORKFLOW_XC_PATH} +mkdir ${BUILD_PATH} +mkdir ${WORKFLOW_XC_PATH} + + +xcodebuild archive \ + -workspace Backtrace.xcworkspace \ + -scheme "Backtrace-iOS-lib" \ + -destination "generic/platform=iOS" \ + -archivePath ${BUILD_PATH}/Backtrace-iOS-lib.xcarchive \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + + +xcodebuild archive \ + -workspace Backtrace.xcworkspace \ + -scheme "Backtrace-macOS-lib" \ + -destination "platform=macOS" \ + -archivePath ${BUILD_PATH}/Backtrace-macOS-lib.xcarchive \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + + +xcodebuild archive \ + -workspace Backtrace.xcworkspace \ + -scheme "Backtrace-tvOS-lib" \ + -destination "generic/platform=tvOS" \ + -archivePath ${BUILD_PATH}/Backtrace-tvOS-lib.xcarchive \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + +xcodebuild -create-xcframework \ + -archive ${BUILD_PATH}/Backtrace-iOS-lib.xcarchive -framework Backtrace.framework \ + -archive ${BUILD_PATH}/Backtrace-macOS-lib.xcarchive -framework Backtrace.framework \ + -archive ${BUILD_PATH}/Backtrace-tvOS-lib.xcarchive -framework Backtrace.framework \ + -output ${WORKFLOW_XC_PATH}/Backtrace.xcframework + +rm -rf ${BUILD_PATH} + From 6eb59cb8557aeb3ac9b9e93a4db444074321f574 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Fri, 26 Jul 2024 18:53:58 -0400 Subject: [PATCH 12/39] Disable CODE_SIGNING for bundle --- Backtrace.xcodeproj/project.pbxproj | 14 ++++++++------ Podfile | 5 +++++ Podfile.lock | 6 +++--- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 67105c8d..86580217 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2456,13 +2456,13 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = JWKXD469L2; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2491,8 +2491,9 @@ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = Backtrace.BacktraceResources; + PRODUCT_BUNDLE_IDENTIFIER = Backtrace.io.BacktraceResources; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; @@ -2537,12 +2538,12 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; + CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = JWKXD469L2; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2564,8 +2565,9 @@ MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = Backtrace.BacktraceResources; + PRODUCT_BUNDLE_IDENTIFIER = Backtrace.io.BacktraceResources; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "xrsimulator xros watchsimulator watchos macosx iphonesimulator iphoneos driverkit appletvsimulator appletvos"; diff --git a/Podfile b/Podfile index 9d0fe47e..9c29f787 100644 --- a/Podfile +++ b/Podfile @@ -99,6 +99,11 @@ post_install do |installer| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.13' config.build_settings['TVOS_DEPLOYMENT_TARGET'] = '12.0' + if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" + target.build_configurations.each do |config| + config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' + end + end end end end diff --git a/Podfile.lock b/Podfile.lock index 5f0830ec..6a6db550 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Backtrace (2.0.4): + - Backtrace (2.0.5-beta2): - PLCrashReporter (= 1.11) - Nimble (10.0.0) - PLCrashReporter (1.11.0) @@ -22,11 +22,11 @@ EXTERNAL SOURCES: :path: "./Backtrace.podspec" SPEC CHECKSUMS: - Backtrace: a90dcc0f33cb29155c5b15209fbb5be30137ad29 + Backtrace: edc722bb51df4df8bde18abf92020f11cf9d3f74 Nimble: 5316ef81a170ce87baf72dd961f22f89a602ff84 PLCrashReporter: 7a9dff14a23ba5d2e28c6160f0bb6fada5e71a8d Quick: 749aa754fd1e7d984f2000fe051e18a3a9809179 -PODFILE CHECKSUM: 9879217fb9b028733c19f11520859f8869f67aba +PODFILE CHECKSUM: ce5f0c2e1a6ec7e39696dece4b42e81783ea48f8 COCOAPODS: 1.15.2 From 8a6bfee58ca25c8efc1b2d3464c3ae966f0679ef Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Fri, 26 Jul 2024 19:19:14 -0400 Subject: [PATCH 13/39] Update project.pbxproj --- Backtrace.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 86580217..6f660204 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2457,6 +2457,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; @@ -2539,6 +2540,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; From 3ab83b02b081d6e1f4c5106ec837747f52d10548 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Fri, 26 Jul 2024 19:38:02 -0400 Subject: [PATCH 14/39] Update project.pbxproj --- Backtrace.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 6f660204..641d7a06 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2457,13 +2457,14 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = JWKXD469L2; + DEVELOPMENT_TEAM = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2540,12 +2541,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = JWKXD469L2; + DEVELOPMENT_TEAM = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; From 0c36aeae3c570c86af0dd6c93d09bfdd608931ca Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Fri, 26 Jul 2024 22:17:52 -0400 Subject: [PATCH 15/39] Update deploy.yml Add build_with_signing step --- .github/workflows/deploy.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2a9ab8f5..4d255e7e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -32,6 +32,42 @@ jobs: - name: Run pod lib lint run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' # END COPY PASTE FROM TEST.YML + + build_with_signing: + runs-on: macos-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install the Apple certificate and provisioning profile + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} + P12_PASSWORD: ${{ secrets.P12_PASSWORD }} + BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | + # create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate and provisioning profile from secrets + echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH + echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # apply provisioning profile + mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles + cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles deploy-cocoapods: runs-on: macos-latest From f799b718de81c5df7a734ed2d880ad84582227b0 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Tue, 30 Jul 2024 19:03:13 -0400 Subject: [PATCH 16/39] Copy dependency framework --- scripts/xcframeworkgen.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index 5efea041..83447ca2 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -3,6 +3,7 @@ PROJECT_DIR="$(dirname "$0")/.." BUILD_PATH="${PROJECT_DIR}/.build" WORKFLOW_XC_PATH="${PROJECT_DIR}/.github/workflows/frameworks" +POD_PATH="${PROJECT_DIR}/Pods/PLCrashReporter" rm -rf ${BUILD_PATH} rm -rf ${WORKFLOW_XC_PATH} @@ -41,3 +42,10 @@ xcodebuild -create-xcframework \ rm -rf ${BUILD_PATH} +if [ ! -d "$POD_PATH" ]; then + echo "Error: Source directory '$POD_PATH' does not exist." + exit 1 +fi + +cp -r "$POD_PATH" "$WORKFLOW_XC_PATH" + From 2feeac86caa3ee644dedda98bd3a458703f719cc Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 17:35:45 -0400 Subject: [PATCH 17/39] Update deploy.yml --- .github/workflows/deploy.yml | 2 +- Backtrace.xcodeproj/project.pbxproj | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4d255e7e..2e129a11 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -45,7 +45,7 @@ jobs: P12_PASSWORD: ${{ secrets.P12_PASSWORD }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} - run: | + run: # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 641d7a06..6f660204 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2457,14 +2457,13 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = JWKXD469L2; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2541,13 +2540,12 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = JWKXD469L2; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; From 56bcd6cb60b6fe7179f89294a5aabae7d225c82e Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 17:39:44 -0400 Subject: [PATCH 18/39] Update deploy.yml --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2e129a11..dfe64260 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v3 - name: Install the Apple certificate and provisioning profile env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} From 9ba19ed36a827decde06c2622ef2a1f40fd88d92 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 17:51:49 -0400 Subject: [PATCH 19/39] Update deploy.yml --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index dfe64260..4f4b5e41 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install the Apple certificate and provisioning profile env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} From 400c7b1e0e85aa95ee8bcf7041b1e00ae7900e1b Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 17:54:04 -0400 Subject: [PATCH 20/39] Update deploy.yml --- .github/workflows/deploy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4f4b5e41..9de344b3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -37,7 +37,6 @@ jobs: runs-on: macos-latest steps: - - name: Checkout repository - uses: actions/checkout@v4 - name: Install the Apple certificate and provisioning profile env: From cb9eb5aa8f78e9eb91c47dccc2f10a225e914670 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 17:56:37 -0400 Subject: [PATCH 21/39] Update deploy.yml --- .github/workflows/deploy.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9de344b3..4d255e7e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -37,14 +37,15 @@ jobs: runs-on: macos-latest steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - name: Install the Apple certificate and provisioning profile env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} - run: + run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision From 7eadb395065cf2968860efa587c75ddadaa14ad9 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 18:29:31 -0400 Subject: [PATCH 22/39] Disable Bundle automatic signing --- Backtrace.xcodeproj/project.pbxproj | 34 ++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 6f660204..7f7aac29 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2457,13 +2457,24 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = JWKXD469L2; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=appletvos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=driverkit*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=macosx*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=watchos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=xros*]" = JWKXD469L2; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2540,12 +2551,23 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = JWKXD469L2; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=appletvos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=driverkit*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=macosx*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=watchos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=xros*]" = JWKXD469L2; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; From 21b8724339f36bcd7cf9ec041bed3b01e6853a57 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 18:38:00 -0400 Subject: [PATCH 23/39] Update project.pbxproj --- Backtrace.xcodeproj/project.pbxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 7f7aac29..1e0dd96a 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2458,9 +2458,9 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Distribution"; - "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Distribution"; "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Distribution"; CODE_SIGN_STYLE = Manual; @@ -2552,9 +2552,9 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Distribution"; - "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Distribution"; "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Distribution"; CODE_SIGN_STYLE = Manual; From ca93b7bbc1f60bd6a17f648dbc8c30facb46b1a7 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 20:07:28 -0400 Subject: [PATCH 24/39] Update Podfile --- Backtrace.xcodeproj/project.pbxproj | 18 +++++++++--------- Podfile | 5 ----- Podfile.lock | 2 +- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 1e0dd96a..19c53f98 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2457,12 +2457,12 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Distribution"; - "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; @@ -2550,13 +2550,13 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Distribution"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Distribution"; - "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Distribution"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; diff --git a/Podfile b/Podfile index 9c29f787..9d0fe47e 100644 --- a/Podfile +++ b/Podfile @@ -99,11 +99,6 @@ post_install do |installer| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.13' config.build_settings['TVOS_DEPLOYMENT_TARGET'] = '12.0' - if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle" - target.build_configurations.each do |config| - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - end - end end end end diff --git a/Podfile.lock b/Podfile.lock index 6a6db550..8dc29d51 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -27,6 +27,6 @@ SPEC CHECKSUMS: PLCrashReporter: 7a9dff14a23ba5d2e28c6160f0bb6fada5e71a8d Quick: 749aa754fd1e7d984f2000fe051e18a3a9809179 -PODFILE CHECKSUM: ce5f0c2e1a6ec7e39696dece4b42e81783ea48f8 +PODFILE CHECKSUM: 9879217fb9b028733c19f11520859f8869f67aba COCOAPODS: 1.15.2 From ee70a1afce69425675e186d4ca2f9d8f7ce09cc6 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 20:35:44 -0400 Subject: [PATCH 25/39] Update deploy.yml Upgrade actions to v4 Add sign-and-build-frameworks step --- .github/workflows/deploy.yml | 68 ++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4d255e7e..54115819 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,7 +16,7 @@ jobs: platform: [ios, mac, tvos] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install dependencies run: sh scripts/install.sh - name: Run test @@ -26,15 +26,29 @@ jobs: runs-on: macos-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install dependencies run: sh scripts/install.sh - name: Run pod lib lint run: pod lib lint --verbose --allow-warnings --sources='https://cdn.cocoapods.org/' # END COPY PASTE FROM TEST.YML - build_with_signing: + deploy-cocoapods: + runs-on: macos-latest + needs: [pod-lint, test] + + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + run: sh scripts/install.sh + - name: Deploy to Cocoapods + run: sh scripts/deploy.sh + env: + COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} + + sign-and-build-frameworks: runs-on: macos-latest + needs: [pod-lint, test] steps: - name: Checkout repository @@ -68,48 +82,28 @@ jobs: # apply provisioning profile mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles - - deploy-cocoapods: - runs-on: macos-latest - needs: [pod-lint, test] - - steps: - - uses: actions/checkout@v3 - - name: Install dependencies - run: sh scripts/install.sh - - name: Deploy to Cocoapods - run: sh scripts/deploy.sh - env: - COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} - build-dynamic-frameworks: - runs-on: macos-latest - needs: [pod-lint, test] - - steps: - - uses: actions/checkout@v3 - - - name: Build frameworks - run: sh scripts/xcframeworkgen.sh - env: - BACKTRACE_VERSION: ${{ github.ref_name }} + - name: Build frameworks + run: sh scripts/xcframeworkgen.sh + env: + BACKTRACE_VERSION: ${{ github.ref_name }} - - name: Tar files to preserve file permissions - run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ + - name: Tar files to preserve file permissions + run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ - - uses: actions/upload-artifact@v3 - with: - name: Archive_XCFrameworks_${{ github.ref_name }} - path: Archive_XCFrameworks_${{ github.ref_name }}.tar.gz + - uses: actions/upload-artifact@v4 + with: + name: Archive_XCFrameworks_${{ github.ref_name }} + path: Archive_XCFrameworks_${{ github.ref_name }}.tar.gz - upload-to-github-release: + upload-xcframeworks: runs-on: ubuntu-latest - needs: build-dynamic-frameworks + needs: sign-and-build-frameworks steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 id: download with: path: artifacts/ From eeb703c8ba40abf2fe253eab214ab8b11ba87d46 Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 21:06:42 -0400 Subject: [PATCH 26/39] Update deploy.yml Add Install pods step --- .github/workflows/deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 54115819..eaa18f91 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -53,6 +53,8 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 + - name: Install pods + run: pod install - name: Install the Apple certificate and provisioning profile env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} From aacfa856c69130c8eb56a9e882a8f3467416da1d Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Wed, 31 Jul 2024 21:30:02 -0400 Subject: [PATCH 27/39] Update xcframeworkgen.sh Update WORKFLOW_XC_PATH --- scripts/xcframeworkgen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index 83447ca2..fa3b4620 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -2,7 +2,7 @@ PROJECT_DIR="$(dirname "$0")/.." BUILD_PATH="${PROJECT_DIR}/.build" -WORKFLOW_XC_PATH="${PROJECT_DIR}/.github/workflows/frameworks" +WORKFLOW_XC_PATH="${PROJECT_DIR}/frameworks" POD_PATH="${PROJECT_DIR}/Pods/PLCrashReporter" rm -rf ${BUILD_PATH} From 1a102b480d7b75ba3a8208eeaa8789bb2fc2fe9b Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Thu, 1 Aug 2024 18:28:51 -0400 Subject: [PATCH 28/39] Add macos signing and provisioning --- .github/workflows/deploy.yml | 24 ++++++++++++++++++++---- Backtrace.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index eaa18f91..929b9b36 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -58,32 +58,48 @@ jobs: - name: Install the Apple certificate and provisioning profile env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.P12_PASSWORD }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} + MAC_BUILD_CERTIFICATE_BASE64: ${{ secrets.MAC_BUILD_CERTIFICATE_BASE64 }} + MAC_BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.MAC_BUILD_PROVISION_PROFILE_BASE64 }} + P12_PASSWORD: ${{ secrets.P12_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | # create variables CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision + + MAC_CERTIFICATE_PATH=$RUNNER_TEMP/mac_build_certificate.p12 + MAC_PP_PATH=$RUNNER_TEMP/mac_build_pp.provisionprofile + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db - # import certificate and provisioning profile from secrets + # import iOS certificate and provisioning profile from secrets echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH + # import macOS certificate and provisioning profile from secrets + echo -n "$MAC_BUILD_CERTIFICATE_BASE64" | base64 --decode -o $MAC_CERTIFICATE_PATH + echo -n "$MAC_BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $MAC_PP_PATH + # create temporary keychain security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH - # import certificate to keychain + # import iOS certificate to keychain security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH - # apply provisioning profile + # import macOS certificate to keychain + security import $MAC_CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # apply provisioning profiles mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles + cp $MAC_PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles - name: Build frameworks run: sh scripts/xcframeworkgen.sh diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 19c53f98..0327812d 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2460,7 +2460,7 @@ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; @@ -2554,7 +2554,7 @@ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; From 022e20bdd0a0978b98a23a77d626c1af773e90ff Mon Sep 17 00:00:00 2001 From: Melek Ramki Date: Thu, 1 Aug 2024 18:50:39 -0400 Subject: [PATCH 29/39] Update project.pbxproj --- Backtrace.xcodeproj/project.pbxproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 0327812d..da9af099 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2457,12 +2457,12 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=xros*]" = "Apple Development"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; @@ -2554,7 +2554,7 @@ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application: SAUCE LABS INC (JWKXD469L2)"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; From c1f56b20a3c64deef40ffbbc89f91cc46c6fa750 Mon Sep 17 00:00:00 2001 From: melekr Date: Fri, 2 Aug 2024 17:17:31 -0400 Subject: [PATCH 30/39] Remove unused vendored framework --- Backtrace.xcodeproj/project.pbxproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index da9af099..9829bdb3 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -584,8 +584,6 @@ F2D8BE4F21BDA7D0007CFEFA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; F2D8BE5021BDA7D0007CFEFA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; F2D8BE5221BDA7D0007CFEFA /* Example_macOS_ObjC.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Example_macOS_ObjC.entitlements; sourceTree = ""; }; - F2D8BF1B21BDBA5B007CFEFA /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = Vendor/macOS/CrashReporter.framework; sourceTree = ""; }; - F2D8BF1D21BDBB93007CFEFA /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = Vendor/iOS/CrashReporter.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1100,8 +1098,6 @@ F2D56BC721BBEE2E007D4A03 /* Frameworks */ = { isa = PBXGroup; children = ( - F2D8BF1D21BDBB93007CFEFA /* CrashReporter.framework */, - F2D8BF1B21BDBA5B007CFEFA /* CrashReporter.framework */, 81F19800C7ECF089E0EEBFDF /* Pods_Backtrace_iOS.framework */, 43E3476EC18BF98BEF9DBA61 /* Pods_Backtrace_iOSTests.framework */, A029D9F3B2C21AAB02251487 /* Pods_Backtrace_macOS.framework */, From 1b13b09f3540a8cbd80d071b6b51f5ca4da1d02b Mon Sep 17 00:00:00 2001 From: melekr Date: Fri, 2 Aug 2024 17:22:48 -0400 Subject: [PATCH 31/39] Add Simulator support Add iOS Simulator and tvOS Simulator destinations Specify DEBUG_INFORMATION_FORMAT Specify GCC_GENERATE_DEBUGGING_SYMBOLS --- scripts/xcframeworkgen.sh | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index fa3b4620..c8cfc88d 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -4,43 +4,75 @@ PROJECT_DIR="$(dirname "$0")/.." BUILD_PATH="${PROJECT_DIR}/.build" WORKFLOW_XC_PATH="${PROJECT_DIR}/frameworks" POD_PATH="${PROJECT_DIR}/Pods/PLCrashReporter" +DERIVED_DATA_PATH="${PROJECT_DIR}/.derivedData" rm -rf ${BUILD_PATH} rm -rf ${WORKFLOW_XC_PATH} +rm -rf ${DERIVED_DATA_PATH} mkdir ${BUILD_PATH} mkdir ${WORKFLOW_XC_PATH} - +mkdir ${DERIVED_DATA_PATH} xcodebuild archive \ -workspace Backtrace.xcworkspace \ -scheme "Backtrace-iOS-lib" \ -destination "generic/platform=iOS" \ -archivePath ${BUILD_PATH}/Backtrace-iOS-lib.xcarchive \ + -derivedDataPath ${DERIVED_DATA_PATH} \ + -configuration Release \ + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + xcodebuild archive \ + -workspace Backtrace.xcworkspace \ + -scheme "Backtrace-iOS-lib" \ + -destination "generic/platform=iOS Simulator" \ + -archivePath ${BUILD_PATH}/Backtrace-iOS-Simulator-lib.xcarchive \ + -derivedDataPath ${DERIVED_DATA_PATH} \ + -configuration Release \ + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ -scheme "Backtrace-macOS-lib" \ -destination "platform=macOS" \ -archivePath ${BUILD_PATH}/Backtrace-macOS-lib.xcarchive \ + -derivedDataPath ${DERIVED_DATA_PATH} \ + -configuration Release \ + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO - xcodebuild archive \ -workspace Backtrace.xcworkspace \ -scheme "Backtrace-tvOS-lib" \ -destination "generic/platform=tvOS" \ -archivePath ${BUILD_PATH}/Backtrace-tvOS-lib.xcarchive \ + -derivedDataPath ${DERIVED_DATA_PATH} \ + -configuration Release \ + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + + xcodebuild archive \ + -workspace Backtrace.xcworkspace \ + -scheme "Backtrace-tvOS-lib" \ + -destination "generic/platform=tvOS Simulator" \ + -archivePath ${BUILD_PATH}/Backtrace-tvOS-Simulator-lib.xcarchive \ + -derivedDataPath ${DERIVED_DATA_PATH} \ + -configuration Release \ + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild -create-xcframework \ -archive ${BUILD_PATH}/Backtrace-iOS-lib.xcarchive -framework Backtrace.framework \ + -archive ${BUILD_PATH}/Backtrace-iOS-Simulator-lib.xcarchive -framework Backtrace.framework \ -archive ${BUILD_PATH}/Backtrace-macOS-lib.xcarchive -framework Backtrace.framework \ -archive ${BUILD_PATH}/Backtrace-tvOS-lib.xcarchive -framework Backtrace.framework \ + -archive ${BUILD_PATH}/Backtrace-tvOS-Simulator-lib.xcarchive -framework Backtrace.framework \ -output ${WORKFLOW_XC_PATH}/Backtrace.xcframework rm -rf ${BUILD_PATH} +rm -rf ${DERIVED_DATA_PATH} if [ ! -d "$POD_PATH" ]; then echo "Error: Source directory '$POD_PATH' does not exist." @@ -48,4 +80,3 @@ if [ ! -d "$POD_PATH" ]; then fi cp -r "$POD_PATH" "$WORKFLOW_XC_PATH" - From 9b4b9c2dddd1e9ec51a78d42ad98dd7c8e704d37 Mon Sep 17 00:00:00 2001 From: melekr Date: Fri, 2 Aug 2024 17:56:33 -0400 Subject: [PATCH 32/39] Set DEVELOPMENT_TEAM secret --- .github/workflows/deploy.yml | 3 ++- Backtrace.xcodeproj/project.pbxproj | 26 +++++++++++++------------- scripts/xcframeworkgen.sh | 10 +++++----- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 929b9b36..a17ae7cc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -102,9 +102,10 @@ jobs: cp $MAC_PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles - name: Build frameworks - run: sh scripts/xcframeworkgen.sh env: BACKTRACE_VERSION: ${{ github.ref_name }} + DEVELOPMENT_TEAM: ${{ secrets.DEVELOPMENT_TEAM }} + run: sh scripts/xcframeworkgen.sh - name: Tar files to preserve file permissions run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index 9829bdb3..eee69ec1 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2465,12 +2465,12 @@ CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=appletvos*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=driverkit*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=macosx*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=watchos*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=xros*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=appletvos*]" = ""; + "DEVELOPMENT_TEAM[sdk=driverkit*]" = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = ""; + "DEVELOPMENT_TEAM[sdk=watchos*]" = ""; + "DEVELOPMENT_TEAM[sdk=xros*]" = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2550,7 +2550,7 @@ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=driverkit*]" = "-"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application: SAUCE LABS INC (JWKXD469L2)"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=xros*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; @@ -2558,12 +2558,12 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=appletvos*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=driverkit*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=macosx*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=watchos*]" = JWKXD469L2; - "DEVELOPMENT_TEAM[sdk=xros*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=appletvos*]" = ""; + "DEVELOPMENT_TEAM[sdk=driverkit*]" = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = ""; + "DEVELOPMENT_TEAM[sdk=watchos*]" = ""; + "DEVELOPMENT_TEAM[sdk=xros*]" = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index c8cfc88d..10dcf7b3 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -21,7 +21,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -31,7 +31,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -41,7 +41,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -51,7 +51,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -61,7 +61,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild -create-xcframework \ -archive ${BUILD_PATH}/Backtrace-iOS-lib.xcarchive -framework Backtrace.framework \ From e1782ad58eb2a32e6de3a303e34385e0cb65c01d Mon Sep 17 00:00:00 2001 From: melekr Date: Fri, 2 Aug 2024 18:21:10 -0400 Subject: [PATCH 33/39] Update Build frameworks step --- .github/workflows/deploy.yml | 2 +- scripts/xcframeworkgen.sh | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a17ae7cc..2b7afe6d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -102,10 +102,10 @@ jobs: cp $MAC_PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles - name: Build frameworks + run: sh scripts/xcframeworkgen.sh env: BACKTRACE_VERSION: ${{ github.ref_name }} DEVELOPMENT_TEAM: ${{ secrets.DEVELOPMENT_TEAM }} - run: sh scripts/xcframeworkgen.sh - name: Tar files to preserve file permissions run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index 10dcf7b3..a6ce6a3e 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -13,6 +13,13 @@ mkdir ${BUILD_PATH} mkdir ${WORKFLOW_XC_PATH} mkdir ${DERIVED_DATA_PATH} + +if [ -z "$DEVELOPMENT_TEAM" ]; then + echo "DEVELOPMENT_TEAM is not set or is empty" +else + echo "The value of DEVELOPMENT_TEAM is: $DEVELOPMENT_TEAM" +fi + xcodebuild archive \ -workspace Backtrace.xcworkspace \ -scheme "Backtrace-iOS-lib" \ From 2bc4b39c7c41fc70c32375ee484ba273546ac766 Mon Sep 17 00:00:00 2001 From: melekr Date: Fri, 2 Aug 2024 19:07:39 -0400 Subject: [PATCH 34/39] Use vars instead of secrets --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2b7afe6d..81471511 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -105,7 +105,7 @@ jobs: run: sh scripts/xcframeworkgen.sh env: BACKTRACE_VERSION: ${{ github.ref_name }} - DEVELOPMENT_TEAM: ${{ secrets.DEVELOPMENT_TEAM }} + DEVELOPMENT_TEAM: ${{ vars.DEVELOPMENT_TEAM }} - name: Tar files to preserve file permissions run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ From ada7457debec44a730a41768077e89a1e716d0f1 Mon Sep 17 00:00:00 2001 From: melekr Date: Fri, 2 Aug 2024 19:28:16 -0400 Subject: [PATCH 35/39] Update DEVELOPMENT_TEAM --- .github/workflows/deploy.yml | 1 - Backtrace.xcodeproj/project.pbxproj | 20 ++++++++++---------- scripts/xcframeworkgen.sh | 17 +++++------------ 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 81471511..929b9b36 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -105,7 +105,6 @@ jobs: run: sh scripts/xcframeworkgen.sh env: BACKTRACE_VERSION: ${{ github.ref_name }} - DEVELOPMENT_TEAM: ${{ vars.DEVELOPMENT_TEAM }} - name: Tar files to preserve file permissions run: tar -cvzf Archive_XCFrameworks_${{ github.ref_name }}.tar.gz frameworks/ diff --git a/Backtrace.xcodeproj/project.pbxproj b/Backtrace.xcodeproj/project.pbxproj index eee69ec1..ecad170c 100644 --- a/Backtrace.xcodeproj/project.pbxproj +++ b/Backtrace.xcodeproj/project.pbxproj @@ -2465,12 +2465,12 @@ CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=appletvos*]" = ""; + "DEVELOPMENT_TEAM[sdk=appletvos*]" = JWKXD469L2; "DEVELOPMENT_TEAM[sdk=driverkit*]" = ""; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = ""; - "DEVELOPMENT_TEAM[sdk=macosx*]" = ""; - "DEVELOPMENT_TEAM[sdk=watchos*]" = ""; - "DEVELOPMENT_TEAM[sdk=xros*]" = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=macosx*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=watchos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=xros*]" = JWKXD469L2; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -2558,12 +2558,12 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; - "DEVELOPMENT_TEAM[sdk=appletvos*]" = ""; + "DEVELOPMENT_TEAM[sdk=appletvos*]" = JWKXD469L2; "DEVELOPMENT_TEAM[sdk=driverkit*]" = ""; - "DEVELOPMENT_TEAM[sdk=iphoneos*]" = ""; - "DEVELOPMENT_TEAM[sdk=macosx*]" = ""; - "DEVELOPMENT_TEAM[sdk=watchos*]" = ""; - "DEVELOPMENT_TEAM[sdk=xros*]" = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=macosx*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=watchos*]" = JWKXD469L2; + "DEVELOPMENT_TEAM[sdk=xros*]" = JWKXD469L2; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index a6ce6a3e..c8cfc88d 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -13,13 +13,6 @@ mkdir ${BUILD_PATH} mkdir ${WORKFLOW_XC_PATH} mkdir ${DERIVED_DATA_PATH} - -if [ -z "$DEVELOPMENT_TEAM" ]; then - echo "DEVELOPMENT_TEAM is not set or is empty" -else - echo "The value of DEVELOPMENT_TEAM is: $DEVELOPMENT_TEAM" -fi - xcodebuild archive \ -workspace Backtrace.xcworkspace \ -scheme "Backtrace-iOS-lib" \ @@ -28,7 +21,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -38,7 +31,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -48,7 +41,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -58,7 +51,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild archive \ -workspace Backtrace.xcworkspace \ @@ -68,7 +61,7 @@ xcodebuild archive \ -derivedDataPath ${DERIVED_DATA_PATH} \ -configuration Release \ DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" GCC_GENERATE_DEBUGGING_SYMBOLS=YES \ - DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO + BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO xcodebuild -create-xcframework \ -archive ${BUILD_PATH}/Backtrace-iOS-lib.xcarchive -framework Backtrace.framework \ From 633d66233d52bac8762f763ed19c7406548ab83a Mon Sep 17 00:00:00 2001 From: melekr Date: Mon, 5 Aug 2024 13:52:56 -0400 Subject: [PATCH 36/39] Delete Podfile --- .github/workflows/Podfile | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 .github/workflows/Podfile diff --git a/.github/workflows/Podfile b/.github/workflows/Podfile deleted file mode 100644 index 633feab8..00000000 --- a/.github/workflows/Podfile +++ /dev/null @@ -1,34 +0,0 @@ -# We do not support iOS <11, so set that as minimum -platform :ios, '11.0' - -plugin 'cocoapods-rome', { :pre_compile => Proc.new { |installer| - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - # Based on the environment variable, either build with our without Swift libraries embedded (needed for iOS >10, <12.2) https://developer.apple.com/documentation/xcode-release-notes/swift-5-release-notes-for-xcode-10_2 - config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = ENV['SWIFT_EMBEDDED'] - config.build_settings['SWIFT_VERSION'] = '5' - - # Based on the environment variable, either build with our without Bitcode - config.build_settings['ENABLE_BITCODE'] = ENV['ENABLE_BITCODE'] - config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' - - # Exclude building for arm64 simulator (M1 chipset). XCFrameworks are needed to support this properly, future work - config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' - - # These two options seem to be defaults already, so probably not critical - config.build_settings['VALIDATE_WORKSPACE'] = 'YES' - config.build_settings['BUILD_LIBRARIES_FOR_DISTRIBUTION'] = 'YES' - end - end - - installer.pods_project.save -}, - - dsym: true, - configuration: 'Release' -} - -target 'backtrace' do - use_frameworks! - pod 'Backtrace' -end \ No newline at end of file From 5ab00e5d809ae4628c1d01e5c4bd017caa0ba1d7 Mon Sep 17 00:00:00 2001 From: melekr Date: Mon, 5 Aug 2024 14:26:04 -0400 Subject: [PATCH 37/39] Bump sdk version and update Changelog --- Backtrace.podspec | 2 +- CHANGELOG.md | 3 +++ Podfile.lock | 4 ++-- Sources/Features/Attributes/DefaultAttributes.swift | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Backtrace.podspec b/Backtrace.podspec index e945f2f9..5a9c3c48 100644 --- a/Backtrace.podspec +++ b/Backtrace.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |s| s.name = "Backtrace" - s.version = "2.0.5" + s.version = "2.0.5-alpha1" s.swift_version = '5' s.summary = "Backtrace's integration with iOS, macOS and tvOS" s.description = "Reliable crash and hang reporting for iOS, macOS and tvOS." diff --git a/CHANGELOG.md b/CHANGELOG.md index 1326f491..961740aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Backtrace Cocoa Release Notes +## Version 2.0.5-alpha1 +- Distributes XCFramework (#137) + ## Version 2.0.5 - Enables client side unwinding default setting (#134) - Fixes Cocoapods deployment (#135) diff --git a/Podfile.lock b/Podfile.lock index 8dc29d51..a6f481c6 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Backtrace (2.0.5-beta2): + - Backtrace (2.0.5-alpha1): - PLCrashReporter (= 1.11) - Nimble (10.0.0) - PLCrashReporter (1.11.0) @@ -22,7 +22,7 @@ EXTERNAL SOURCES: :path: "./Backtrace.podspec" SPEC CHECKSUMS: - Backtrace: edc722bb51df4df8bde18abf92020f11cf9d3f74 + Backtrace: 0ae754187513e780c86fc82c9a4a2e7710f595d0 Nimble: 5316ef81a170ce87baf72dd961f22f89a602ff84 PLCrashReporter: 7a9dff14a23ba5d2e28c6160f0bb6fada5e71a8d Quick: 749aa754fd1e7d984f2000fe051e18a3a9809179 diff --git a/Sources/Features/Attributes/DefaultAttributes.swift b/Sources/Features/Attributes/DefaultAttributes.swift index bc4fff5e..13de58e8 100644 --- a/Sources/Features/Attributes/DefaultAttributes.swift +++ b/Sources/Features/Attributes/DefaultAttributes.swift @@ -200,7 +200,7 @@ struct LibInfo: AttributesSource { private static let applicationGuidKey = "backtrace.unique.user.identifier" private static let applicationLangName = "backtrace-cocoa" - var backtraceVersion = "2.0.5" + var backtraceVersion = "2.0.5-alpha1" var immutable: [String: Any?] { return ["guid": LibInfo.guid(store: UserDefaultsStore.self).uuidString, From 2c902c144bf392dd4599c0c83b036045f49b3d0f Mon Sep 17 00:00:00 2001 From: melekr Date: Tue, 6 Aug 2024 15:39:09 -0400 Subject: [PATCH 38/39] Exit when xcframework is not generated --- scripts/xcframeworkgen.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/xcframeworkgen.sh b/scripts/xcframeworkgen.sh index c8cfc88d..28942c76 100644 --- a/scripts/xcframeworkgen.sh +++ b/scripts/xcframeworkgen.sh @@ -74,6 +74,12 @@ xcodebuild -create-xcframework \ rm -rf ${BUILD_PATH} rm -rf ${DERIVED_DATA_PATH} +if [ ! -d "${WORKFLOW_XC_PATH}/Backtrace.xcframework" ]; then + echo "Error: xcframework failed" + rm -rf ${WORKFLOW_XC_PATH} + exit 1 +fi + if [ ! -d "$POD_PATH" ]; then echo "Error: Source directory '$POD_PATH' does not exist." exit 1 From 8116ae83c91d2e36540869d1a1676f9a173b9200 Mon Sep 17 00:00:00 2001 From: melekr Date: Tue, 6 Aug 2024 15:52:49 -0400 Subject: [PATCH 39/39] Restore pod trunk --- scripts/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 582a8f97..5e58544a 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -6,4 +6,4 @@ set -o xtrace # to trace what gets executed. Useful for debugging # This script requires the `COCOAPODS_TRUNK_TOKEN` env var to be set. # See more: https://fuller.li/posts/automated-cocoapods-releases-with-ci/. -#pod trunk push Backtrace.podspec --allow-warnings +pod trunk push Backtrace.podspec --allow-warnings