diff --git a/.craft.yml b/.craft.yml index 67788e5eab..a942e05ee2 100644 --- a/.craft.yml +++ b/.craft.yml @@ -3,9 +3,6 @@ changelogPolicy: auto preReleaseCommand: bash ./scripts/bump.sh targets: - name: github - - name: cocoapods - id: sentryprivate-cocoapod - specPath: SentryPrivate.podspec - name: cocoapods id: sentry-cocoapod specPath: Sentry.podspec diff --git a/.github/last-release-runid b/.github/last-release-runid new file mode 100644 index 0000000000..48082f72f0 --- /dev/null +++ b/.github/last-release-runid @@ -0,0 +1 @@ +12 diff --git a/.github/workflows/benchmarking.yml b/.github/workflows/benchmarking.yml index 5002c7538a..0897087e50 100644 --- a/.github/workflows/benchmarking.yml +++ b/.github/workflows/benchmarking.yml @@ -126,6 +126,8 @@ jobs: MATCH_GIT_PRIVATE_KEY: ${{ secrets.MATCH_GIT_PRIVATE_KEY }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_USERNAME: ${{ secrets.MATCH_USERNAME }} + - name: Build Framework + run: make build-xcframework - name: Build test app with sentry run: bundle exec fastlane build_perf_test_app_sentry env: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4473320a88..2fae7ec276 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -97,7 +97,30 @@ jobs: steps: - uses: actions/checkout@v4 - run: ./scripts/ci-select-xcode.sh 15.2 - - run: make build-xcframework + - run: echo "FRAMEWORK_RUN_ID=$(./scripts/xcframework-generated-run.sh)" >> $GITHUB_ENV + + - uses: actions/download-artifact@v4 + if: startsWith(github.ref, 'refs/heads/release/') + with: + name: xcframeworks.zip + path: Carthage/ + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ env.FRAMEWORK_RUN_ID }} + + - name: Check XCFramework + #We dont compile the framework during releases to not change the artefact SHA value + #instead we use the one archive as an artefact + if: startsWith(github.ref, 'refs/heads/release/') + run: | + ls -R Carthage + if [ ! -f Carthage/Sentry.xcframework.zip ]; then + echo "XCFramework is not available" + exit 1 + fi + + - name: Build xcframework + if: startsWith(github.ref, 'refs/heads/release/') == false + run: make build-xcframework shell: sh - name: Archiving XCFramework.zip @@ -106,7 +129,7 @@ jobs: name: ${{ github.sha }} if-no-files-found: error path: | - ${{ github.workspace }}/*.zip + ${{ github.workspace }}/Carthage/*.zip - name: Archive build log if failed uses: actions/upload-artifact@v4 @@ -135,15 +158,17 @@ jobs: validate-spm: name: Validate Swift Package Manager runs-on: macos-13 + needs: build-xcframework steps: - uses: actions/checkout@v4 - - name: Set SPM revision to current git commit - run: >- - if [[ "${{ github.event.pull_request.head.sha }}" != "" ]]; then - sed -i '' 's/.branch("main")/.revision("${{ github.event.pull_request.head.sha }}")/g' Samples/macOS-SPM-CommandLine/Package.swift - else - sed -i '' 's/.branch("main")/.revision("${{ github.sha }}")/g' Samples/macOS-SPM-CommandLine/Package.swift - fi + - uses: actions/download-artifact@v4 + with: + name: ${{ github.sha }} + - name: Change path of the framework + run: | + sed -i '' 's/url.*//g' Package.swift + sed -i '' 's/checksum: ".*" \/\/Sentry-Static/path: "Sentry.xcframework.zip"/g' Package.swift + sed -i '' 's/checksum: ".*" \/\/Sentry-Dynamic/path: "Sentry-Dynamic.xcframework.zip"/g' Package.swift shell: bash - run: swift build working-directory: Samples/macOS-SPM-CommandLine @@ -152,15 +177,17 @@ jobs: validate-spm-dynamic: name: Validate Swift Package Manager Dynamic runs-on: macos-13 + needs: build-xcframework steps: - uses: actions/checkout@v4 - - name: Set SPM revision to current git commit - run: >- - if [[ "${{ github.event.pull_request.head.sha }}" != "" ]]; then - sed -i '' 's/.branch("main")/.revision("${{ github.event.pull_request.head.sha }}")/g' Samples/SPM-Dynamic/Package.swift - else - sed -i '' 's/.branch("main")/.revision("${{ github.sha }}")/g' Samples/SPM-Dynamic/Package.swift - fi + - uses: actions/download-artifact@v4 + with: + name: ${{ github.sha }} + - name: Change path of the framework + run: | + sed -i '' 's/url.*//g' Package.swift + sed -i '' 's/checksum: ".*" \/\/Sentry-Static/path: "Sentry.xcframework.zip"/g' Package.swift + sed -i '' 's/checksum: ".*" \/\/Sentry-Dynamic/path: "Sentry-Dynamic.xcframework.zip"/g' Package.swift shell: bash - run: swift build working-directory: Samples/SPM-Dynamic @@ -169,8 +196,18 @@ jobs: swift-build: name: Build with Swift runs-on: macos-13 + needs: build-xcframework steps: - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + name: ${{ github.sha }} + - name: Change path of the framework + run: | + sed -i '' 's/url.*//g' Package.swift + sed -i '' 's/checksum: ".*" \/\/Sentry-Static/path: "Sentry.xcframework.zip"/g' Package.swift + sed -i '' 's/checksum: ".*" \/\/Sentry-Dynamic/path: "Sentry-Dynamic.xcframework.zip"/g' Package.swift + shell: bash - run: swift build shell: sh diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9b3eea847e..81efb9e867 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -72,4 +72,4 @@ jobs: - run: ./scripts/ci-select-xcode.sh - run: pod repo update - name: Validate HybridPod Podspec - run: pod lib lint ./Tests/HybridSDKTest/HybridPod.podspec --allow-warnings --verbose --platforms=ios "--include-podspecs={SentryPrivate.podspec,Sentry.podspec}" + run: pod lib lint ./Tests/HybridSDKTest/HybridPod.podspec --allow-warnings --verbose --platforms=ios "--include-podspecs={Sentry.podspec}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d52abc42b..44085cf502 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,16 +13,49 @@ on: required: false jobs: + prepare_framework: + runs-on: macos-13-xlarge + name: 'Create XCFramework' + steps: + - uses: actions/checkout@v4 + + - name: 'Generate XCFramework' + run: | + ./scripts/ci-select-xcode.sh 15.2 + # We need to build the framework during release to get it's SHA value + # the framework will be saved as an artefact and we will use the same + # binary for the entire release process to avoid the SHA to change + make build-xcframework + + - uses: actions/upload-artifact@v4 + with: + name: xcframeworks.zip + path: | + Carthage/Sentry.xcframework.zip + Carthage/Sentry-Dynamic.xcframework.zip + Carthage/SentrySwiftUI.xcframework.zip + overwrite: true + job_release: runs-on: ubuntu-latest name: 'Release a new version' + needs: prepare_framework steps: - name: Check out current commit (${{ github.sha }}) uses: actions/checkout@v4 with: token: ${{ secrets.GH_RELEASE_PAT }} fetch-depth: 0 - + + - uses: actions/download-artifact@v4 + with: + name: xcframeworks.zip + path: Carthage/ + + # update-package-sha.sh uses this env variable to update Package.swift. + # During release Craft calls bump.sh that uses update-package-sha.sh. + - run: export GITHUB_RUN_ID=${{ github.run_id }} + - name: Prepare release uses: getsentry/action-prepare-release@v1 env: diff --git a/CHANGELOG.md b/CHANGELOG.md index b0c7e08872..9214f0e9e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Improvements + +- Remove SentryPrivate library (#3623) + ### Fixes - Make SentryFramesTracker available for HybridSDKs ([#3683](https://github.com/getsentry/sentry-cocoa/pull/3683)) diff --git a/Makefile b/Makefile index fa81df596b..f92d73034c 100644 --- a/Makefile +++ b/Makefile @@ -60,9 +60,11 @@ analyze: # For more info check out: https://github.com/Carthage/Carthage/releases/tag/0.38.0 build-xcframework: @echo "--> Carthage: creating Sentry xcframework" - carthage build --use-xcframeworks --no-skip-current --verbose > build-xcframework.log + ./scripts/build-xcframework.sh > build-xcframework.log # use ditto here to avoid clobbering symlinks which exist in macOS frameworks - ditto -c -k -X --rsrc --keepParent Carthage Sentry.xcframework.zip + ditto -c -k -X --rsrc --keepParent Carthage/Sentry.xcframework Carthage/Sentry.xcframework.zip + ditto -c -k -X --rsrc --keepParent Carthage/Sentry-Dynamic.xcframework Carthage/Sentry-Dynamic.xcframework.zip + ditto -c -k -X --rsrc --keepParent Carthage/SentrySwiftUI.xcframework Carthage/SentrySwiftUI.xcframework.zip build-xcframework-sample: ./scripts/create-carthage-json.sh diff --git a/Package.swift b/Package.swift index d5c1b51dce..dc9cb29114 100644 --- a/Package.swift +++ b/Package.swift @@ -6,57 +6,34 @@ let package = Package( platforms: [.iOS(.v11), .macOS(.v10_13), .tvOS(.v11), .watchOS(.v4)], products: [ .library(name: "Sentry", targets: ["Sentry"]), - .library(name: "Sentry-Dynamic", type: .dynamic, targets: ["Sentry"]), - .library(name: "SentrySwiftUI", targets: ["SentrySwiftUI"]) + .library(name: "Sentry-Dynamic", targets: ["Sentry-Dynamic"]), + .library(name: "SentrySwiftUI", targets: ["Sentry", "SentrySwiftUI"]) ], targets: [ - .target( - name: "Sentry", - dependencies: ["SentryPrivate"], - path: "Sources", - sources: [ - "Sentry/", - "SentryCrash/" - ], - publicHeadersPath: "Sentry/Public/", - cxxSettings: [ - .define("GCC_ENABLE_CPP_EXCEPTIONS", to: "YES"), - .headerSearchPath("Sentry/include"), - .headerSearchPath("Sentry/include/HybridPublic"), - .headerSearchPath("Sentry/Public"), - .headerSearchPath("SentryCrash/Installations"), - .headerSearchPath("SentryCrash/Recording"), - .headerSearchPath("SentryCrash/Recording/Monitors"), - .headerSearchPath("SentryCrash/Recording/Tools"), - .headerSearchPath("SentryCrash/Reporting/Filters"), - .headerSearchPath("SentryCrash/Reporting/Filters/Tools"), - .headerSearchPath("SentryCrash/Reporting/Tools") - ] - ), - .target( name: "SentryPrivate", - path: "Sources", - sources: [ - "Swift" - ], - resources: [ - .copy("Resources/PrivacyInfo.xcprivacy") - ] - ), + .binaryTarget( + name: "Sentry", + url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.22.0-alpha.0/Sentry.xcframework.zip", + checksum: "86156301aee5c8774a8cd5c240286f914f6e7721aaac5a7c9d049ea613a4b730" //Sentry-Static + ), + .binaryTarget( + name: "Sentry-Dynamic", + url: "https://github.com/getsentry/sentry-cocoa/releases/download/8.22.0-alpha.0/Sentry-Dynamic.xcframework.zip", + checksum: "86156301aee5c8774a8cd5c240286f914f6e7721aaac5a7c9d049ea613a4b730" //Sentry-Dynamic + ), .target ( name: "SentrySwiftUI", dependencies: ["Sentry", "SentryInternal"], - path: "Sources", - exclude: ["SentrySwiftUI/SentryInternal/"], - sources: [ - "SentrySwiftUI" + path: "Sources/SentrySwiftUI", + exclude: ["SentryInternal/", "module.modulemap"], + linkerSettings: [ + .linkedFramework("Sentry") ] ), - //SentryInternal is how we expose some internal Sentry SDK classes to SentrySwiftUI. .target( name: "SentryInternal", - path: "Sources", + path: "Sources/SentrySwiftUI", sources: [ - "SentrySwiftUI/SentryInternal/" + "SentryInternal/" ], - publicHeadersPath: "SentrySwiftUI/SentryInternal/" + publicHeadersPath: "SentryInternal/" ) ], cxxLanguageStandard: .cxx14 diff --git a/Samples/SPM-Dynamic/Package.swift b/Samples/SPM-Dynamic/Package.swift index 03d09e7886..63bedac9a5 100644 --- a/Samples/SPM-Dynamic/Package.swift +++ b/Samples/SPM-Dynamic/Package.swift @@ -7,16 +7,16 @@ let package = Package( name: "SPM-Dynamic", platforms: [.macOS(.v10_13)], products: [ - .library(name: "SPM-Dynamic", type: .dynamic, targets: ["SPM-Dynamic"]) + .executable(name: "SPM-Dynamic", targets: ["SPM-Dynamic"]) ], dependencies: [ // branch is replaced in CI to the current sha - .package(name: "Sentry", url: "https://github.com/getsentry/sentry-cocoa", .branch("main") ) + .package(name: "Sentry", path: "../../../sentry-cocoa") ], targets: [ .target( name: "SPM-Dynamic", - dependencies: ["Sentry"], + dependencies: [.product(name: "Sentry-Dynamic", package: "Sentry")], swiftSettings: [ .unsafeFlags(["-warnings-as-errors"]) ]) diff --git a/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift b/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift index 6c45048330..26cd244d1b 100644 --- a/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift +++ b/Samples/iOS-Swift/iOS-Swift/AppDelegate.swift @@ -179,7 +179,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { let appSupport = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).first! let cache = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first! for path in [appSupport, cache] { - for item in FileManager.default.enumerator(atPath: path)! { + guard let files = FileManager.default.enumerator(atPath: path) else { return } + for item in files { try! FileManager.default.removeItem(atPath: (path as NSString).appendingPathComponent((item as! String))) } } diff --git a/Samples/macOS-SPM-CommandLine/Package.swift b/Samples/macOS-SPM-CommandLine/Package.swift index 8193a6fa53..b2dec63aee 100644 --- a/Samples/macOS-SPM-CommandLine/Package.swift +++ b/Samples/macOS-SPM-CommandLine/Package.swift @@ -6,8 +6,7 @@ import PackageDescription let package = Package( name: "macOS-SPM-CommandLine", dependencies: [ - // branch is replaced in CI to the current sha - .package(name: "Sentry", url: "https://github.com/getsentry/sentry-cocoa", .branch("main") ) + .package(name: "Sentry", path: "../../../sentry-cocoa") ], targets: [ .target( diff --git a/Sentry.podspec b/Sentry.podspec index f127e4840e..73146d2d83 100644 --- a/Sentry.podspec +++ b/Sentry.podspec @@ -21,17 +21,17 @@ Pod::Spec.new do |s| 'GCC_ENABLE_CPP_EXCEPTIONS' => 'YES', 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14', 'CLANG_CXX_LIBRARY' => 'libc++', + 'APPLICATION_EXTENSION_API_ONLY' => 'YES' } s.watchos.pod_target_xcconfig = { 'OTHER_LDFLAGS' => '$(inherited) -framework WatchKit' } s.default_subspecs = ['Core'] - s.dependency "SentryPrivate", "8.21.0-beta.0" s.subspec 'Core' do |sp| sp.source_files = "Sources/Sentry/**/*.{h,hpp,m,mm,c,cpp}", - "Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}", "Sources/Swift/Sentry.swift" + "Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}", "Sources/Swift/**/*.{swift,h,hpp,m,mm,c,cpp}" sp.public_header_files = "Sources/Sentry/Public/*.h" sp.resource_bundles = { "Sentry" => "Sources/Resources/PrivacyInfo.xcprivacy" } @@ -39,7 +39,7 @@ Pod::Spec.new do |s| s.subspec 'HybridSDK' do |sp| sp.source_files = "Sources/Sentry/**/*.{h,hpp,m,mm,c,cpp}", - "Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}", "Sources/Swift/Sentry.swift" + "Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}", "Sources/Swift/**/*.{swift,h,hpp,m,mm,c,cpp}" sp.public_header_files = "Sources/Sentry/Public/*.h", "Sources/Sentry/include/HybridPublic/*.h" diff --git a/Sentry.xcodeproj/project.pbxproj b/Sentry.xcodeproj/project.pbxproj index f9305909a4..e592ccc1cb 100644 --- a/Sentry.xcodeproj/project.pbxproj +++ b/Sentry.xcodeproj/project.pbxproj @@ -541,7 +541,6 @@ 7BD86ECD264A78A6005439DB /* SentryAppStartTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD86ECC264A78A6005439DB /* SentryAppStartTrackerTests.swift */; }; 7BD86ECF264A7C77005439DB /* SentryAppStartMeasurement.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BD86ECE264A7C77005439DB /* SentryAppStartMeasurement.h */; settings = {ATTRIBUTES = (Private, ); }; }; 7BD86ED1264A7CF6005439DB /* SentryAppStartMeasurement.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BD86ED0264A7CF6005439DB /* SentryAppStartMeasurement.m */; }; - 7BD9509F2924E3E1009EA8EB /* SentryMXManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD9509E2924E3E1009EA8EB /* SentryMXManager.swift */; }; 7BDB03B7251364F800BAE198 /* SentryDispatchQueueWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BDB03B6251364F800BAE198 /* SentryDispatchQueueWrapper.h */; }; 7BDB03BB2513652900BAE198 /* SentryDispatchQueueWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB03BA2513652900BAE198 /* SentryDispatchQueueWrapper.m */; }; 7BDDE3CC2966BD4700EB9177 /* SentryMXManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDDE3CB2966BD4700EB9177 /* SentryMXManagerTests.swift */; }; @@ -571,7 +570,6 @@ 7BF536D124BDF3E7004FA6A2 /* SentryEnvelopeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF536D024BDF3E7004FA6A2 /* SentryEnvelopeTests.swift */; }; 7BF536D424BEF255004FA6A2 /* SentryAssertions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF536D324BEF255004FA6A2 /* SentryAssertions.swift */; }; 7BF6505F292B77EC00BBA5A8 /* SentryMetricKitIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF6505E292B77EC00BBA5A8 /* SentryMetricKitIntegrationTests.swift */; }; - 7BF65062292B8F1C00BBA5A8 /* SentryMXCallStackTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF65061292B8F1C00BBA5A8 /* SentryMXCallStackTree.swift */; }; 7BF65064292B905A00BBA5A8 /* SentryMXCallStackTreeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF65063292B905A00BBA5A8 /* SentryMXCallStackTreeTests.swift */; }; 7BF69E072987D1FE002EBCA4 /* SentryCrashDoctorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF69E062987D1FE002EBCA4 /* SentryCrashDoctorTests.swift */; }; 7BF9EF722722A84800B5BBEF /* SentryClassRegistrator.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BF9EF712722A84800B5BBEF /* SentryClassRegistrator.h */; }; @@ -665,7 +663,6 @@ 84AF45A629A7FFA500FBB177 /* SentryProfiledTracerConcurrency.h in Headers */ = {isa = PBXBuildFile; fileRef = 84AF45A429A7FFA500FBB177 /* SentryProfiledTracerConcurrency.h */; }; 84AF45A729A7FFA500FBB177 /* SentryProfiledTracerConcurrency.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84AF45A529A7FFA500FBB177 /* SentryProfiledTracerConcurrency.mm */; }; 84B7FA3529B285FC00AD93B1 /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63AA759B1EB8AEF500D153DE /* Sentry.framework */; }; - 84B7FA3629B285FF00AD93B1 /* SentryPrivate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D81A3488291D0AC0005A27A9 /* SentryPrivate.framework */; }; 84B7FA3C29B2876F00AD93B1 /* TestConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BAF3DD6243DD4A1008A5414 /* TestConstants.swift */; }; 84B7FA3D29B2879C00AD93B1 /* libSentryTestUtils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8431F00A29B284F200D8DC56 /* libSentryTestUtils.a */; }; 84B7FA3E29B28ADD00AD93B1 /* TestClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B944FAF2469B46000A10721 /* TestClient.swift */; }; @@ -750,6 +747,11 @@ D808FB88281AB33C009A2A33 /* SentryUIEventTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D808FB86281AB31D009A2A33 /* SentryUIEventTrackerTests.swift */; }; D808FB8B281BCE96009A2A33 /* TestSentrySwizzleWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D808FB89281BCE46009A2A33 /* TestSentrySwizzleWrapper.swift */; }; D808FB92281BF6EC009A2A33 /* SentryUIEventTrackingIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D808FB90281BF6E9009A2A33 /* SentryUIEventTrackingIntegrationTests.swift */; }; + D80CD8D02B75143F002F710B /* UrlSanitized.swift in Sources */ = {isa = PBXBuildFile; fileRef = D856272B2A374A8600FB8062 /* UrlSanitized.swift */; }; + D80CD8D12B751442002F710B /* HTTPHeaderSanitizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8292D7A2A38AF04009872F7 /* HTTPHeaderSanitizer.swift */; }; + D80CD8D22B751447002F710B /* SentryMXManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BD9509E2924E3E1009EA8EB /* SentryMXManager.swift */; }; + D80CD8D32B751447002F710B /* SentryMXCallStackTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BF65061292B8F1C00BBA5A8 /* SentryMXCallStackTree.swift */; }; + D80CD8D42B75144B002F710B /* SwiftDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D800942628F82F3A005D3943 /* SwiftDescriptor.swift */; }; D8137D54272B53070082656C /* TestSentrySpan.m in Sources */ = {isa = PBXBuildFile; fileRef = D8137D53272B53070082656C /* TestSentrySpan.m */; }; D8199DBE29376EDE0074249E /* SentryInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = D8199DB829376ECC0074249E /* SentryInternal.h */; }; D8199DBF29376EE20074249E /* SentryInternal.m in Sources */ = {isa = PBXBuildFile; fileRef = D8199DB929376ECC0074249E /* SentryInternal.m */; }; @@ -757,10 +759,7 @@ D8199DC129376EEC0074249E /* SentryTracedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8199DB629376ECC0074249E /* SentryTracedView.swift */; }; D8199DC229376FC10074249E /* Sentry.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63AA759B1EB8AEF500D153DE /* Sentry.framework */; }; D81A346C291AECC7005A27A9 /* PrivateSentrySDKOnly.h in Headers */ = {isa = PBXBuildFile; fileRef = D81A346B291AECC7005A27A9 /* PrivateSentrySDKOnly.h */; settings = {ATTRIBUTES = (Private, ); }; }; - D81A3491291D0AC8005A27A9 /* SwiftDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D800942628F82F3A005D3943 /* SwiftDescriptor.swift */; }; - D81A3492291D0AD5005A27A9 /* SentryPrivate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D81A3488291D0AC0005A27A9 /* SentryPrivate.framework */; }; D81FDF12280EA1060045E0E4 /* SentryScreenShotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81FDF10280EA0080045E0E4 /* SentryScreenShotTests.swift */; }; - D8292D7B2A38AF04009872F7 /* HTTPHeaderSanitizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8292D7A2A38AF04009872F7 /* HTTPHeaderSanitizer.swift */; }; D8292D7D2A39A027009872F7 /* UrlSanitizedTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8292D7C2A39A027009872F7 /* UrlSanitizedTests.swift */; }; D8370B6A273DF1E900F66E2D /* SentryNSURLSessionTaskSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = D8370B68273DF1E900F66E2D /* SentryNSURLSessionTaskSearch.m */; }; D8370B6C273DF20F00F66E2D /* SentryNSURLSessionTaskSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = D8370B6B273DF20F00F66E2D /* SentryNSURLSessionTaskSearch.h */; }; @@ -777,7 +776,6 @@ D855AD62286ED6A4002573E1 /* SentryCrashTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D855AD61286ED6A4002573E1 /* SentryCrashTests.m */; }; D855B3E827D652AF00BCED76 /* SentryCoreDataTrackingIntegrationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D855B3E727D652AF00BCED76 /* SentryCoreDataTrackingIntegrationTest.swift */; }; D855B3EA27D652C700BCED76 /* TestCoreDataStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D855B3E927D652C700BCED76 /* TestCoreDataStack.swift */; }; - D856272D2A3763B600FB8062 /* UrlSanitized.swift in Sources */ = {isa = PBXBuildFile; fileRef = D856272B2A374A8600FB8062 /* UrlSanitized.swift */; }; D85790292976A69F00C6AC1F /* TestDebugImageProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D85790282976A69F00C6AC1F /* TestDebugImageProvider.swift */; }; D85852B627ECEEDA00C6D8AE /* SentryScreenshot.m in Sources */ = {isa = PBXBuildFile; fileRef = D85852B427ECEEDA00C6D8AE /* SentryScreenshot.m */; }; D85852BA27EDDC5900C6D8AE /* SentryUIApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = D85852B827EDDC5900C6D8AE /* SentryUIApplication.m */; }; @@ -807,7 +805,6 @@ D88817DD26D72BA500BF2251 /* SentryTraceStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D88817DB26D72B7B00BF2251 /* SentryTraceStateTests.swift */; }; D8918B222849FA6D00701F9A /* SentrySDKIntegrationTestsBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8918B212849FA6D00701F9A /* SentrySDKIntegrationTestsBase.swift */; }; D8AB40DB2806EC1900E5E9F7 /* SentryScreenshotIntegration.h in Headers */ = {isa = PBXBuildFile; fileRef = D8AB40DA2806EC1900E5E9F7 /* SentryScreenshotIntegration.h */; }; - D8ABB0BC29264275005D1E24 /* Sentry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81A349B291D0C0B005A27A9 /* Sentry.swift */; }; D8ACE3C72762187200F5A213 /* SentryNSDataSwizzling.m in Sources */ = {isa = PBXBuildFile; fileRef = D8ACE3C42762187200F5A213 /* SentryNSDataSwizzling.m */; }; D8ACE3C82762187200F5A213 /* SentryNSDataTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = D8ACE3C52762187200F5A213 /* SentryNSDataTracker.m */; }; D8ACE3C92762187200F5A213 /* SentryFileIOTrackingIntegration.m in Sources */ = {isa = PBXBuildFile; fileRef = D8ACE3C62762187200F5A213 /* SentryFileIOTrackingIntegration.m */; }; @@ -850,13 +847,6 @@ remoteGlobalIDString = 63AA759A1EB8AEF500D153DE; remoteInfo = "Sentry-iOS"; }; - 8431EED129B27B1100D8DC56 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; - proxyType = 1; - remoteGlobalIDString = D81A3487291D0AC0005A27A9; - remoteInfo = SentryPrivate; - }; 8431EED329B27B1100D8DC56 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; @@ -871,20 +861,6 @@ remoteGlobalIDString = 63AA759A1EB8AEF500D153DE; remoteInfo = Sentry; }; - 84B7FA3929B2860700AD93B1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; - proxyType = 1; - remoteGlobalIDString = D81A3487291D0AC0005A27A9; - remoteInfo = SentryPrivate; - }; - D80C4A4E291E5068000A472C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; - proxyType = 1; - remoteGlobalIDString = D81A3487291D0AC0005A27A9; - remoteInfo = SentryPrivate; - }; D8199DC429376FC10074249E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; @@ -892,13 +868,6 @@ remoteGlobalIDString = 63AA759A1EB8AEF500D153DE; remoteInfo = Sentry; }; - D81A3494291D0AD5005A27A9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; - proxyType = 1; - remoteGlobalIDString = D81A3487291D0AC0005A27A9; - remoteInfo = SentryPrivate; - }; D84DAD5B2B1742C1003CF120 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6327C5CA1EB8A783004E799B /* Project object */; @@ -1750,10 +1719,8 @@ D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SentrySwiftUI.xcconfig; sourceTree = ""; }; D8199DD029377C130074249E /* SentrySwiftUI.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = SentrySwiftUI.podspec; sourceTree = ""; }; D81A346B291AECC7005A27A9 /* PrivateSentrySDKOnly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrivateSentrySDKOnly.h; path = include/HybridPublic/PrivateSentrySDKOnly.h; sourceTree = ""; }; - D81A3488291D0AC0005A27A9 /* SentryPrivate.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SentryPrivate.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D81A349B291D0C0B005A27A9 /* Sentry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sentry.swift; sourceTree = ""; }; D81A349F291D5568005A27A9 /* SentryPrivate.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = SentryPrivate.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = SentryPrivate.xcconfig; sourceTree = ""; }; D81FDF10280EA0080045E0E4 /* SentryScreenShotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryScreenShotTests.swift; sourceTree = ""; }; D8292D7A2A38AF04009872F7 /* HTTPHeaderSanitizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTTPHeaderSanitizer.swift; sourceTree = ""; }; D8292D7C2A39A027009872F7 /* UrlSanitizedTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UrlSanitizedTests.swift; sourceTree = ""; }; @@ -1801,6 +1768,7 @@ D88817D626D7149100BF2251 /* SentryTraceContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SentryTraceContext.m; sourceTree = ""; }; D88817D926D72AB800BF2251 /* SentryTraceContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryTraceContext.h; path = include/SentryTraceContext.h; sourceTree = ""; }; D88817DB26D72B7B00BF2251 /* SentryTraceStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryTraceStateTests.swift; sourceTree = ""; }; + D88D25E92B8E0BAC0073C3D5 /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; D8918B212849FA6D00701F9A /* SentrySDKIntegrationTestsBase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentrySDKIntegrationTestsBase.swift; sourceTree = ""; }; D8AB40DA2806EC1900E5E9F7 /* SentryScreenshotIntegration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SentryScreenshotIntegration.h; path = include/SentryScreenshotIntegration.h; sourceTree = ""; }; D8ACE3C42762187200F5A213 /* SentryNSDataSwizzling.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SentryNSDataSwizzling.m; sourceTree = ""; }; @@ -1850,7 +1818,6 @@ 84F994E82A6894BD00EC0190 /* SystemConfiguration.framework in Frameworks */, 84F994E62A6894B500EC0190 /* CoreData.framework in Frameworks */, 63AF656C1ED87B8C00EBCFF7 /* libz.tbd in Frameworks */, - D81A3492291D0AD5005A27A9 /* SentryPrivate.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1878,7 +1845,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 84B7FA3629B285FF00AD93B1 /* SentryPrivate.framework in Frameworks */, 84B7FA3529B285FC00AD93B1 /* Sentry.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1891,13 +1857,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D81A3485291D0AC0005A27A9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D84DAD4A2B17428D003CF120 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2121,7 +2080,6 @@ children = ( 63AA759B1EB8AEF500D153DE /* Sentry.framework */, 63AA76651EB8CB2F00D153DE /* SentryTests.xctest */, - D81A3488291D0AC0005A27A9 /* SentryPrivate.framework */, D8199DAA29376E9B0074249E /* SentrySwiftUI.framework */, 8431EFD929B27B1100D8DC56 /* SentryProfilerTests.xctest */, 8431F00A29B284F200D8DC56 /* libSentryTestUtils.a */, @@ -2352,7 +2310,6 @@ D8BD2E27292D1F7300D96C6A /* SDK.xcconfig */, 84B7FA4729B2995A00AD93B1 /* DeploymentTargets.xcconfig */, 63AA75C51EB8B00100D153DE /* Sentry.xcconfig */, - D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */, D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */, ); path = Configuration; @@ -3396,6 +3353,7 @@ children = ( D8199DB429376ECC0074249E /* SentryInternal */, D8199DB529376ECC0074249E /* SentrySwiftUI.h */, + D88D25E92B8E0BAC0073C3D5 /* module.modulemap */, D8199DB629376ECC0074249E /* SentryTracedView.swift */, ); path = SentrySwiftUI; @@ -3849,13 +3807,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D81A3483291D0AC0005A27A9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D84DAD482B17428D003CF120 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -3879,7 +3830,6 @@ buildRules = ( ); dependencies = ( - D81A3495291D0AD5005A27A9 /* PBXTargetDependency */, ); name = Sentry; productName = "Sentry-iOS"; @@ -3898,7 +3848,6 @@ buildRules = ( ); dependencies = ( - D80C4A4F291E5068000A472C /* PBXTargetDependency */, 63AA766C1EB8CB2F00D153DE /* PBXTargetDependency */, D84DAD5C2B1742C1003CF120 /* PBXTargetDependency */, ); @@ -3921,7 +3870,6 @@ buildRules = ( ); dependencies = ( - 8431EED029B27B1100D8DC56 /* PBXTargetDependency */, 8431EED229B27B1100D8DC56 /* PBXTargetDependency */, ); name = SentryProfilerTests; @@ -3940,7 +3888,6 @@ buildRules = ( ); dependencies = ( - 84B7FA3A29B2860700AD93B1 /* PBXTargetDependency */, 84B7FA3829B2860500AD93B1 /* PBXTargetDependency */, ); name = SentryTestUtils; @@ -3967,24 +3914,6 @@ productReference = D8199DAA29376E9B0074249E /* SentrySwiftUI.framework */; productType = "com.apple.product-type.framework"; }; - D81A3487291D0AC0005A27A9 /* SentryPrivate */ = { - isa = PBXNativeTarget; - buildConfigurationList = D81A348C291D0AC0005A27A9 /* Build configuration list for PBXNativeTarget "SentryPrivate" */; - buildPhases = ( - D81A3483291D0AC0005A27A9 /* Headers */, - D81A3484291D0AC0005A27A9 /* Sources */, - D81A3485291D0AC0005A27A9 /* Frameworks */, - D81A3486291D0AC0005A27A9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SentryPrivate; - productName = SentryPrivate; - productReference = D81A3488291D0AC0005A27A9 /* SentryPrivate.framework */; - productType = "com.apple.product-type.framework"; - }; D84DAD4C2B17428D003CF120 /* SentryTestUtilsDynamic */ = { isa = PBXNativeTarget; buildConfigurationList = D84DAD512B17428D003CF120 /* Build configuration list for PBXNativeTarget "SentryTestUtilsDynamic" */; @@ -4036,10 +3965,6 @@ DevelopmentTeam = 97JCY7859U; ProvisioningStyle = Automatic; }; - D81A3487291D0AC0005A27A9 = { - CreatedOnToolsVersion = 14.1; - ProvisioningStyle = Manual; - }; D84DAD4C2B17428D003CF120 = { CreatedOnToolsVersion = 15.0.1; }; @@ -4063,7 +3988,6 @@ targets = ( 63AA759A1EB8AEF500D153DE /* Sentry */, 63AA76641EB8CB2F00D153DE /* SentryTests */, - D81A3487291D0AC0005A27A9 /* SentryPrivate */, D8199DA929376E9B0074249E /* SentrySwiftUI */, 8431EECF29B27B1100D8DC56 /* SentryProfilerTests */, 8431F00929B284F200D8DC56 /* SentryTestUtils */, @@ -4104,13 +4028,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D81A3486291D0AC0005A27A9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; D84DAD4B2B17428D003CF120 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -4178,6 +4095,7 @@ 15360CD62432832400112302 /* SentryAutoSessionTrackingIntegration.m in Sources */, 7B63459F280EBA7200CFA05A /* SentryUIEventTracker.m in Sources */, 7BF9EF782722B35D00B5BBEF /* SentrySubClassFinder.m in Sources */, + D80CD8D32B751447002F710B /* SentryMXCallStackTree.swift in Sources */, 7BCFA71627D0BB50008C662C /* SentryANRTracker.m in Sources */, 63EED6C02237923600E02400 /* SentryOptions.m in Sources */, D8CB741B2947286500A5F964 /* SentryEnvelopeItemHeader.m in Sources */, @@ -4206,6 +4124,7 @@ 62C1AFAB2B7E10EA0038C5F7 /* SentrySpotlightTransport.m in Sources */, 7B5CAF7727F5A68C00ED0DB6 /* SentryNSURLRequestBuilder.m in Sources */, 639FCFA11EBC804600778193 /* SentryException.m in Sources */, + D80CD8D42B75144B002F710B /* SwiftDescriptor.swift in Sources */, 33042A0D29DAF79A00C60085 /* SentryExtraContextProvider.m in Sources */, 7BA61CAD247BAA0B00C130A8 /* SentryDebugImageProvider.m in Sources */, 63FE70E720DA4C1000CDBAE8 /* SentryCrashMonitor.c in Sources */, @@ -4246,6 +4165,7 @@ 63FE715F20DA4C1100CDBAE8 /* SentryCrashID.c in Sources */, 7DB3A687238EA75E00A2D442 /* SentryHttpTransport.m in Sources */, 63FE70D520DA4C1000CDBAE8 /* SentryCrashMonitor_NSException.m in Sources */, + D80CD8D12B751442002F710B /* HTTPHeaderSanitizer.swift in Sources */, 0AAE201E28ED9B9400D0CD80 /* SentryReachability.m in Sources */, 7B0A54282521C22C00A71716 /* SentryFrameRemover.m in Sources */, 7BC63F0A28081288009D9E37 /* SentrySwizzleWrapper.m in Sources */, @@ -4308,6 +4228,7 @@ 63FE713120DA4C1100CDBAE8 /* SentryCrashDynamicLinker.c in Sources */, 8E25C95325F836D000DC215B /* SentryRandom.m in Sources */, 7BC85231245812EC005A70F0 /* SentryFileContents.m in Sources */, + D80CD8D22B751447002F710B /* SentryMXManager.swift in Sources */, 03F84D3527DD4191008FE43F /* SentryThreadHandle.cpp in Sources */, 0A2D8DA9289BC905008720F6 /* SentryViewHierarchy.m in Sources */, 8EA1ED0B2668F8C400E62B98 /* SentryUIViewControllerSwizzling.m in Sources */, @@ -4331,6 +4252,7 @@ 8EAE9806261E87120073B6B3 /* SentryUIViewControllerPerformanceTracker.m in Sources */, D88817D826D7149100BF2251 /* SentryTraceContext.m in Sources */, 8EBF870926140D37001A6853 /* SentryPerformanceTracker.m in Sources */, + D80CD8D02B75143F002F710B /* UrlSanitized.swift in Sources */, D865893029D6ECA7000BE151 /* SentryCrashBinaryImageCache.c in Sources */, 7BC9A20428F4166D001E7C4C /* SentryMeasurementValue.m in Sources */, D859696B27BECD8F0036A46E /* SentryCoreDataTrackingIntegration.m in Sources */, @@ -4338,7 +4260,6 @@ 84281C432A578E5600EE88F2 /* SentryProfilerState.mm in Sources */, D859697327BECDD20036A46E /* SentryCoreDataSwizzling.m in Sources */, 639889BD1EDED18400EA7442 /* SentrySwizzle.m in Sources */, - D8ABB0BC29264275005D1E24 /* Sentry.swift in Sources */, 8453421228BE855D00C22EEC /* SentrySampleDecision.m in Sources */, 7B7D872E2486482600D2ECFF /* SentryStacktraceBuilder.m in Sources */, 861265FA2404EC1500C4AFDE /* NSArray+SentrySanitize.m in Sources */, @@ -4669,18 +4590,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D81A3484291D0AC0005A27A9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D8292D7B2A38AF04009872F7 /* HTTPHeaderSanitizer.swift in Sources */, - 7BD9509F2924E3E1009EA8EB /* SentryMXManager.swift in Sources */, - D856272D2A3763B600FB8062 /* UrlSanitized.swift in Sources */, - 7BF65062292B8F1C00BBA5A8 /* SentryMXCallStackTree.swift in Sources */, - D81A3491291D0AC8005A27A9 /* SwiftDescriptor.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; D84DAD492B17428D003CF120 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4697,11 +4606,6 @@ target = 63AA759A1EB8AEF500D153DE /* Sentry */; targetProxy = 63AA766B1EB8CB2F00D153DE /* PBXContainerItemProxy */; }; - 8431EED029B27B1100D8DC56 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D81A3487291D0AC0005A27A9 /* SentryPrivate */; - targetProxy = 8431EED129B27B1100D8DC56 /* PBXContainerItemProxy */; - }; 8431EED229B27B1100D8DC56 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 63AA759A1EB8AEF500D153DE /* Sentry */; @@ -4712,26 +4616,11 @@ target = 63AA759A1EB8AEF500D153DE /* Sentry */; targetProxy = 84B7FA3729B2860500AD93B1 /* PBXContainerItemProxy */; }; - 84B7FA3A29B2860700AD93B1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D81A3487291D0AC0005A27A9 /* SentryPrivate */; - targetProxy = 84B7FA3929B2860700AD93B1 /* PBXContainerItemProxy */; - }; - D80C4A4F291E5068000A472C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D81A3487291D0AC0005A27A9 /* SentryPrivate */; - targetProxy = D80C4A4E291E5068000A472C /* PBXContainerItemProxy */; - }; D8199DC529376FC10074249E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 63AA759A1EB8AEF500D153DE /* Sentry */; targetProxy = D8199DC429376FC10074249E /* PBXContainerItemProxy */; }; - D81A3495291D0AD5005A27A9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D81A3487291D0AC0005A27A9 /* SentryPrivate */; - targetProxy = D81A3494291D0AD5005A27A9 /* PBXContainerItemProxy */; - }; D84DAD5C2B1742C1003CF120 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = D84DAD4C2B17428D003CF120 /* SentryTestUtilsDynamic */; @@ -4769,7 +4658,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = ""; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -4827,7 +4715,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = ""; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -4867,7 +4754,6 @@ CLANG_WARN_FLOAT_CONVERSION = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -4907,7 +4793,6 @@ CLANG_WARN_FLOAT_CONVERSION = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -5027,7 +4912,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = ""; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -5073,7 +4957,6 @@ CLANG_WARN_FLOAT_CONVERSION = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -5169,7 +5052,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = ""; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -5213,7 +5095,6 @@ CLANG_WARN_FLOAT_CONVERSION = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -5276,48 +5157,12 @@ }; name = Debug_without_UIKit; }; - 841C60C62A69DE6B00E1C00F /* Debug_without_UIKit */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = "compiler-default"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Sentry. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug_without_UIKit; - }; 841C60C72A69DE6B00E1C00F /* Debug_without_UIKit */ = { isa = XCBuildConfiguration; baseConfigurationReference = D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_ENABLE_MODULES = YES; @@ -5344,13 +5189,17 @@ "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; + MODULEMAP_FILE = ""; + MODULEMAP_PRIVATE_FILE = ""; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; + OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = Sources/SentrySwiftUI/SentrySwiftUI.h; + SWIFT_INCLUDE_PATHS = Sources/SentrySwiftUI/; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -5692,7 +5541,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = ""; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -5735,7 +5583,6 @@ CLANG_WARN_FLOAT_CONVERSION = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -5793,45 +5640,12 @@ }; name = Release_without_UIKit; }; - 8483D06D2AC7627800143615 /* Release_without_UIKit */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = "compiler-default"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Sentry. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - }; - name = Release_without_UIKit; - }; 8483D06E2AC7627800143615 /* Release_without_UIKit */ = { isa = XCBuildConfiguration; baseConfigurationReference = D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_ENABLE_MODULES = YES; @@ -5858,11 +5672,15 @@ "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; + MODULEMAP_FILE = ""; + MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; + OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = Sources/SentrySwiftUI/SentrySwiftUI.h; + SWIFT_INCLUDE_PATHS = Sources/SentrySwiftUI/; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -5956,7 +5774,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = ""; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -6001,7 +5818,6 @@ CLANG_WARN_FLOAT_CONVERSION = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = ""; DYLIB_INSTALL_NAME_BASE = "@rpath"; @@ -6066,6 +5882,7 @@ baseConfigurationReference = D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_ENABLE_MODULES = YES; @@ -6092,13 +5909,17 @@ "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; + MODULEMAP_FILE = ""; + MODULEMAP_PRIVATE_FILE = ""; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; + OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = Sources/SentrySwiftUI/SentrySwiftUI.h; + SWIFT_INCLUDE_PATHS = Sources/SentrySwiftUI/; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -6110,6 +5931,7 @@ baseConfigurationReference = D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_ENABLE_MODULES = YES; @@ -6136,11 +5958,15 @@ "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; + MODULEMAP_FILE = ""; + MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; + OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = Sources/SentrySwiftUI/SentrySwiftUI.h; + SWIFT_INCLUDE_PATHS = Sources/SentrySwiftUI/; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -6151,6 +5977,7 @@ baseConfigurationReference = D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_ENABLE_MODULES = YES; @@ -6177,11 +6004,15 @@ "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; + MODULEMAP_FILE = ""; + MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; + OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = Sources/SentrySwiftUI/SentrySwiftUI.h; + SWIFT_INCLUDE_PATHS = Sources/SentrySwiftUI/; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -6192,6 +6023,7 @@ baseConfigurationReference = D8199DCF29376FF40074249E /* SentrySwiftUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; CLANG_ENABLE_MODULES = YES; @@ -6218,155 +6050,20 @@ "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; + MODULEMAP_FILE = ""; + MODULEMAP_PRIVATE_FILE = ""; MTL_FAST_MATH = YES; + OTHER_SWIFT_FLAGS = "-DCARTHAGE"; PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentrySwiftUI; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OBJC_BRIDGING_HEADER = Sources/SentrySwiftUI/SentrySwiftUI.h; + SWIFT_INCLUDE_PATHS = Sources/SentrySwiftUI/; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; - D81A348D291D0AC0005A27A9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = "compiler-default"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Sentry. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - D81A348E291D0AC0005A27A9 /* Test */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = "compiler-default"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Sentry. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - }; - name = Test; - }; - D81A348F291D0AC0005A27A9 /* TestCI */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = "compiler-default"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Sentry. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - }; - name = TestCI; - }; - D81A3490291D0AC0005A27A9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D81A34A0291D5715005A27A9 /* SentryPrivate.xcconfig */; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_C_LANGUAGE_STANDARD = "compiler-default"; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Sentry. All rights reserved."; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; D84DAD522B17428D003CF120 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6778,19 +6475,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D81A348C291D0AC0005A27A9 /* Build configuration list for PBXNativeTarget "SentryPrivate" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D81A348D291D0AC0005A27A9 /* Debug */, - 841C60C62A69DE6B00E1C00F /* Debug_without_UIKit */, - D81A348E291D0AC0005A27A9 /* Test */, - D81A348F291D0AC0005A27A9 /* TestCI */, - D81A3490291D0AC0005A27A9 /* Release */, - 8483D06D2AC7627800143615 /* Release_without_UIKit */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; D84DAD512B17428D003CF120 /* Build configuration list for PBXNativeTarget "SentryTestUtilsDynamic" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Sentry.xcodeproj/xcshareddata/xcschemes/SentryPrivate.xcscheme b/Sentry.xcodeproj/xcshareddata/xcschemes/SentryPrivate.xcscheme deleted file mode 100644 index c1a798f9d3..0000000000 --- a/Sentry.xcodeproj/xcshareddata/xcschemes/SentryPrivate.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SentryPrivate.podspec b/SentryPrivate.podspec index 5fee147dfc..318013f113 100644 --- a/SentryPrivate.podspec +++ b/SentryPrivate.podspec @@ -8,6 +8,7 @@ Pod::Spec.new do |s| s.source = { :git => "https://github.com/getsentry/sentry-cocoa.git", :tag => s.version.to_s } s.social_media_url = 'https://getsentry.com/' + s.deprecated = true s.description = <<-DESC Not for public use. diff --git a/Sources/Configuration/SentryPrivate.xcconfig b/Sources/Configuration/SentryPrivate.xcconfig deleted file mode 100644 index f236dfd61a..0000000000 --- a/Sources/Configuration/SentryPrivate.xcconfig +++ /dev/null @@ -1,3 +0,0 @@ -PRODUCT_NAME = SentryPrivate -MACH_O_TYPE = staticlib -CURRENT_PROJECT_VERSION = 8.21.0-beta.0 diff --git a/Sources/Configuration/SentrySwiftUI.xcconfig b/Sources/Configuration/SentrySwiftUI.xcconfig index 27688821f7..195c7d8461 100644 --- a/Sources/Configuration/SentrySwiftUI.xcconfig +++ b/Sources/Configuration/SentrySwiftUI.xcconfig @@ -5,3 +5,4 @@ MACOSX_DEPLOYMENT_TARGET = 10.15 IPHONEOS_DEPLOYMENT_TARGET = 13.0 WATCHOS_DEPLOYMENT_TARGET = 6.0 TVOS_DEPLOYMENT_TARGET = 13.0 +MACH_O_TYPE = mh_dylib diff --git a/Sources/Sentry/SentryCoreDataTracker.m b/Sources/Sentry/SentryCoreDataTracker.m index 99039d9f66..703ed436e2 100644 --- a/Sources/Sentry/SentryCoreDataTracker.m +++ b/Sources/Sentry/SentryCoreDataTracker.m @@ -8,10 +8,10 @@ #import "SentryPredicateDescriptor.h" #import "SentrySDK+Private.h" #import "SentryScope+Private.h" -#import "SentrySpanProtocol.h" -@import SentryPrivate; #import "SentrySpan.h" +#import "SentrySpanProtocol.h" #import "SentryStacktrace.h" +#import "SentrySwift.h" #import "SentryThreadInspector.h" #import "SentryTraceOrigins.h" diff --git a/Sources/Sentry/SentryNetworkTracker.m b/Sources/Sentry/SentryNetworkTracker.m index a33691d364..0c982433f9 100644 --- a/Sources/Sentry/SentryNetworkTracker.m +++ b/Sources/Sentry/SentryNetworkTracker.m @@ -17,6 +17,7 @@ #import "SentryScope+Private.h" #import "SentrySerialization.h" #import "SentryStacktrace.h" +#import "SentrySwift.h" #import "SentryThread.h" #import "SentryThreadInspector.h" #import "SentryTraceContext.h" @@ -25,7 +26,6 @@ #import "SentryTracer.h" #import "SentryUser.h" #import -@import SentryPrivate; /** * WARNING: We had issues in the past with this code on older iOS versions. We don't run unit tests diff --git a/Sources/Sentry/SentryTracer.m b/Sources/Sentry/SentryTracer.m index 883efc3490..f39b4cea82 100644 --- a/Sources/Sentry/SentryTracer.m +++ b/Sources/Sentry/SentryTracer.m @@ -20,6 +20,7 @@ #import "SentrySpanContext+Private.h" #import "SentrySpanContext.h" #import "SentrySpanId.h" +#import "SentrySwift.h" #import "SentryThreadWrapper.h" #import "SentryTime.h" #import "SentryTraceContext.h" @@ -32,7 +33,6 @@ #import #import #import -@import SentryPrivate; #if SENTRY_TARGET_PROFILING_SUPPORTED # import "SentryLaunchProfiling.h" diff --git a/Sources/Sentry/SentryUIApplication.m b/Sources/Sentry/SentryUIApplication.m index 7c330efc23..c9e68adb29 100644 --- a/Sources/Sentry/SentryUIApplication.m +++ b/Sources/Sentry/SentryUIApplication.m @@ -1,8 +1,8 @@ #import "SentryUIApplication.h" #import "SentryDependencyContainer.h" #import "SentryDispatchQueueWrapper.h" -@import SentryPrivate; #import "SentryNSNotificationCenterWrapper.h" +#import "SentrySwift.h" #if SENTRY_HAS_UIKIT diff --git a/Sources/Sentry/SentryViewHierarchy.m b/Sources/Sentry/SentryViewHierarchy.m index 6e8a15f807..b984140267 100644 --- a/Sources/Sentry/SentryViewHierarchy.m +++ b/Sources/Sentry/SentryViewHierarchy.m @@ -7,11 +7,10 @@ # import "SentryDependencyContainer.h" # import "SentryDispatchQueueWrapper.h" # import "SentryLog.h" +# import "SentrySwift.h" # import "SentryUIApplication.h" # import -@import SentryPrivate; - static int writeJSONDataToFile(const char *const data, const int length, void *const userData) { diff --git a/Sources/Sentry/include/SentrySwift.h b/Sources/Sentry/include/SentrySwift.h index 7be28faad7..7a1392671d 100644 --- a/Sources/Sentry/include/SentrySwift.h +++ b/Sources/Sentry/include/SentrySwift.h @@ -1,6 +1,10 @@ #ifndef SentrySwift_h #define SentrySwift_h -@import SentryPrivate; +#if __has_include("Sentry-Swift.h") +# import "Sentry-Swift.h" +#else +# import "Sentry/Sentry-Swift.h" +#endif #endif diff --git a/Sources/SentrySwiftUI/SentryTracedView.swift b/Sources/SentrySwiftUI/SentryTracedView.swift index ca409f9374..b991d06bdf 100644 --- a/Sources/SentrySwiftUI/SentryTracedView.swift +++ b/Sources/SentrySwiftUI/SentryTracedView.swift @@ -1,9 +1,9 @@ import Foundation import Sentry -import SwiftUI -#if SWIFT_PACKAGE +#if SWIFT_PACKAGE || CARTHAGE import SentryInternal #endif +import SwiftUI /// A control to measure the performance of your views and send the result as a transaction to Sentry.io. /// diff --git a/Sources/SentrySwiftUI/module.modulemap b/Sources/SentrySwiftUI/module.modulemap new file mode 100644 index 0000000000..fc8127e719 --- /dev/null +++ b/Sources/SentrySwiftUI/module.modulemap @@ -0,0 +1,4 @@ +module SentryInternal { + header "SentrySwiftUI.h" +} + diff --git a/Sources/Swift/MetricKit/SentryMXCallStackTree.swift b/Sources/Swift/MetricKit/SentryMXCallStackTree.swift index d764a08609..850d4f718f 100644 --- a/Sources/Swift/MetricKit/SentryMXCallStackTree.swift +++ b/Sources/Swift/MetricKit/SentryMXCallStackTree.swift @@ -5,47 +5,47 @@ import Foundation * JSON specification of MXCallStackTree can be found here https://developer.apple.com/documentation/metrickit/mxcallstacktree/3552293-jsonrepresentation */ @objcMembers -public class SentryMXCallStackTree: NSObject, Codable { +class SentryMXCallStackTree: NSObject, Codable { - public let callStacks: [SentryMXCallStack] - public let callStackPerThread: Bool + let callStacks: [SentryMXCallStack] + let callStackPerThread: Bool - public init(callStacks: [SentryMXCallStack], callStackPerThread: Bool) { + init(callStacks: [SentryMXCallStack], callStackPerThread: Bool) { self.callStacks = callStacks self.callStackPerThread = callStackPerThread } - public static func from(data: Data) throws -> SentryMXCallStackTree { + static func from(data: Data) throws -> SentryMXCallStackTree { return try JSONDecoder().decode(SentryMXCallStackTree.self, from: data) } } @objcMembers -public class SentryMXCallStack: NSObject, Codable { - public var threadAttributed: Bool? - public var callStackRootFrames: [SentryMXFrame] +class SentryMXCallStack: NSObject, Codable { + var threadAttributed: Bool? + var callStackRootFrames: [SentryMXFrame] - public var flattenedRootFrames: [SentryMXFrame] { + var flattenedRootFrames: [SentryMXFrame] { return callStackRootFrames.flatMap { [$0] + $0.frames } } - public init(threadAttributed: Bool, rootFrames: [SentryMXFrame]) { + init(threadAttributed: Bool, rootFrames: [SentryMXFrame]) { self.threadAttributed = threadAttributed self.callStackRootFrames = rootFrames } } @objcMembers -public class SentryMXFrame: NSObject, Codable { - public var binaryUUID: UUID - public var offsetIntoBinaryTextSegment: Int - public var binaryName: String? - public var address: UInt64 - public var subFrames: [SentryMXFrame]? +class SentryMXFrame: NSObject, Codable { + var binaryUUID: UUID + var offsetIntoBinaryTextSegment: Int + var binaryName: String? + var address: UInt64 + var subFrames: [SentryMXFrame]? - public var sampleCount: Int? + var sampleCount: Int? - public init(binaryUUID: UUID, offsetIntoBinaryTextSegment: Int, sampleCount: Int? = nil, binaryName: String? = nil, address: UInt64, subFrames: [SentryMXFrame]?) { + init(binaryUUID: UUID, offsetIntoBinaryTextSegment: Int, sampleCount: Int? = nil, binaryName: String? = nil, address: UInt64, subFrames: [SentryMXFrame]?) { self.binaryUUID = binaryUUID self.offsetIntoBinaryTextSegment = offsetIntoBinaryTextSegment self.sampleCount = sampleCount @@ -54,11 +54,11 @@ public class SentryMXFrame: NSObject, Codable { self.subFrames = subFrames } - public var frames: [SentryMXFrame] { + var frames: [SentryMXFrame] { return (subFrames?.flatMap { [$0] + $0.frames } ?? []) } - public var framesIncludingSelf: [SentryMXFrame] { + var framesIncludingSelf: [SentryMXFrame] { return [self] + frames } } diff --git a/Sources/Swift/MetricKit/SentryMXManager.swift b/Sources/Swift/MetricKit/SentryMXManager.swift index dad63645bc..3a41087608 100644 --- a/Sources/Swift/MetricKit/SentryMXManager.swift +++ b/Sources/Swift/MetricKit/SentryMXManager.swift @@ -12,7 +12,7 @@ import MetricKit @available(iOS 15.0, macOS 12.0, macCatalyst 15.0, *) @available(tvOS, unavailable) @available(watchOS, unavailable) -@objc public protocol SentryMXManagerDelegate { +@objc protocol SentryMXManagerDelegate { func didReceiveCrashDiagnostic(_ diagnostic: MXCrashDiagnostic, callStackTree: SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) @@ -26,7 +26,7 @@ import MetricKit @available(iOS 15.0, macOS 12.0, macCatalyst 15.0, *) @available(tvOS, unavailable) @available(watchOS, unavailable) -@objcMembers public class SentryMXManager: NSObject, MXMetricManagerSubscriber { +@objcMembers class SentryMXManager: NSObject, MXMetricManagerSubscriber { let disableCrashDiagnostics: Bool @@ -34,19 +34,19 @@ import MetricKit self.disableCrashDiagnostics = disableCrashDiagnostics } - public weak var delegate: SentryMXManagerDelegate? + weak var delegate: SentryMXManagerDelegate? - public func receiveReports() { + func receiveReports() { let shared = MXMetricManager.shared shared.add(self) } - public func pauseReports() { + func pauseReports() { let shared = MXMetricManager.shared shared.remove(self) } - public func didReceive(_ payloads: [MXDiagnosticPayload]) { + func didReceive(_ payloads: [MXDiagnosticPayload]) { func actOn(callStackTree: MXCallStackTree, action: (SentryMXCallStackTree) -> Void) { guard let callStackTree = try? SentryMXCallStackTree.from(data: callStackTree.jsonRepresentation()) else { return diff --git a/Sources/Swift/SwiftDescriptor.swift b/Sources/Swift/SwiftDescriptor.swift index 32b440bf8f..9c292a2f11 100644 --- a/Sources/Swift/SwiftDescriptor.swift +++ b/Sources/Swift/SwiftDescriptor.swift @@ -1,15 +1,15 @@ import Foundation @objc -public class SwiftDescriptor: NSObject { +class SwiftDescriptor: NSObject { @objc - public static func getObjectClassName(_ object: AnyObject) -> String { + static func getObjectClassName(_ object: AnyObject) -> String { return String(describing: type(of: object)) } @objc - public static func getSwiftErrorDescription(_ error: Error) -> String? { + static func getSwiftErrorDescription(_ error: Error) -> String? { return String(describing: error) } diff --git a/Sources/Swift/Tools/HTTPHeaderSanitizer.swift b/Sources/Swift/Tools/HTTPHeaderSanitizer.swift index 192238144f..b78a96b0dd 100644 --- a/Sources/Swift/Tools/HTTPHeaderSanitizer.swift +++ b/Sources/Swift/Tools/HTTPHeaderSanitizer.swift @@ -1,8 +1,8 @@ import Foundation @objcMembers -public class HTTPHeaderSanitizer: NSObject { - public static func sanitizeHeaders(_ headers: [String: String]) -> [String: String] { +class HTTPHeaderSanitizer: NSObject { + static func sanitizeHeaders(_ headers: [String: String]) -> [String: String] { let _securityHeaders = Set([ "X-FORWARDED-FOR", "AUTHORIZATION", "COOKIE", "SET-COOKIE", "X-API-KEY", "X-REAL-IP", "REMOTE-ADDR", "FORWARDED", "PROXY-AUTHORIZATION", "X-CSRF-TOKEN", "X-CSRFTOKEN", diff --git a/Sources/Swift/Tools/UrlSanitized.swift b/Sources/Swift/Tools/UrlSanitized.swift index d84ec56637..705ebe68b7 100644 --- a/Sources/Swift/Tools/UrlSanitized.swift +++ b/Sources/Swift/Tools/UrlSanitized.swift @@ -1,15 +1,15 @@ import Foundation @objcMembers -public class UrlSanitized: NSObject { - public static let SENSITIVE_DATA_SUBSTITUTE = "[Filtered]" +class UrlSanitized: NSObject { + static let SENSITIVE_DATA_SUBSTITUTE = "[Filtered]" private var components: URLComponents? - public var query: String? { components?.query } - public var queryItems: [URLQueryItem]? { components?.queryItems } - public var fragment: String? { components?.fragment } + var query: String? { components?.query } + var queryItems: [URLQueryItem]? { components?.queryItems } + var fragment: String? { components?.fragment } - public init(URL url: URL) { + init(URL url: URL) { components = URLComponents(url: url, resolvingAgainstBaseURL: false) if components?.user != nil { @@ -21,7 +21,7 @@ public class UrlSanitized: NSObject { } } - public var sanitizedUrl: String? { + var sanitizedUrl: String? { guard var result = self.components?.string else { return nil } if let end = result.firstIndex(of: "?") ?? result.firstIndex(of: "#") { result = String(result[result.startIndex..() - func didReceiveCrashDiagnostic(_ diagnostic: MXCrashDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { + var crashInvocations = Invocations<(diagnostic: MXCrashDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() + func didReceiveCrashDiagnostic(_ diagnostic: MXCrashDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { crashInvocations.record((diagnostic, callStackTree, timeStampBegin, timeStampEnd)) } - var diskWriteExceptionInvocations = Invocations<(diagnostic: MXDiskWriteExceptionDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() - func didReceiveDiskWriteExceptionDiagnostic(_ diagnostic: MXDiskWriteExceptionDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { + var diskWriteExceptionInvocations = Invocations<(diagnostic: MXDiskWriteExceptionDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() + func didReceiveDiskWriteExceptionDiagnostic(_ diagnostic: MXDiskWriteExceptionDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { diskWriteExceptionInvocations.record((diagnostic, callStackTree, timeStampBegin, timeStampEnd)) } - var cpuExceptionInvocations = Invocations<(diagnostic: MXCPUExceptionDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() - func didReceiveCpuExceptionDiagnostic(_ diagnostic: MXCPUExceptionDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { + var cpuExceptionInvocations = Invocations<(diagnostic: MXCPUExceptionDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() + func didReceiveCpuExceptionDiagnostic(_ diagnostic: MXCPUExceptionDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { cpuExceptionInvocations.record((diagnostic, callStackTree, timeStampBegin, timeStampEnd)) } - var hangDiagnosticInvocations = Invocations<(diagnostic: MXHangDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() - func didReceiveHangDiagnostic(_ diagnostic: MXHangDiagnostic, callStackTree: SentryPrivate.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { + var hangDiagnosticInvocations = Invocations<(diagnostic: MXHangDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date)>() + func didReceiveHangDiagnostic(_ diagnostic: MXHangDiagnostic, callStackTree: Sentry.SentryMXCallStackTree, timeStampBegin: Date, timeStampEnd: Date) { hangDiagnosticInvocations.record((diagnostic, callStackTree, timeStampBegin, timeStampEnd)) } } diff --git a/Tests/SentryTests/Integrations/MetricKit/SentryMetricKitIntegrationTests.swift b/Tests/SentryTests/Integrations/MetricKit/SentryMetricKitIntegrationTests.swift index c1c871a00c..4ccb58a361 100644 --- a/Tests/SentryTests/Integrations/MetricKit/SentryMetricKitIntegrationTests.swift +++ b/Tests/SentryTests/Integrations/MetricKit/SentryMetricKitIntegrationTests.swift @@ -1,5 +1,4 @@ -import Sentry -import SentryPrivate +@testable import Sentry import SentryTestUtils import XCTest diff --git a/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerPerformanceTrackerTests.swift b/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerPerformanceTrackerTests.swift index 6262eb3547..b0a636ae78 100644 --- a/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerPerformanceTrackerTests.swift +++ b/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerPerformanceTrackerTests.swift @@ -2,6 +2,7 @@ import Nimble import ObjectiveC +@testable import Sentry import SentryTestUtils import XCTest diff --git a/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerSwizzlingTests.swift b/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerSwizzlingTests.swift index 4c86d0119b..4107efb5e0 100644 --- a/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerSwizzlingTests.swift +++ b/Tests/SentryTests/Integrations/Performance/UIViewController/SentryUIViewControllerSwizzlingTests.swift @@ -1,6 +1,6 @@ #if os(iOS) || os(tvOS) || targetEnvironment(macCatalyst) -import Sentry +@testable import Sentry import SentryTestUtils import SentryTestUtilsDynamic import XCTest diff --git a/Tests/SentryTests/SentryTests-Bridging-Header.h b/Tests/SentryTests/SentryTests-Bridging-Header.h index 6b7ae1e43f..e5f355e21a 100644 --- a/Tests/SentryTests/SentryTests-Bridging-Header.h +++ b/Tests/SentryTests/SentryTests-Bridging-Header.h @@ -168,6 +168,18 @@ #import "SentrySdkInfo.h" #import "SentrySwiftAsyncIntegration.h" +#import "Sentry/Sentry-Swift.h" +#import "SentryBinaryImageCache+Private.h" +#import "SentryCrashBinaryImageCache.h" +#import "SentryDispatchFactory.h" +#import "SentryDispatchSourceWrapper.h" +#import "SentryEnvelopeAttachmentHeader.h" +#import "SentryExtraContextProvider.h" +#import "SentryMeasurementValue.h" +#import "SentryNSProcessInfoWrapper.h" +#import "SentryPerformanceTracker+Testing.h" +#import "SentryPropagationContext.h" +#import "SentrySampleDecision+Private.h" #import "SentrySerialization.h" #import "SentrySession+Private.h" #import "SentrySessionTracker.h" @@ -188,9 +200,11 @@ #import "SentryThreadInspector.h" #import "SentryThreadWrapper.h" #import "SentryTime.h" +#import "SentryTimeToDisplayTracker.h" #import "SentryTraceContext.h" #import "SentryTracer+Private.h" #import "SentryTracer+Test.h" +#import "SentryTracerConfiguration.h" #import "SentryTransaction.h" #import "SentryTransactionContext+Private.h" #import "SentryTransport.h" @@ -206,20 +220,5 @@ #import "TestNSURLRequestBuilder.h" #import "TestSentryCrashWrapper.h" #import "TestSentrySpan.h" -#import "URLSessionTaskMock.h" -@import SentryPrivate; -#import "SentryBinaryImageCache+Private.h" -#import "SentryCrashBinaryImageCache.h" -#import "SentryDispatchFactory.h" -#import "SentryDispatchSourceWrapper.h" -#import "SentryEnvelopeAttachmentHeader.h" -#import "SentryExtraContextProvider.h" -#import "SentryMeasurementValue.h" -#import "SentryNSProcessInfoWrapper.h" -#import "SentryPerformanceTracker+Testing.h" -#import "SentryPropagationContext.h" -#import "SentrySampleDecision+Private.h" -#import "SentrySpanOperations.h" -#import "SentryTimeToDisplayTracker.h" -#import "SentryTracerConfiguration.h" #import "TestSentryViewHierarchy.h" +#import "URLSessionTaskMock.h" diff --git a/Tests/SentryTests/SwiftDescriptorTests.swift b/Tests/SentryTests/SwiftDescriptorTests.swift index 244db6a95b..2e6f5a0812 100644 --- a/Tests/SentryTests/SwiftDescriptorTests.swift +++ b/Tests/SentryTests/SwiftDescriptorTests.swift @@ -1,3 +1,4 @@ +@testable import Sentry import XCTest class SwiftDescriptorTests: XCTestCase { diff --git a/Tests/SentryTests/UrlSanitizedTests.swift b/Tests/SentryTests/UrlSanitizedTests.swift index 8a069df104..2d46b7b5c3 100644 --- a/Tests/SentryTests/UrlSanitizedTests.swift +++ b/Tests/SentryTests/UrlSanitizedTests.swift @@ -1,5 +1,5 @@ import Foundation -import SentryPrivate +@testable import Sentry import XCTest class UrlSanitizedTests: XCTestCase { diff --git a/Utils/VersionBump/main.swift b/Utils/VersionBump/main.swift index a9429cf0f4..d05d2e15fb 100644 --- a/Utils/VersionBump/main.swift +++ b/Utils/VersionBump/main.swift @@ -6,6 +6,7 @@ let fromVersionFile = "./Sentry.podspec" let files = [ "./Sentry.podspec", + "./Package.swift", "./SentryPrivate.podspec", "./SentrySwiftUI.podspec", "./Sources/Sentry/SentryMeta.m", diff --git a/scripts/build-xcframework.sh b/scripts/build-xcframework.sh new file mode 100755 index 0000000000..034adecbd4 --- /dev/null +++ b/scripts/build-xcframework.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +sdks=(iphoneos iphonesimulator macosx appletvos appletvsimulator watchos watchsimulator xros xrsimulator) + +rm -rf Carthage/ +mkdir Carthage + +ALL_SDKS=$(xcodebuild -showsdks) + +generate_xcframework() { + local scheme="$1" + local sufix="${2:-}" + local MACH_O_TYPE="${3-mh_dylib}" + + local createxcframework="xcodebuild -create-xcframework " + + for sdk in "${sdks[@]}"; do + if [[ -n "$(grep "${sdk}" <<< "$ALL_SDKS")" ]]; then + xcodebuild archive -project Sentry.xcodeproj/ -scheme "$scheme" -configuration Release -sdk "$sdk" -archivePath ./Carthage/archive/${scheme}${sufix}/${sdk}.xcarchive CODE_SIGNING_REQUIRED=NO SKIP_INSTALL=NO CODE_SIGN_IDENTITY= CARTHAGE=YES MACH_O_TYPE=$MACH_O_TYPE + + createxcframework+="-framework Carthage/archive/${scheme}${sufix}/${sdk}.xcarchive/Products/Library/Frameworks/${scheme}.framework " + + if [ -d "Carthage/archive/${scheme}${sufix}/${sdk}.xcarchive/dSYMs/${scheme}.framework.dSYM" ]; then + # Has debug symbols + createxcframework+="-debug-symbols $(pwd -P)/Carthage/archive/${scheme}${sufix}/${sdk}.xcarchive/dSYMs/${scheme}.framework.dSYM " + fi + else + echo "${sdk} SDK not found" + fi + done + + createxcframework+="-output Carthage/${scheme}${sufix}.xcframework" + $createxcframework +} + +generate_xcframework "Sentry" "-Dynamic" + +generate_xcframework "Sentry" "" staticlib + +generate_xcframework "SentrySwiftUI" diff --git a/scripts/bump.sh b/scripts/bump.sh index f53406d37d..5e223ebed6 100755 --- a/scripts/bump.sh +++ b/scripts/bump.sh @@ -11,3 +11,6 @@ cd Utils/VersionBump && swift build cd $SCRIPT_DIR/.. echo "--> Bumping version to ${OLD_VERSION} ${NEW_VERSION}" ./Utils/VersionBump/.build/debug/VersionBump ${NEW_VERSION} + +./scripts/update-package-sha.sh + diff --git a/scripts/pod-lib-lint.sh b/scripts/pod-lib-lint.sh index 9523ec6fdd..728b8f0fb1 100755 --- a/scripts/pod-lib-lint.sh +++ b/scripts/pod-lib-lint.sh @@ -10,11 +10,11 @@ EXTRA_ARGS="" case $POD_SPEC in "Sentry") - INCLUDE_POD_SPECS="--include-podspecs=SentryPrivate.podspec" + INCLUDE_POD_SPECS="" ;; "SentrySwiftUI") - INCLUDE_POD_SPECS="--include-podspecs={Sentry.podspec,SentryPrivate.podspec}" + INCLUDE_POD_SPECS="--include-podspecs=Sentry.podspec" ;; *) @@ -33,4 +33,4 @@ case $LIBRARY_TYPE in ;; esac -pod lib lint --verbose --platforms="$PLATFORM" "$POD_SPEC".podspec "$INCLUDE_POD_SPECS" $EXTRA_ARGS +pod lib lint --verbose --platforms="$PLATFORM" "$POD_SPEC".podspec $INCLUDE_POD_SPECS $EXTRA_ARGS diff --git a/scripts/update-package-sha.sh b/scripts/update-package-sha.sh new file mode 100755 index 0000000000..ee06d488d2 --- /dev/null +++ b/scripts/update-package-sha.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -euo pipefail + +if [ -z "$GITHUB_RUN_ID" ]; then + echo "Error: GITHUB_RUN_ID is not set. Exiting script." + exit 1 +fi + +NEW_CHECKSUM_STATIC=$(shasum -a 256 Carthage/Sentry.xcframework.zip | awk '{print $1}') +NEW_CHECKSUM_DYNAMIC=$(shasum -a 256 Carthage/Sentry-Dynamic.xcframework.zip | awk '{print $1}') + +os=$(uname) +# Craft pre-release command runs on an ubuntu machine +# and `sed` needs an extra argument for macOS +if [ "$os" == "Linux" ]; then + sed -i "s/checksum: \".*\" \/\/Sentry-Static/checksum: \"$NEW_CHECKSUM_STATIC\" \/\/Sentry-Static/" Package.swift + sed -i "s/checksum: \".*\" \/\/Sentry-Dynamic/checksum: \"$NEW_CHECKSUM_DYNAMIC\" \/\/Sentry-Dynamic/" Package.swift +else + sed -i "" "s/checksum: \".*\" \/\/Sentry-Static/checksum: \"$NEW_CHECKSUM_STATIC\" \/\/Sentry-Static/" Package.swift + sed -i "" "s/checksum: \".*\" \/\/Sentry-Dynamic/checksum: \"$NEW_CHECKSUM_DYNAMIC\" \/\/Sentry-Dynamic/" Package.swift +fi + +echo $GITHUB_RUN_ID > .github/last-release-runid diff --git a/scripts/xcframework-generated-run.sh b/scripts/xcframework-generated-run.sh new file mode 100755 index 0000000000..731a022a03 --- /dev/null +++ b/scripts/xcframework-generated-run.sh @@ -0,0 +1,2 @@ +#!/bin/bash +cat .github/last-release-runid