@bacons/apple-targets 3.0.5 → 3.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +5 -1
  2. package/build/colorset/{withIosColorset.js → with-ios-colorset.js} +2 -2
  3. package/build/config-plugin.js +9 -10
  4. package/build/config.d.ts +0 -2
  5. package/build/{withXcodeChanges.d.ts → configuration-list.d.ts} +2 -2
  6. package/build/configuration-list.js +656 -0
  7. package/build/target.d.ts +473 -2
  8. package/build/target.js +281 -239
  9. package/build/util.d.ts +18 -0
  10. package/build/util.js +48 -0
  11. package/build/{withXcparse.js → with-bacons-xcode.js} +5 -2
  12. package/build/{withEasCredentials.js → with-eas-credentials.js} +2 -2
  13. package/build/{withWidget.js → with-widget.js} +24 -65
  14. package/build/with-xcode-changes.d.ts +3 -0
  15. package/build/with-xcode-changes.js +397 -0
  16. package/package.json +7 -2
  17. package/build/template/XCBuildConfiguration.json +0 -759
  18. package/build/withXcodeChanges.js +0 -1039
  19. /package/build/colorset/{customColorFromCSS.d.ts → custom-color-from-css.d.ts} +0 -0
  20. /package/build/colorset/{customColorFromCSS.js → custom-color-from-css.js} +0 -0
  21. /package/build/colorset/{withIosColorset.d.ts → with-ios-colorset.d.ts} +0 -0
  22. /package/build/icon/{withImageAsset.d.ts → with-image-asset.d.ts} +0 -0
  23. /package/build/icon/{withImageAsset.js → with-image-asset.js} +0 -0
  24. /package/build/icon/{withIosIcon.d.ts → with-ios-icon.d.ts} +0 -0
  25. /package/build/icon/{withIosIcon.js → with-ios-icon.js} +0 -0
  26. /package/build/{withXcparse.d.ts → with-bacons-xcode.d.ts} +0 -0
  27. /package/build/{withEasCredentials.d.ts → with-eas-credentials.d.ts} +0 -0
  28. /package/build/{withPodTargetExtension.d.ts → with-pod-target-extension.d.ts} +0 -0
  29. /package/build/{withPodTargetExtension.js → with-pod-target-extension.js} +0 -0
  30. /package/build/{withWidget.d.ts → with-widget.d.ts} +0 -0
@@ -0,0 +1,656 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createConfigurationListForType = void 0;
4
+ const xcode_1 = require("@bacons/xcode");
5
+ const target_1 = require("./target");
6
+ function createNotificationContentConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, }) {
7
+ const common = {
8
+ CLANG_ANALYZER_NONNULL: "YES",
9
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
10
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
11
+ CLANG_ENABLE_OBJC_WEAK: "YES",
12
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
13
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
14
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
15
+ CODE_SIGN_STYLE: "Automatic",
16
+ COPY_PHASE_STRIP: "NO",
17
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
18
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
19
+ GENERATE_INFOPLIST_FILE: "YES",
20
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
21
+ INFOPLIST_FILE: cwd + "/Info.plist",
22
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
23
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
24
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
25
+ LD_RUNPATH_SEARCH_PATHS: [
26
+ "$(inherited)",
27
+ "@executable_path/Frameworks",
28
+ "@executable_path/../../Frameworks",
29
+ ],
30
+ MARKETING_VERSION: "1.0",
31
+ MTL_FAST_MATH: "YES",
32
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
33
+ PRODUCT_NAME: "$(TARGET_NAME)",
34
+ SKIP_INSTALL: "YES",
35
+ SWIFT_EMIT_LOC_STRINGS: "YES",
36
+ SWIFT_COMPILATION_MODE: "wholemodule",
37
+ SWIFT_OPTIMIZATION_LEVEL: "-O",
38
+ SWIFT_VERSION: "5.0",
39
+ TARGETED_DEVICE_FAMILY: "1,2",
40
+ };
41
+ return {
42
+ debug: {
43
+ ...common,
44
+ // Diff
45
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
46
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
47
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
48
+ DEBUG_INFORMATION_FORMAT: "dwarf",
49
+ },
50
+ release: {
51
+ ...common,
52
+ CLANG_ANALYZER_NONNULL: "YES",
53
+ },
54
+ };
55
+ }
56
+ function createActionConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, icon, }) {
57
+ const common = {
58
+ CLANG_ANALYZER_NONNULL: "YES",
59
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
60
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
61
+ CLANG_ENABLE_OBJC_WEAK: "YES",
62
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
63
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
64
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
65
+ CODE_SIGN_STYLE: "Automatic",
66
+ CURRENT_PROJECT_VERSION: 1,
67
+ DEVELOPMENT_TEAM: "QQ57RJ5UTD",
68
+ ENABLE_USER_SCRIPT_SANDBOXING: "YES",
69
+ GCC_C_LANGUAGE_STANDARD: "gnu17",
70
+ GENERATE_INFOPLIST_FILE: "YES",
71
+ INFOPLIST_FILE: "axun/Info.plist",
72
+ INFOPLIST_KEY_CFBundleDisplayName: "axun",
73
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
74
+ IPHONEOS_DEPLOYMENT_TARGET: "17",
75
+ LD_RUNPATH_SEARCH_PATHS: "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks",
76
+ MARKETING_VERSION: 1,
77
+ MTL_FAST_MATH: "YES",
78
+ PRODUCT_BUNDLE_IDENTIFIER: "com.bacon.2095.axun",
79
+ PRODUCT_NAME: "$(TARGET_NAME)",
80
+ SKIP_INSTALL: "YES",
81
+ SWIFT_EMIT_LOC_STRINGS: "YES",
82
+ SWIFT_VERSION: "5.0",
83
+ TARGETED_DEVICE_FAMILY: "1,2",
84
+ // @ts-expect-error
85
+ LOCALIZATION_PREFERS_STRING_CATALOGS: "YES",
86
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: "YES",
87
+ };
88
+ const dynamic = {
89
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
90
+ INFOPLIST_FILE: cwd + "/Info.plist",
91
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
92
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
93
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
94
+ };
95
+ if (icon) {
96
+ // Add `ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;` build settings
97
+ dynamic.ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon";
98
+ }
99
+ return {
100
+ debug: {
101
+ ...common,
102
+ DEBUG_INFORMATION_FORMAT: "dwarf",
103
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
104
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG $(inherited)",
105
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
106
+ ...dynamic,
107
+ },
108
+ release: {
109
+ ...common,
110
+ COPY_PHASE_STRIP: "NO",
111
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
112
+ SWIFT_COMPILATION_MODE: "wholemodule",
113
+ ...dynamic,
114
+ },
115
+ };
116
+ }
117
+ function createAppIntentConfigurationList({ name, displayName, cwd, bundleId, }) {
118
+ const commonBuildSettings = {
119
+ // @ts-expect-error
120
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: "YES",
121
+ CLANG_ANALYZER_NONNULL: "YES",
122
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
123
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
124
+ CLANG_ENABLE_OBJC_WEAK: "YES",
125
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
126
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
127
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
128
+ CODE_SIGN_STYLE: "Automatic",
129
+ CURRENT_PROJECT_VERSION: "1",
130
+ DEBUG_INFORMATION_FORMAT: "dwarf",
131
+ ENABLE_USER_SCRIPT_SANDBOXING: "YES",
132
+ GCC_C_LANGUAGE_STANDARD: "gnu17",
133
+ GENERATE_INFOPLIST_FILE: "YES",
134
+ INFOPLIST_FILE: cwd + "/Info.plist",
135
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
136
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
137
+ IPHONEOS_DEPLOYMENT_TARGET: "17.0",
138
+ LD_RUNPATH_SEARCH_PATHS: [
139
+ "$(inherited)",
140
+ "@executable_path/Frameworks",
141
+ "@executable_path/../../Frameworks",
142
+ ],
143
+ LOCALIZATION_PREFERS_STRING_CATALOGS: "YES",
144
+ MARKETING_VERSION: "1.0",
145
+ MTL_FAST_MATH: "YES",
146
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
147
+ PRODUCT_NAME: "$(TARGET_NAME)",
148
+ SKIP_INSTALL: "YES",
149
+ SWIFT_EMIT_LOC_STRINGS: "YES",
150
+ SWIFT_VERSION: "5.0",
151
+ TARGETED_DEVICE_FAMILY: "1,2",
152
+ };
153
+ return {
154
+ debug: {
155
+ ...commonBuildSettings,
156
+ GCC_PREPROCESSOR_DEFINITIONS: ["DEBUG=1", "$(inherited)"],
157
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
158
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG $(inherited)",
159
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
160
+ },
161
+ release: {
162
+ ...commonBuildSettings,
163
+ COPY_PHASE_STRIP: "NO",
164
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
165
+ ...{ SWIFT_COMPILATION_MODE: "wholemodule" },
166
+ },
167
+ };
168
+ }
169
+ function createShareConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, }) {
170
+ const common = {
171
+ CLANG_ANALYZER_NONNULL: "YES",
172
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
173
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
174
+ CLANG_ENABLE_OBJC_WEAK: "YES",
175
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
176
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
177
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
178
+ CODE_SIGN_STYLE: "Automatic",
179
+ DEBUG_INFORMATION_FORMAT: "dwarf", // NOTE
180
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
181
+ GENERATE_INFOPLIST_FILE: "YES",
182
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
183
+ INFOPLIST_FILE: cwd + "/Info.plist",
184
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
185
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
186
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
187
+ LD_RUNPATH_SEARCH_PATHS: [
188
+ "$(inherited)",
189
+ "@executable_path/Frameworks",
190
+ "@executable_path/../../Frameworks",
191
+ ],
192
+ MARKETING_VERSION: "1.0",
193
+ MTL_FAST_MATH: "YES",
194
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
195
+ PRODUCT_NAME: "$(TARGET_NAME)",
196
+ SKIP_INSTALL: "YES",
197
+ SWIFT_EMIT_LOC_STRINGS: "YES",
198
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
199
+ SWIFT_VERSION: "5.0",
200
+ TARGETED_DEVICE_FAMILY: "1,2",
201
+ };
202
+ return {
203
+ debug: {
204
+ ...common,
205
+ // Diff
206
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
207
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
208
+ },
209
+ release: {
210
+ CLANG_ANALYZER_NONNULL: "YES",
211
+ ...common,
212
+ // Diff
213
+ COPY_PHASE_STRIP: "NO",
214
+ },
215
+ };
216
+ }
217
+ function createIMessageConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, }) {
218
+ const common = {
219
+ ASSETCATALOG_COMPILER_APPICON_NAME: "iMessage App Icon",
220
+ CLANG_ANALYZER_NONNULL: "YES",
221
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
222
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
223
+ CLANG_ENABLE_OBJC_WEAK: "YES",
224
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
225
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
226
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
227
+ CODE_SIGN_STYLE: "Automatic",
228
+ DEBUG_INFORMATION_FORMAT: "dwarf", // NOTE
229
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
230
+ GENERATE_INFOPLIST_FILE: "YES",
231
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
232
+ INFOPLIST_FILE: cwd + "/Info.plist",
233
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
234
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
235
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
236
+ LD_RUNPATH_SEARCH_PATHS: [
237
+ "$(inherited)",
238
+ "@executable_path/Frameworks",
239
+ "@executable_path/../../Frameworks",
240
+ ],
241
+ MARKETING_VERSION: "1.0",
242
+ MTL_FAST_MATH: "YES",
243
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
244
+ PRODUCT_NAME: "$(TARGET_NAME)",
245
+ SKIP_INSTALL: "YES",
246
+ SWIFT_EMIT_LOC_STRINGS: "YES",
247
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
248
+ SWIFT_VERSION: "5.0",
249
+ TARGETED_DEVICE_FAMILY: "1,2",
250
+ };
251
+ return {
252
+ debug: {
253
+ ...common,
254
+ // Diff
255
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
256
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
257
+ },
258
+ release: {
259
+ ...common,
260
+ // Diff
261
+ COPY_PHASE_STRIP: "NO",
262
+ },
263
+ };
264
+ }
265
+ function createWatchAppConfigurationList(project, { name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, hasAccentColor, }) {
266
+ const mainAppTarget = (0, target_1.getMainAppTarget)(project).getDefaultConfiguration();
267
+ // NOTE: No base Info.plist needed.
268
+ const common = {
269
+ ASSETCATALOG_COMPILER_APPICON_NAME: "AppIcon",
270
+ CLANG_ANALYZER_NONNULL: "YES",
271
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
272
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
273
+ CLANG_ENABLE_OBJC_WEAK: "YES",
274
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
275
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
276
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
277
+ CODE_SIGN_STYLE: "Automatic",
278
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
279
+ ENABLE_PREVIEWS: "YES",
280
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
281
+ INFOPLIST_FILE: cwd + "/Info.plist",
282
+ GENERATE_INFOPLIST_FILE: "YES",
283
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
284
+ INFOPLIST_KEY_UISupportedInterfaceOrientations: "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown",
285
+ INFOPLIST_KEY_WKCompanionAppBundleIdentifier: mainAppTarget.props.buildSettings.PRODUCT_BUNDLE_IDENTIFIER,
286
+ // INFOPLIST_KEY_WKCompanionAppBundleIdentifier: "$(BUNDLE_IDENTIFIER)",
287
+ // INFOPLIST_KEY_WKCompanionAppBundleIdentifier: rootBundleId,
288
+ LD_RUNPATH_SEARCH_PATHS: ["$(inherited)", "@executable_path/Frameworks"],
289
+ MARKETING_VERSION: "1.0",
290
+ MTL_FAST_MATH: "YES",
291
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
292
+ PRODUCT_NAME: "$(TARGET_NAME)",
293
+ SDKROOT: "watchos",
294
+ SKIP_INSTALL: "YES",
295
+ SWIFT_EMIT_LOC_STRINGS: "YES",
296
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
297
+ SWIFT_VERSION: "5.0",
298
+ TARGETED_DEVICE_FAMILY: "4",
299
+ WATCHOS_DEPLOYMENT_TARGET: deploymentTarget !== null && deploymentTarget !== void 0 ? deploymentTarget : "9.4",
300
+ // WATCHOS_DEPLOYMENT_TARGET: 9.4,
301
+ };
302
+ if (hasAccentColor) {
303
+ common.ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "$accent";
304
+ }
305
+ return {
306
+ debug: {
307
+ ...common,
308
+ // Diff
309
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
310
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
311
+ DEBUG_INFORMATION_FORMAT: "dwarf", // NOTE
312
+ },
313
+ release: {
314
+ ...common,
315
+ // Diff
316
+ SWIFT_COMPILATION_MODE: "wholemodule",
317
+ SWIFT_OPTIMIZATION_LEVEL: "-O",
318
+ COPY_PHASE_STRIP: "NO",
319
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
320
+ },
321
+ };
322
+ }
323
+ function createSafariConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, }) {
324
+ const common = {
325
+ CLANG_ANALYZER_NONNULL: "YES",
326
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
327
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
328
+ CLANG_ENABLE_OBJC_WEAK: "YES",
329
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
330
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
331
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
332
+ CODE_SIGN_STYLE: "Automatic",
333
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
334
+ GENERATE_INFOPLIST_FILE: "YES",
335
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
336
+ INFOPLIST_FILE: cwd + "/Info.plist",
337
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
338
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
339
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
340
+ LD_RUNPATH_SEARCH_PATHS: [
341
+ "$(inherited)",
342
+ "@executable_path/Frameworks",
343
+ "@executable_path/../../Frameworks",
344
+ ],
345
+ MARKETING_VERSION: "1.0",
346
+ MTL_FAST_MATH: "YES",
347
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
348
+ PRODUCT_NAME: "$(TARGET_NAME)",
349
+ SKIP_INSTALL: "YES",
350
+ SWIFT_EMIT_LOC_STRINGS: "YES",
351
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
352
+ SWIFT_VERSION: "5.0",
353
+ TARGETED_DEVICE_FAMILY: "1,2",
354
+ OTHER_LDFLAGS: [`-framework`, "SafariServices"],
355
+ };
356
+ return {
357
+ debug: {
358
+ ...common,
359
+ // Diff
360
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
361
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
362
+ DEBUG_INFORMATION_FORMAT: "dwarf", // NOTE
363
+ },
364
+ release: {
365
+ ...common,
366
+ // Diff
367
+ SWIFT_COMPILATION_MODE: "wholemodule",
368
+ SWIFT_OPTIMIZATION_LEVEL: "-O",
369
+ COPY_PHASE_STRIP: "NO",
370
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
371
+ },
372
+ };
373
+ }
374
+ function createAppClipConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, hasAccentColor, orientation, deviceFamilies, }) {
375
+ // TODO: Unify AppIcon and AccentColor logic
376
+ const dynamic = {
377
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
378
+ INFOPLIST_FILE: cwd + "/Info.plist",
379
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
380
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
381
+ MARKETING_VERSION: "1.0",
382
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
383
+ // TODO: Add this later like entitlements
384
+ // DEVELOPMENT_ASSET_PATHS: `\"${cwd}/Preview Content\"`,
385
+ };
386
+ if (hasAccentColor) {
387
+ dynamic.ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "$accent";
388
+ }
389
+ const superCommon = {
390
+ CLANG_ANALYZER_NONNULL: "YES",
391
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
392
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
393
+ CLANG_ENABLE_OBJC_WEAK: "YES",
394
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
395
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
396
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
397
+ CODE_SIGN_STYLE: "Automatic",
398
+ COPY_PHASE_STRIP: "NO",
399
+ PRODUCT_NAME: "$(TARGET_NAME)",
400
+ SWIFT_EMIT_LOC_STRINGS: "YES",
401
+ SWIFT_VERSION: "5.0",
402
+ ...getDeviceFamilyBuildSettings(deviceFamilies),
403
+ };
404
+ const infoPlist = {
405
+ GENERATE_INFOPLIST_FILE: "YES",
406
+ INFOPLIST_KEY_UIApplicationSceneManifest_Generation: "YES",
407
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: "YES",
408
+ INFOPLIST_KEY_UILaunchScreen_Generation: "YES",
409
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad: "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight",
410
+ ...getOrientationBuildSettings(orientation),
411
+ };
412
+ // Attempt to automatically set the build number to match the main app.
413
+ // This only works with EAS Build, other processes can simply set the number manually.
414
+ if (process.env.EAS_BUILD_IOS_BUILD_NUMBER) {
415
+ // NOTE: INFOPLIST_KEY_CFBundleVersion doesn't work here.
416
+ infoPlist.CURRENT_PROJECT_VERSION = process.env.EAS_BUILD_IOS_BUILD_NUMBER;
417
+ }
418
+ // @ts-expect-error
419
+ const common = {
420
+ ...dynamic,
421
+ ...infoPlist,
422
+ ...superCommon,
423
+ ASSETCATALOG_COMPILER_APPICON_NAME: "AppIcon",
424
+ LD_RUNPATH_SEARCH_PATHS: ["$(inherited)", "@executable_path/Frameworks"],
425
+ MTL_FAST_MATH: "YES",
426
+ ENABLE_PREVIEWS: "YES",
427
+ };
428
+ return {
429
+ debug: {
430
+ ...common,
431
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
432
+ // Diff
433
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
434
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
435
+ DEBUG_INFORMATION_FORMAT: "dwarf", // NOTE
436
+ },
437
+ release: {
438
+ ...common,
439
+ // Diff
440
+ SWIFT_COMPILATION_MODE: "wholemodule",
441
+ SWIFT_OPTIMIZATION_LEVEL: "-O",
442
+ COPY_PHASE_STRIP: "NO",
443
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
444
+ },
445
+ };
446
+ }
447
+ function getOrientationBuildSettings(orientation) {
448
+ // NOTE: The requiresFullScreen support is deprecated in iOS 26+
449
+ // https://developer.apple.com/documentation/BundleResources/Information-Property-List/UIRequiresFullScreen
450
+ // Try to align the orientation with the main app.
451
+ if (orientation === "landscape") {
452
+ return {
453
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight",
454
+ };
455
+ }
456
+ else if (orientation === "portrait") {
457
+ return {
458
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: "UIInterfaceOrientationPortrait",
459
+ };
460
+ }
461
+ return {
462
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone: "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight",
463
+ };
464
+ }
465
+ function getDeviceFamilyBuildSettings(deviceFamilies) {
466
+ if (!deviceFamilies) {
467
+ return {
468
+ TARGETED_DEVICE_FAMILY: "1,2",
469
+ };
470
+ }
471
+ const families = [];
472
+ if (deviceFamilies.includes("phone")) {
473
+ families.push(1);
474
+ }
475
+ if (deviceFamilies.includes("tablet")) {
476
+ families.push(2);
477
+ }
478
+ return {
479
+ TARGETED_DEVICE_FAMILY: families.join(","),
480
+ };
481
+ }
482
+ function createWidgetConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, icon, }) {
483
+ return {
484
+ debug: {
485
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: "$accent",
486
+ ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME: "$widgetBackground",
487
+ CLANG_ANALYZER_NONNULL: "YES",
488
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
489
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
490
+ CLANG_ENABLE_OBJC_WEAK: "YES",
491
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
492
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
493
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
494
+ CODE_SIGN_STYLE: "Automatic",
495
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
496
+ DEBUG_INFORMATION_FORMAT: "dwarf",
497
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
498
+ GENERATE_INFOPLIST_FILE: "YES",
499
+ INFOPLIST_FILE: cwd + "/Info.plist",
500
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
501
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
502
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
503
+ LD_RUNPATH_SEARCH_PATHS: [
504
+ "$(inherited)",
505
+ "@executable_path/Frameworks",
506
+ "@executable_path/../../Frameworks",
507
+ ],
508
+ MARKETING_VERSION: "1.0",
509
+ MTL_ENABLE_DEBUG_INFO: "INCLUDE_SOURCE",
510
+ MTL_FAST_MATH: "YES",
511
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
512
+ PRODUCT_NAME: "$(TARGET_NAME)",
513
+ SKIP_INSTALL: "YES",
514
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS: "DEBUG",
515
+ SWIFT_EMIT_LOC_STRINGS: "YES",
516
+ SWIFT_OPTIMIZATION_LEVEL: "-Onone",
517
+ SWIFT_VERSION: "5.0",
518
+ TARGETED_DEVICE_FAMILY: "1,2",
519
+ },
520
+ release: {
521
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: "$accent",
522
+ ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME: "$widgetBackground",
523
+ CLANG_ANALYZER_NONNULL: "YES",
524
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION: "YES_AGGRESSIVE",
525
+ CLANG_CXX_LANGUAGE_STANDARD: "gnu++20",
526
+ CLANG_ENABLE_OBJC_WEAK: "YES",
527
+ CLANG_WARN_DOCUMENTATION_COMMENTS: "YES",
528
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES",
529
+ CLANG_WARN_UNGUARDED_AVAILABILITY: "YES_AGGRESSIVE",
530
+ CODE_SIGN_STYLE: "Automatic",
531
+ COPY_PHASE_STRIP: "NO",
532
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
533
+ DEBUG_INFORMATION_FORMAT: "dwarf-with-dsym",
534
+ GCC_C_LANGUAGE_STANDARD: "gnu11",
535
+ GENERATE_INFOPLIST_FILE: "YES",
536
+ INFOPLIST_FILE: cwd + "/Info.plist",
537
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
538
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
539
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
540
+ LD_RUNPATH_SEARCH_PATHS: [
541
+ "$(inherited)",
542
+ "@executable_path/Frameworks",
543
+ "@executable_path/../../Frameworks",
544
+ ],
545
+ MARKETING_VERSION: "1.0",
546
+ MTL_FAST_MATH: "YES",
547
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
548
+ PRODUCT_NAME: "$(TARGET_NAME)",
549
+ SKIP_INSTALL: "YES",
550
+ SWIFT_EMIT_LOC_STRINGS: "YES",
551
+ SWIFT_COMPILATION_MODE: "wholemodule",
552
+ SWIFT_OPTIMIZATION_LEVEL: "-O",
553
+ SWIFT_VERSION: "5.0",
554
+ TARGETED_DEVICE_FAMILY: "1,2",
555
+ },
556
+ };
557
+ }
558
+ function createKeyboardConfigurationList({ name, displayName, cwd, bundleId, deploymentTarget, currentProjectVersion, }) {
559
+ const common = {
560
+ CODE_SIGN_STYLE: "Automatic",
561
+ CURRENT_PROJECT_VERSION: currentProjectVersion,
562
+ GENERATE_INFOPLIST_FILE: "YES",
563
+ INFOPLIST_FILE: cwd + "/Info.plist",
564
+ INFOPLIST_KEY_CFBundleDisplayName: displayName !== null && displayName !== void 0 ? displayName : name,
565
+ INFOPLIST_KEY_NSHumanReadableCopyright: "",
566
+ IPHONEOS_DEPLOYMENT_TARGET: deploymentTarget,
567
+ LD_RUNPATH_SEARCH_PATHS: [
568
+ "$(inherited)",
569
+ "@executable_path/Frameworks",
570
+ "@executable_path/../../Frameworks",
571
+ ],
572
+ MARKETING_VERSION: "1.0",
573
+ PRODUCT_BUNDLE_IDENTIFIER: bundleId,
574
+ PRODUCT_NAME: "$(TARGET_NAME)",
575
+ SDKROOT: "iphoneos",
576
+ SKIP_INSTALL: "YES",
577
+ // @ts-expect-error - New Xcode build settings not in types yet
578
+ STRING_CATALOG_GENERATE_SYMBOLS: "YES",
579
+ SWIFT_APPROACHABLE_CONCURRENCY: "YES",
580
+ SWIFT_EMIT_LOC_STRINGS: "YES",
581
+ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY: "YES",
582
+ SWIFT_VERSION: "5.0",
583
+ TARGETED_DEVICE_FAMILY: "1,2",
584
+ };
585
+ return {
586
+ debug: {
587
+ ...common,
588
+ },
589
+ release: {
590
+ ...common,
591
+ // Diff
592
+ VALIDATE_PRODUCT: "YES",
593
+ },
594
+ };
595
+ }
596
+ function getConfigurationListBuildSettingsForType(project, props) {
597
+ switch (props.type) {
598
+ case "widget":
599
+ return createWidgetConfigurationList(props);
600
+ case "action":
601
+ return createActionConfigurationList(props);
602
+ case "keyboard":
603
+ return createKeyboardConfigurationList(props);
604
+ case "share":
605
+ return createShareConfigurationList(props);
606
+ case "safari":
607
+ return createSafariConfigurationList(props);
608
+ case "imessage":
609
+ return createIMessageConfigurationList(props);
610
+ case "clip":
611
+ return createAppClipConfigurationList(props);
612
+ case "watch":
613
+ return createWatchAppConfigurationList(project, props);
614
+ case "app-intent":
615
+ return createAppIntentConfigurationList(props);
616
+ case "notification-content":
617
+ // TODO: These just use this default value for now.
618
+ case "notification-service":
619
+ case "account-auth":
620
+ case "bg-download":
621
+ case "credentials-provider":
622
+ case "device-activity-monitor":
623
+ case "intent":
624
+ case "intent-ui":
625
+ case "location-push":
626
+ case "matter":
627
+ case "network-app-proxy":
628
+ case "network-dns-proxy":
629
+ case "network-filter-data":
630
+ case "network-packet-tunnel":
631
+ case "quicklook-thumbnail":
632
+ case "spotlight":
633
+ return createNotificationContentConfigurationList(props);
634
+ default:
635
+ const exhaustiveCheck = props.type;
636
+ throw new Error(`Unhandled case: ${exhaustiveCheck}`);
637
+ }
638
+ }
639
+ function createConfigurationListForType(project, props) {
640
+ const { debug, release } = getConfigurationListBuildSettingsForType(project, props);
641
+ return xcode_1.XCConfigurationList.create(project, {
642
+ buildConfigurations: [
643
+ xcode_1.XCBuildConfiguration.create(project, {
644
+ name: "Debug",
645
+ buildSettings: debug,
646
+ }),
647
+ xcode_1.XCBuildConfiguration.create(project, {
648
+ name: "Release",
649
+ buildSettings: release,
650
+ }),
651
+ ],
652
+ defaultConfigurationIsVisible: 0,
653
+ defaultConfigurationName: "Release",
654
+ });
655
+ }
656
+ exports.createConfigurationListForType = createConfigurationListForType;