Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ jobs:
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
./scripts/prepare-package.sh \
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
Comment thread
itaybre marked this conversation as resolved.
- run: ./scripts/ci-select-xcode.sh 16.4
- run: swift build
working-directory: Samples/macOS-SPM-CommandLine
Expand Down Expand Up @@ -198,6 +202,10 @@ jobs:
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
./scripts/prepare-package.sh \
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
- run: ./scripts/ci-select-xcode.sh 16.4
- run: swift build
working-directory: Samples/SPM-Dynamic
Expand Down Expand Up @@ -228,6 +236,10 @@ jobs:
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
./scripts/prepare-package.sh \
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
- run: ./scripts/ci-select-xcode.sh 16.4
- run: swift build --target SentrySwiftUI
- name: Run CI Diagnostics
Expand Down Expand Up @@ -257,6 +269,10 @@ jobs:
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
./scripts/prepare-package.sh \
--package-file [email protected] \
--is-pr "${{ github.event_name == 'pull_request' }}" \
--change-path true
- run: ./scripts/ci-select-xcode.sh 16.4
- run: set -o pipefail &&xcodebuild build -scheme visionOS-SPM -sdk xros -destination 'generic/platform=xros' | tee raw-build-output-spm-visionOS.log | xcbeautify
working-directory: Samples/visionOS-SPM
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,15 @@ jobs:
- name: Prepare Package.swift
shell: bash
run: |
# Swift 6.1+ uses [email protected]; hide it so prepare-package's
# Swift 6.1+ and 6.2+ uses [email protected].swift and [email protected].swift; hide it so prepare-package's
# modified Package.swift is used (avoids "Multiple commands produce" from
# unmodified binary targets in the 6.1 manifest).
# unmodified binary targets in the 6.1 and 6.2 manifests).
if [[ -f [email protected] ]]; then
mv [email protected] [email protected]
fi
if [[ -f [email protected] ]]; then
mv [email protected] [email protected]
fi
./scripts/prepare-package.sh \
--package-file Package.swift \
--is-pr "${{ github.event_name == 'pull_request' }}" \
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Fixes

- Added `[email protected]` to avoid issues with unsafe build flags on SPM > 6.2 (#7778)
- Detect development builds via provisioning profile and debugger attachment (#7702)
- Keep replayType as `buffer` for Session Replay triggered by an error (#7804)
- Fix race condition in scope observer notifications causing EXC_BAD_ACCESS during cold launch (#7807)
Expand Down
123 changes: 123 additions & 0 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
// swift-tools-version:6.2

#if canImport(Darwin)
import Darwin.C
#elseif canImport(Glibc)
import Glibc
#elseif canImport(MSVCRT)
import MSVCRT
#endif

import PackageDescription

var products: [Product] = [
.library(name: "Sentry", targets: ["Sentry", "SentryCppHelper"]),
.library(name: "Sentry-Dynamic", targets: ["Sentry-Dynamic"]),
.library(name: "Sentry-Dynamic-WithARM64e", targets: ["Sentry-Dynamic-WithARM64e"]),
.library(name: "Sentry-WithoutUIKitOrAppKit", targets: ["Sentry-WithoutUIKitOrAppKit", "SentryCppHelper"]),
.library(name: "Sentry-WithoutUIKitOrAppKit-WithARM64e", targets: ["Sentry-WithoutUIKitOrAppKit-WithARM64e", "SentryCppHelper"]),
.library(name: "SentrySwiftUI", targets: ["Sentry", "SentrySwiftUI", "SentryCppHelper"]),
.library(name: "SentryDistribution", targets: ["SentryDistribution"])
]

var targets: [Target] = [
.binaryTarget(
name: "Sentry",
url: "https://github.com/getsentry/sentry-cocoa/releases/download/9.10.0/Sentry.xcframework.zip",
checksum: "166692d02bb59fe9a158fe59b16e122fda40dddf6deaabed65a9e4b240f84c9b" //Sentry-Static
),
.binaryTarget(
name: "Sentry-Dynamic",
url: "https://github.com/getsentry/sentry-cocoa/releases/download/9.10.0/Sentry-Dynamic.xcframework.zip",
checksum: "1dd70512f3b5af6c74f1b8f11279531900173fb638d7d541320a7cbc00ed06bc" //Sentry-Dynamic
),
.binaryTarget(
name: "Sentry-Dynamic-WithARM64e",
url: "https://github.com/getsentry/sentry-cocoa/releases/download/9.10.0/Sentry-Dynamic-WithARM64e.xcframework.zip",
checksum: "7d981d7ad0686c5fd68c791b721820a360285dc711e2b23e79114a6a62d799a6" //Sentry-Dynamic-WithARM64e
),
.binaryTarget(
name: "Sentry-WithoutUIKitOrAppKit",
url: "https://github.com/getsentry/sentry-cocoa/releases/download/9.10.0/Sentry-WithoutUIKitOrAppKit.xcframework.zip",
checksum: "8c70de11731587e2c615089464820b67d8f0103b5e019d81a16b0cac31e33e65" //Sentry-WithoutUIKitOrAppKit
),
.binaryTarget(
name: "Sentry-WithoutUIKitOrAppKit-WithARM64e",
url: "https://github.com/getsentry/sentry-cocoa/releases/download/9.10.0/Sentry-WithoutUIKitOrAppKit-WithARM64e.xcframework.zip",
checksum: "abd3b0836ce6637cbc274e7d979b345ec3c2f46857d5412e78c1d2f0fe3397b0" //Sentry-WithoutUIKitOrAppKit-WithARM64e
),
.target(
name: "SentrySwiftUI",
dependencies: ["Sentry"],
path: "Sources/SentrySwiftUI",
exclude: ["module.modulemap"],
linkerSettings: [
.linkedFramework("Sentry")
]
),
.target(
name: "SentryCppHelper",
path: "Sources/SentryCppHelper",
linkerSettings: [
.linkedLibrary("c++")
]
),
.target(name: "SentryDistribution", path: "Sources/SentryDistribution"),
.testTarget(name: "SentryDistributionTests", dependencies: ["SentryDistribution"], path: "Sources/SentryDistributionTests")
]

// Targets required to support compile-from-source builds via SPM.
products.append(.library(name: "SentrySPM", targets: ["SentryObjCInternal"]))
targets += [
// At least one source file is required, therefore we use a dummy class to satisfy the SPM build system
.target(
name: "SentryHeaders",
path: "Sources/Sentry",
sources: ["SentryDummyPublicEmptyClass.m"],
publicHeadersPath: "Public"
),
.target(
name: "_SentryPrivate",
dependencies: ["SentryHeaders"],
path: "Sources/Sentry",
sources: ["SentryDummyPrivateEmptyClass.m"],
publicHeadersPath: "include"),
.target(
name: "SentrySwift",
dependencies: ["_SentryPrivate", "SentryHeaders"],
path: "Sources/Swift",
swiftSettings: [
.unsafeFlags(["-enable-library-evolution"]),
.define("SENTRY_NO_UI_FRAMEWORK", .when(traits: ["NoUIFramework"]))
]),

// SentryObjCInternal compiles all ObjC/C sources from the repo. Named "Internal"
// to reserve "SentryObjC" for a future public Objective-C wrapper around the SDK.
.target(
name: "SentryObjCInternal",
dependencies: ["SentrySwift"],
path: "Sources",
exclude: ["Sentry/SentryDummyPublicEmptyClass.m", "Sentry/SentryDummyPrivateEmptyClass.m", "Swift", "SentrySwiftUI", "Resources", "Configuration", "SentryCppHelper", "SentryDistribution", "SentryDistributionTests"],
cSettings: [
.headerSearchPath("Sentry"),
.headerSearchPath("SentryCrash/Recording"),
.headerSearchPath("SentryCrash/Recording/Monitors"),
.headerSearchPath("SentryCrash/Recording/Tools"),
.headerSearchPath("SentryCrash/Installations"),
.headerSearchPath("SentryCrash/Reporting/Filters"),
.headerSearchPath("SentryCrash/Reporting/Filters/Tools"),
.define("SENTRY_NO_UI_FRAMEWORK", to: "1", .when(traits: ["NoUIFramework"]))
])
]

let package = Package(
name: "Sentry",
platforms: [.iOS(.v15), .macOS(.v10_14), .tvOS(.v15), .watchOS(.v8), .visionOS(.v1)],
products: products,
traits: [
.init(name: "NoUIFramework", description: "Build without UIKit/AppKit framework linkage. Use for command-line tools or contexts where UI frameworks are unavailable.")
],
targets: targets,
swiftLanguageModes: [.v5],
cxxLanguageStandard: .cxx14
)
1 change: 1 addition & 0 deletions Utils/VersionBump/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ let files = [
"./Sentry.podspec",
"./Package.swift",
"./[email protected]",
"./[email protected]",
"./SentrySwiftUI.podspec",
"./Sources/Sentry/SentryMeta.m",
"./3rd-party-integrations/SentrySwiftLog/Package.swift",
Expand Down
Loading