Skip to content

Commit 786d2c1

Browse files
committed
feat: Add SPM sample
1 parent 535ebd9 commit 786d2c1

File tree

8 files changed

+469
-3
lines changed

8 files changed

+469
-3
lines changed

Package.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ var targets: [Target] = [
7272
.testTarget(name: "SentryDistributionTests", dependencies: ["SentryDistribution"], path: "Sources/SentryDistributionTests")
7373
]
7474

75-
let env = getenv("EXPERIMENTAL_SPM_BUILDS")
76-
if let env = env, String(cString: env, encoding: .utf8) == "1" {
7775
products.append(.library(name: "SentrySPM", type: .dynamic, targets: ["SentryObjc"]))
7876
targets.append(contentsOf: [
7977
// At least one source file is required, therefore we use a dummy class to satisfy the SPM build system
@@ -116,7 +114,6 @@ if let env = env, String(cString: env, encoding: .utf8) == "1" {
116114
.headerSearchPath("SentryCrash/Reporting/Filters/Tools"),
117115
.define("SDK_V9")])
118116
])
119-
}
120117

121118
let package = Package(
122119
name: "Sentry",
Lines changed: 356 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,356 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 77;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
FAB007A52EA051F4001C806A /* SentrySPM in Frameworks */ = {isa = PBXBuildFile; productRef = FAB007A42EA051F4001C806A /* SentrySPM */; };
11+
/* End PBXBuildFile section */
12+
13+
/* Begin PBXFileReference section */
14+
FAB007952EA05154001C806A /* SPMTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SPMTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
15+
/* End PBXFileReference section */
16+
17+
/* Begin PBXFileSystemSynchronizedRootGroup section */
18+
FAB007972EA05154001C806A /* SPMTest */ = {
19+
isa = PBXFileSystemSynchronizedRootGroup;
20+
path = SPMTest;
21+
sourceTree = "<group>";
22+
};
23+
/* End PBXFileSystemSynchronizedRootGroup section */
24+
25+
/* Begin PBXFrameworksBuildPhase section */
26+
FAB007922EA05154001C806A /* Frameworks */ = {
27+
isa = PBXFrameworksBuildPhase;
28+
buildActionMask = 2147483647;
29+
files = (
30+
FAB007A52EA051F4001C806A /* SentrySPM in Frameworks */,
31+
);
32+
runOnlyForDeploymentPostprocessing = 0;
33+
};
34+
/* End PBXFrameworksBuildPhase section */
35+
36+
/* Begin PBXGroup section */
37+
FAB0078C2EA05154001C806A = {
38+
isa = PBXGroup;
39+
children = (
40+
FAB007972EA05154001C806A /* SPMTest */,
41+
FAB007962EA05154001C806A /* Products */,
42+
);
43+
sourceTree = "<group>";
44+
};
45+
FAB007962EA05154001C806A /* Products */ = {
46+
isa = PBXGroup;
47+
children = (
48+
FAB007952EA05154001C806A /* SPMTest.app */,
49+
);
50+
name = Products;
51+
sourceTree = "<group>";
52+
};
53+
/* End PBXGroup section */
54+
55+
/* Begin PBXNativeTarget section */
56+
FAB007942EA05154001C806A /* SPMTest */ = {
57+
isa = PBXNativeTarget;
58+
buildConfigurationList = FAB007A02EA05155001C806A /* Build configuration list for PBXNativeTarget "SPMTest" */;
59+
buildPhases = (
60+
FAB007912EA05154001C806A /* Sources */,
61+
FAB007922EA05154001C806A /* Frameworks */,
62+
FAB007932EA05154001C806A /* Resources */,
63+
);
64+
buildRules = (
65+
);
66+
dependencies = (
67+
);
68+
fileSystemSynchronizedGroups = (
69+
FAB007972EA05154001C806A /* SPMTest */,
70+
);
71+
name = SPMTest;
72+
packageProductDependencies = (
73+
FAB007A42EA051F4001C806A /* SentrySPM */,
74+
);
75+
productName = SPMTest;
76+
productReference = FAB007952EA05154001C806A /* SPMTest.app */;
77+
productType = "com.apple.product-type.application";
78+
};
79+
/* End PBXNativeTarget section */
80+
81+
/* Begin PBXProject section */
82+
FAB0078D2EA05154001C806A /* Project object */ = {
83+
isa = PBXProject;
84+
attributes = {
85+
BuildIndependentTargetsInParallel = 1;
86+
LastSwiftUpdateCheck = 2600;
87+
LastUpgradeCheck = 2600;
88+
TargetAttributes = {
89+
FAB007942EA05154001C806A = {
90+
CreatedOnToolsVersion = 26.0.1;
91+
};
92+
};
93+
};
94+
buildConfigurationList = FAB007902EA05154001C806A /* Build configuration list for PBXProject "SPMTest" */;
95+
developmentRegion = en;
96+
hasScannedForEncodings = 0;
97+
knownRegions = (
98+
en,
99+
Base,
100+
);
101+
mainGroup = FAB0078C2EA05154001C806A;
102+
minimizedProjectReferenceProxies = 1;
103+
packageReferences = (
104+
FAB007A32EA051F4001C806A /* XCLocalSwiftPackageReference "../../../../sentry-cocoa" */,
105+
);
106+
preferredProjectObjectVersion = 77;
107+
productRefGroup = FAB007962EA05154001C806A /* Products */;
108+
projectDirPath = "";
109+
projectRoot = "";
110+
targets = (
111+
FAB007942EA05154001C806A /* SPMTest */,
112+
);
113+
};
114+
/* End PBXProject section */
115+
116+
/* Begin PBXResourcesBuildPhase section */
117+
FAB007932EA05154001C806A /* Resources */ = {
118+
isa = PBXResourcesBuildPhase;
119+
buildActionMask = 2147483647;
120+
files = (
121+
);
122+
runOnlyForDeploymentPostprocessing = 0;
123+
};
124+
/* End PBXResourcesBuildPhase section */
125+
126+
/* Begin PBXSourcesBuildPhase section */
127+
FAB007912EA05154001C806A /* Sources */ = {
128+
isa = PBXSourcesBuildPhase;
129+
buildActionMask = 2147483647;
130+
files = (
131+
);
132+
runOnlyForDeploymentPostprocessing = 0;
133+
};
134+
/* End PBXSourcesBuildPhase section */
135+
136+
/* Begin XCBuildConfiguration section */
137+
FAB0079E2EA05155001C806A /* Debug */ = {
138+
isa = XCBuildConfiguration;
139+
buildSettings = {
140+
ALWAYS_SEARCH_USER_PATHS = NO;
141+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
142+
CLANG_ANALYZER_NONNULL = YES;
143+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
144+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
145+
CLANG_ENABLE_MODULES = YES;
146+
CLANG_ENABLE_OBJC_ARC = YES;
147+
CLANG_ENABLE_OBJC_WEAK = YES;
148+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
149+
CLANG_WARN_BOOL_CONVERSION = YES;
150+
CLANG_WARN_COMMA = YES;
151+
CLANG_WARN_CONSTANT_CONVERSION = YES;
152+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
153+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
154+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
155+
CLANG_WARN_EMPTY_BODY = YES;
156+
CLANG_WARN_ENUM_CONVERSION = YES;
157+
CLANG_WARN_INFINITE_RECURSION = YES;
158+
CLANG_WARN_INT_CONVERSION = YES;
159+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
160+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
161+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
162+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
163+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
164+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
165+
CLANG_WARN_STRICT_PROTOTYPES = YES;
166+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
167+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
168+
CLANG_WARN_UNREACHABLE_CODE = YES;
169+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
170+
COPY_PHASE_STRIP = NO;
171+
DEBUG_INFORMATION_FORMAT = dwarf;
172+
ENABLE_STRICT_OBJC_MSGSEND = YES;
173+
ENABLE_TESTABILITY = YES;
174+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
175+
GCC_C_LANGUAGE_STANDARD = gnu17;
176+
GCC_DYNAMIC_NO_PIC = NO;
177+
GCC_NO_COMMON_BLOCKS = YES;
178+
GCC_OPTIMIZATION_LEVEL = 0;
179+
GCC_PREPROCESSOR_DEFINITIONS = (
180+
"DEBUG=1",
181+
"$(inherited)",
182+
);
183+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
184+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
185+
GCC_WARN_UNDECLARED_SELECTOR = YES;
186+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
187+
GCC_WARN_UNUSED_FUNCTION = YES;
188+
GCC_WARN_UNUSED_VARIABLE = YES;
189+
IPHONEOS_DEPLOYMENT_TARGET = 26.0;
190+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
191+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
192+
MTL_FAST_MATH = YES;
193+
ONLY_ACTIVE_ARCH = YES;
194+
SDKROOT = iphoneos;
195+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
196+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
197+
};
198+
name = Debug;
199+
};
200+
FAB0079F2EA05155001C806A /* Release */ = {
201+
isa = XCBuildConfiguration;
202+
buildSettings = {
203+
ALWAYS_SEARCH_USER_PATHS = NO;
204+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
205+
CLANG_ANALYZER_NONNULL = YES;
206+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
207+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
208+
CLANG_ENABLE_MODULES = YES;
209+
CLANG_ENABLE_OBJC_ARC = YES;
210+
CLANG_ENABLE_OBJC_WEAK = YES;
211+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
212+
CLANG_WARN_BOOL_CONVERSION = YES;
213+
CLANG_WARN_COMMA = YES;
214+
CLANG_WARN_CONSTANT_CONVERSION = YES;
215+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
216+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
217+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
218+
CLANG_WARN_EMPTY_BODY = YES;
219+
CLANG_WARN_ENUM_CONVERSION = YES;
220+
CLANG_WARN_INFINITE_RECURSION = YES;
221+
CLANG_WARN_INT_CONVERSION = YES;
222+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
223+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
224+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
225+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
226+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
227+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
228+
CLANG_WARN_STRICT_PROTOTYPES = YES;
229+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
230+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
231+
CLANG_WARN_UNREACHABLE_CODE = YES;
232+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
233+
COPY_PHASE_STRIP = NO;
234+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
235+
ENABLE_NS_ASSERTIONS = NO;
236+
ENABLE_STRICT_OBJC_MSGSEND = YES;
237+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
238+
GCC_C_LANGUAGE_STANDARD = gnu17;
239+
GCC_NO_COMMON_BLOCKS = YES;
240+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
241+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
242+
GCC_WARN_UNDECLARED_SELECTOR = YES;
243+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
244+
GCC_WARN_UNUSED_FUNCTION = YES;
245+
GCC_WARN_UNUSED_VARIABLE = YES;
246+
IPHONEOS_DEPLOYMENT_TARGET = 26.0;
247+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
248+
MTL_ENABLE_DEBUG_INFO = NO;
249+
MTL_FAST_MATH = YES;
250+
SDKROOT = iphoneos;
251+
SWIFT_COMPILATION_MODE = wholemodule;
252+
VALIDATE_PRODUCT = YES;
253+
};
254+
name = Release;
255+
};
256+
FAB007A12EA05155001C806A /* Debug */ = {
257+
isa = XCBuildConfiguration;
258+
buildSettings = {
259+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
260+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
261+
CODE_SIGN_STYLE = Automatic;
262+
CURRENT_PROJECT_VERSION = 1;
263+
ENABLE_PREVIEWS = YES;
264+
GENERATE_INFOPLIST_FILE = YES;
265+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
266+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
267+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
268+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
269+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
270+
LD_RUNPATH_SEARCH_PATHS = (
271+
"$(inherited)",
272+
"@executable_path/Frameworks",
273+
);
274+
MARKETING_VERSION = 1.0;
275+
PRODUCT_BUNDLE_IDENTIFIER = com.sentry.SPMTest;
276+
PRODUCT_NAME = "$(TARGET_NAME)";
277+
STRING_CATALOG_GENERATE_SYMBOLS = YES;
278+
SWIFT_APPROACHABLE_CONCURRENCY = YES;
279+
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
280+
SWIFT_EMIT_LOC_STRINGS = YES;
281+
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
282+
SWIFT_VERSION = 5.0;
283+
TARGETED_DEVICE_FAMILY = "1,2";
284+
};
285+
name = Debug;
286+
};
287+
FAB007A22EA05155001C806A /* Release */ = {
288+
isa = XCBuildConfiguration;
289+
buildSettings = {
290+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
291+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
292+
CODE_SIGN_STYLE = Automatic;
293+
CURRENT_PROJECT_VERSION = 1;
294+
ENABLE_PREVIEWS = YES;
295+
GENERATE_INFOPLIST_FILE = YES;
296+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
297+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
298+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
299+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
300+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
301+
LD_RUNPATH_SEARCH_PATHS = (
302+
"$(inherited)",
303+
"@executable_path/Frameworks",
304+
);
305+
MARKETING_VERSION = 1.0;
306+
PRODUCT_BUNDLE_IDENTIFIER = com.sentry.SPMTest;
307+
PRODUCT_NAME = "$(TARGET_NAME)";
308+
STRING_CATALOG_GENERATE_SYMBOLS = YES;
309+
SWIFT_APPROACHABLE_CONCURRENCY = YES;
310+
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
311+
SWIFT_EMIT_LOC_STRINGS = YES;
312+
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
313+
SWIFT_VERSION = 5.0;
314+
TARGETED_DEVICE_FAMILY = "1,2";
315+
};
316+
name = Release;
317+
};
318+
/* End XCBuildConfiguration section */
319+
320+
/* Begin XCConfigurationList section */
321+
FAB007902EA05154001C806A /* Build configuration list for PBXProject "SPMTest" */ = {
322+
isa = XCConfigurationList;
323+
buildConfigurations = (
324+
FAB0079E2EA05155001C806A /* Debug */,
325+
FAB0079F2EA05155001C806A /* Release */,
326+
);
327+
defaultConfigurationIsVisible = 0;
328+
defaultConfigurationName = Release;
329+
};
330+
FAB007A02EA05155001C806A /* Build configuration list for PBXNativeTarget "SPMTest" */ = {
331+
isa = XCConfigurationList;
332+
buildConfigurations = (
333+
FAB007A12EA05155001C806A /* Debug */,
334+
FAB007A22EA05155001C806A /* Release */,
335+
);
336+
defaultConfigurationIsVisible = 0;
337+
defaultConfigurationName = Release;
338+
};
339+
/* End XCConfigurationList section */
340+
341+
/* Begin XCLocalSwiftPackageReference section */
342+
FAB007A32EA051F4001C806A /* XCLocalSwiftPackageReference "../../../../sentry-cocoa" */ = {
343+
isa = XCLocalSwiftPackageReference;
344+
relativePath = "../../../../sentry-cocoa";
345+
};
346+
/* End XCLocalSwiftPackageReference section */
347+
348+
/* Begin XCSwiftPackageProductDependency section */
349+
FAB007A42EA051F4001C806A /* SentrySPM */ = {
350+
isa = XCSwiftPackageProductDependency;
351+
productName = SentrySPM;
352+
};
353+
/* End XCSwiftPackageProductDependency section */
354+
};
355+
rootObject = FAB0078D2EA05154001C806A /* Project object */;
356+
}

Samples/SPM/SPMTest/SPMTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"colors": [
3+
{
4+
"idiom": "universal"
5+
}
6+
],
7+
"info": {
8+
"author": "xcode",
9+
"version": 1
10+
}
11+
}

0 commit comments

Comments
 (0)