Skip to content

Commit 762bacb

Browse files
authored
Merge 05ee747 into e2a3f3e
2 parents e2a3f3e + 05ee747 commit 762bacb

31 files changed

Lines changed: 552 additions & 134 deletions

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Changelog
22

3-
## Unreleased
3+
## Unreleased
4+
5+
This version introduces a dependency on Swift, which only impacts you if you don't use Swift. If your project uses Swift already, this change will not affect you.
6+
7+
### Features
8+
9+
- Properly demangle Swift class name (#2162)
410

511
### Fixes
612

Package.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,15 @@ let package = Package(
99
.library(name: "Sentry-Dynamic", type: .dynamic, targets: ["Sentry"])
1010
],
1111
targets: [
12+
.target( name: "SentryPrivate",
13+
path: "Sources",
14+
sources: [
15+
"Swift"
16+
]
17+
),
1218
.target(
1319
name: "Sentry",
20+
dependencies: ["SentryPrivate"],
1421
path: "Sources",
1522
sources: [
1623
"Sentry/",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
$(SRCROOT)/Carthage/Build/iOS/Sentry.framework
1+
$(SRCROOT)/Carthage/Build/iOS/Sentry.framework
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Sentry.framework
1+
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Sentry.framework

Samples/iOS-Swift/iOS-Swift.xcodeproj/project.pbxproj

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,13 @@
132132
remoteGlobalIDString = 637AFDA5243B02760034958B;
133133
remoteInfo = "iOS-Swift";
134134
};
135+
D81A3499291D0B2C005A27A9 /* PBXContainerItemProxy */ = {
136+
isa = PBXContainerItemProxy;
137+
containerPortal = 6308532C2440C44F00DDE4CE /* Sentry.xcodeproj */;
138+
proxyType = 2;
139+
remoteGlobalIDString = D81A3488291D0AC0005A27A9;
140+
remoteInfo = SentryPrivate;
141+
};
135142
D83A30CA279F075800372D0A /* PBXContainerItemProxy */ = {
136143
isa = PBXContainerItemProxy;
137144
containerPortal = 6308532C2440C44F00DDE4CE /* Sentry.xcodeproj */;
@@ -350,6 +357,7 @@
350357
children = (
351358
630853322440C44F00DDE4CE /* Sentry.framework */,
352359
630853342440C44F00DDE4CE /* SentryTests.xctest */,
360+
D81A349A291D0B2C005A27A9 /* SentryPrivate.framework */,
353361
);
354362
name = Products;
355363
sourceTree = "<group>";
@@ -720,6 +728,13 @@
720728
remoteRef = 630853332440C44F00DDE4CE /* PBXContainerItemProxy */;
721729
sourceTree = BUILT_PRODUCTS_DIR;
722730
};
731+
D81A349A291D0B2C005A27A9 /* SentryPrivate.framework */ = {
732+
isa = PBXReferenceProxy;
733+
fileType = wrapper.framework;
734+
path = SentryPrivate.framework;
735+
remoteRef = D81A3499291D0B2C005A27A9 /* PBXContainerItemProxy */;
736+
sourceTree = BUILT_PRODUCTS_DIR;
737+
};
723738
/* End PBXReferenceProxy section */
724739

725740
/* Begin PBXResourcesBuildPhase section */

Sentry.podspec

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Pod::Spec.new do |s|
1616
s.requires_arc = true
1717
s.frameworks = 'Foundation'
1818
s.libraries = 'z', 'c++'
19+
s.swift_versions = "5.5"
1920
s.pod_target_xcconfig = {
2021
'GCC_ENABLE_CPP_EXCEPTIONS' => 'YES',
2122
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14',
@@ -26,17 +27,18 @@ Pod::Spec.new do |s|
2627
}
2728

2829
s.default_subspecs = ['Core']
30+
s.dependency "SentryPrivate"
2931

3032
s.subspec 'Core' do |sp|
3133
sp.source_files = "Sources/Sentry/**/*.{h,hpp,m,mm,c,cpp}",
32-
"Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}"
33-
34-
sp.public_header_files = "Sources/Sentry/Public/*.h"
34+
"Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}", "Sources/Swift/Sentry.swift"
35+
sp.public_header_files =
36+
"Sources/Sentry/Public/*.h"
3537
end
3638

3739
s.subspec 'HybridSDK' do |sp|
3840
sp.source_files = "Sources/Sentry/**/*.{h,hpp,m,mm,c,cpp}",
39-
"Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}"
41+
"Sources/SentryCrash/**/*.{h,hpp,m,mm,c,cpp}", "Sources/Swift/Sentry.swift"
4042

4143
sp.public_header_files =
4244
"Sources/Sentry/Public/*.h", "Sources/Sentry/include/PrivateSentrySDKOnly.h"

Sentry.xcodeproj/project.pbxproj

Lines changed: 265 additions & 14 deletions
Large diffs are not rendered by default.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1410"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "D81A3487291D0AC0005A27A9"
18+
BuildableName = "SentryPrivate.framework"
19+
BlueprintName = "SentryPrivate"
20+
ReferencedContainer = "container:Sentry.xcodeproj">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
24+
</BuildAction>
25+
<TestAction
26+
buildConfiguration = "Debug"
27+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
shouldUseLaunchSchemeArgsEnv = "YES">
30+
<Testables>
31+
</Testables>
32+
</TestAction>
33+
<LaunchAction
34+
buildConfiguration = "Debug"
35+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37+
launchStyle = "0"
38+
useCustomWorkingDirectory = "NO"
39+
ignoresPersistentStateOnLaunch = "NO"
40+
debugDocumentVersioning = "YES"
41+
debugServiceExtension = "internal"
42+
allowLocationSimulation = "YES">
43+
</LaunchAction>
44+
<ProfileAction
45+
buildConfiguration = "Release"
46+
shouldUseLaunchSchemeArgsEnv = "YES"
47+
savedToolIdentifier = ""
48+
useCustomWorkingDirectory = "NO"
49+
debugDocumentVersioning = "YES">
50+
<MacroExpansion>
51+
<BuildableReference
52+
BuildableIdentifier = "primary"
53+
BlueprintIdentifier = "D81A3487291D0AC0005A27A9"
54+
BuildableName = "SentryPrivate.framework"
55+
BlueprintName = "SentryPrivate"
56+
ReferencedContainer = "container:Sentry.xcodeproj">
57+
</BuildableReference>
58+
</MacroExpansion>
59+
</ProfileAction>
60+
<AnalyzeAction
61+
buildConfiguration = "Debug">
62+
</AnalyzeAction>
63+
<ArchiveAction
64+
buildConfiguration = "Release"
65+
revealArchiveInOrganizer = "YES">
66+
</ArchiveAction>
67+
</Scheme>

SentryPrivate.podspec

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Pod::Spec.new do |s|
2+
s.name = "SentryPrivate"
3+
s.version = "7.30.0"
4+
s.summary = "Sentry Private Library."
5+
s.homepage = "https://github.com/getsentry/sentry-cocoa"
6+
s.license = "mit"
7+
s.authors = "Sentry"
8+
s.source = { :git => "https://github.com/getsentry/sentry-cocoa.git",
9+
:tag => s.version.to_s }
10+
s.social_media_url = 'https://getsentry.com/'
11+
12+
s.description = <<-DESC
13+
Not for public use.
14+
Common APIs for internal Sentry usage.
15+
DESC
16+
17+
s.ios.deployment_target = "9.0"
18+
s.osx.deployment_target = "10.10"
19+
s.tvos.deployment_target = "9.0"
20+
s.watchos.deployment_target = "2.0"
21+
s.module_name = "SentryPrivate"
22+
s.frameworks = 'Foundation'
23+
24+
s.swift_versions = "5.5"
25+
s.watchos.framework = 'WatchKit'
26+
27+
s.source_files = "Sources/Swift/**/*.{swift}"
28+
end
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
SDKROOT = $(SDKROOT__CARTHAGE_$(CARTHAGE)) // basically, iphoneos (unless «CARTHAGE» == «YES»)
2+
// Carthage relies on this assumption, years standing — that SDKROOT is default or explicitly
3+
// set to `macosx` (or equivalent) under the ‘single target, multiple platform’ paradigm
4+
// because of a xcodebuild bug involving the sdk flag and implicit dependency: see «Carthage/Carthage#347».
5+
SDKROOT__CARTHAGE_YES = macosx
6+
// Importantly, the below two lines appease «Xcode.app», and get the UI to show Mac Catalyst destinations.
7+
SDKROOT__CARTHAGE_NO = iphoneos
8+
SDKROOT__CARTHAGE_ = iphoneos
9+
// …in order for ‘single target, multiple platform’ extrapolations to hold true,
10+
// all the above relies on the ability of Xcode GUI, xcodebuild, and Carthage via xcodebuild to
11+
// override «SDKROOT» based on selected destination (particularly for appletv* and watchos* platforms.)
12+
// …if the override behavior ever breaks, expect weird output and the probable need to migrate away from
13+
// the ‘single target, multiple platform’ paradigm.
14+
15+
// …`SUPPORTED_PLATFORMS`, in service of ‘single target, multiple platform’ extrapolation, must never
16+
// engage in dollar-parentheses syntax — unless that dollar-parentheses basis is
17+
// entirely non-platform–derived, e.g. based upon `XCODE_VERSION_MAJOR`.
18+
// Note: Carthage, unfortunately, as current of v0.34.0 queries rather harshly on the platform values below
19+
// ⋯ quite early in the process, queried values not compiled into Carthage will cause hard errors.
20+
SUPPORTED_PLATFORMS = macosx iphoneos iphonesimulator watchos watchsimulator appletvos appletvsimulator
21+
TARGETED_DEVICE_FAMILY = 1,2,3,4
22+
SKIP_INSTALL = YES
23+
DEFINES_MODULE = YES
24+
DYLIB_COMPATIBILITY_VERSION = 1
25+
DYLIB_CURRENT_VERSION = 1
26+
DYLIB_INSTALL_NAME_BASE = @rpath
27+
MACH_O_TYPE = mh_dylib
28+
FRAMEWORK_VERSION = A
29+
30+
PRODUCT_NAME = SentryPrivate
31+
CURRENT_PROJECT_VERSION = 7.30.0
32+
PRODUCT_BUNDLE_IDENTIFIER = io.sentry.SentryPrivate
33+
ALWAYS_SEARCH_USER_PATHS = NO
34+
CLANG_ENABLE_OBJC_ARC = YES
35+
CLANG_ENABLE_MODULES = YES
36+
//OTHER_CFLAGS = -Wall -Wextra -Wpedantic -Wno-gnu-conditional-omitted-operand
37+
38+
ONLY_ACTIVE_ARCH[config=Debug] = YES
39+
GCC_OPTIMIZATION_LEVEL[config=Debug] = 0
40+
COPY_PHASE_STRIP[config=Debug] = NO
41+
42+
MACOSX_DEPLOYMENT_TARGET = 10.9
43+
IPHONEOS_DEPLOYMENT_TARGET = 9.0
44+
WATCHOS_DEPLOYMENT_TARGET = 2.0
45+
TVOS_DEPLOYMENT_TARGET = 9.0
46+
47+
LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = $(inherited) @executable_path/../Frameworks @loader_path/../Frameworks;
48+
LD_RUNPATH_SEARCH_PATHS[sdk=iphone*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks;
49+
LD_RUNPATH_SEARCH_PATHS[sdk=watch*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks;
50+
LD_RUNPATH_SEARCH_PATHS[sdk=appletv*] = $(inherited) @executable_path/Frameworks @loader_path/Frameworks;
51+
52+
OTHER_LDFLAGS[sdk=watch*] = $(inherited) -framework WatchKit
53+
54+
//SWIFT_INCLUDE_PATHS = $(SRCROOT)/Sources/Sentry
55+
56+
// SWIFT_VERSION is only recognized by Xcode 8 and higher.
57+
// Prior versions of Xcode support only one Swift version.
58+
// SWIFT_VERSION = 3.1
59+
60+
// Although `YES` is the default for iOS targets, command-line output via `xcodebuild -showBuildSettings`
61+
// will not emit this value unless it is explicitly set.
62+
SUPPORTS_MACCATALYST = YES
63+
64+
CLANG_CXX_LANGUAGE_STANDARD = c++14
65+
CLANG_CXX_LIBRARY = libc++

0 commit comments

Comments
 (0)