plasmo_xcodeproj 1.21.1

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 (69) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +19 -0
  3. data/README.md +95 -0
  4. data/bin/xcodeproj +10 -0
  5. data/lib/xcodeproj/command/config_dump.rb +91 -0
  6. data/lib/xcodeproj/command/project_diff.rb +56 -0
  7. data/lib/xcodeproj/command/show.rb +60 -0
  8. data/lib/xcodeproj/command/sort.rb +44 -0
  9. data/lib/xcodeproj/command/target_diff.rb +43 -0
  10. data/lib/xcodeproj/command.rb +63 -0
  11. data/lib/xcodeproj/config/other_linker_flags_parser.rb +73 -0
  12. data/lib/xcodeproj/config.rb +386 -0
  13. data/lib/xcodeproj/constants.rb +465 -0
  14. data/lib/xcodeproj/differ.rb +239 -0
  15. data/lib/xcodeproj/gem_version.rb +5 -0
  16. data/lib/xcodeproj/helper.rb +30 -0
  17. data/lib/xcodeproj/plist.rb +94 -0
  18. data/lib/xcodeproj/project/case_converter.rb +90 -0
  19. data/lib/xcodeproj/project/object/build_configuration.rb +255 -0
  20. data/lib/xcodeproj/project/object/build_file.rb +84 -0
  21. data/lib/xcodeproj/project/object/build_phase.rb +369 -0
  22. data/lib/xcodeproj/project/object/build_rule.rb +109 -0
  23. data/lib/xcodeproj/project/object/configuration_list.rb +117 -0
  24. data/lib/xcodeproj/project/object/container_item_proxy.rb +116 -0
  25. data/lib/xcodeproj/project/object/file_reference.rb +338 -0
  26. data/lib/xcodeproj/project/object/group.rb +506 -0
  27. data/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb +72 -0
  28. data/lib/xcodeproj/project/object/helpers/file_references_factory.rb +245 -0
  29. data/lib/xcodeproj/project/object/helpers/groupable_helper.rb +260 -0
  30. data/lib/xcodeproj/project/object/native_target.rb +751 -0
  31. data/lib/xcodeproj/project/object/reference_proxy.rb +86 -0
  32. data/lib/xcodeproj/project/object/root_object.rb +100 -0
  33. data/lib/xcodeproj/project/object/swift_package_product_dependency.rb +29 -0
  34. data/lib/xcodeproj/project/object/swift_package_remote_reference.rb +33 -0
  35. data/lib/xcodeproj/project/object/target_dependency.rb +94 -0
  36. data/lib/xcodeproj/project/object.rb +534 -0
  37. data/lib/xcodeproj/project/object_attributes.rb +522 -0
  38. data/lib/xcodeproj/project/object_dictionary.rb +210 -0
  39. data/lib/xcodeproj/project/object_list.rb +223 -0
  40. data/lib/xcodeproj/project/project_helper.rb +341 -0
  41. data/lib/xcodeproj/project/uuid_generator.rb +132 -0
  42. data/lib/xcodeproj/project.rb +874 -0
  43. data/lib/xcodeproj/scheme/abstract_scheme_action.rb +100 -0
  44. data/lib/xcodeproj/scheme/analyze_action.rb +19 -0
  45. data/lib/xcodeproj/scheme/archive_action.rb +59 -0
  46. data/lib/xcodeproj/scheme/build_action.rb +298 -0
  47. data/lib/xcodeproj/scheme/buildable_product_runnable.rb +55 -0
  48. data/lib/xcodeproj/scheme/buildable_reference.rb +129 -0
  49. data/lib/xcodeproj/scheme/command_line_arguments.rb +162 -0
  50. data/lib/xcodeproj/scheme/environment_variables.rb +170 -0
  51. data/lib/xcodeproj/scheme/execution_action.rb +86 -0
  52. data/lib/xcodeproj/scheme/launch_action.rb +179 -0
  53. data/lib/xcodeproj/scheme/location_scenario_reference.rb +49 -0
  54. data/lib/xcodeproj/scheme/macro_expansion.rb +34 -0
  55. data/lib/xcodeproj/scheme/profile_action.rb +57 -0
  56. data/lib/xcodeproj/scheme/remote_runnable.rb +92 -0
  57. data/lib/xcodeproj/scheme/send_email_action_content.rb +84 -0
  58. data/lib/xcodeproj/scheme/shell_script_action_content.rb +77 -0
  59. data/lib/xcodeproj/scheme/test_action.rb +394 -0
  60. data/lib/xcodeproj/scheme/xml_element_wrapper.rb +82 -0
  61. data/lib/xcodeproj/scheme.rb +375 -0
  62. data/lib/xcodeproj/user_interface.rb +22 -0
  63. data/lib/xcodeproj/workspace/file_reference.rb +79 -0
  64. data/lib/xcodeproj/workspace/group_reference.rb +67 -0
  65. data/lib/xcodeproj/workspace/reference.rb +40 -0
  66. data/lib/xcodeproj/workspace.rb +277 -0
  67. data/lib/xcodeproj/xcodebuild_helper.rb +108 -0
  68. data/lib/xcodeproj.rb +29 -0
  69. metadata +208 -0
@@ -0,0 +1,465 @@
1
+ module Xcodeproj
2
+ # This modules groups all the constants known to Xcodeproj.
3
+ #
4
+ module Constants
5
+ # @return [String] The last known iOS SDK (stable).
6
+ #
7
+ LAST_KNOWN_IOS_SDK = '14.0'
8
+
9
+ # @return [String] The last known OS X SDK (stable).
10
+ #
11
+ LAST_KNOWN_OSX_SDK = '10.15'
12
+
13
+ # @return [String] The last known tvOS SDK (stable).
14
+ #
15
+ LAST_KNOWN_TVOS_SDK = '14.0'
16
+
17
+ # @return [String] The last known watchOS SDK (stable).
18
+ #
19
+ LAST_KNOWN_WATCHOS_SDK = '7.0'
20
+
21
+ # @return [String] The last known archive version to Xcodeproj.
22
+ #
23
+ LAST_KNOWN_ARCHIVE_VERSION = 1
24
+
25
+ # @return [String] The last known Swift version (stable).
26
+ #
27
+ LAST_KNOWN_SWIFT_VERSION = '5.0'
28
+
29
+ # @return [String] The default object version for Xcodeproj.
30
+ #
31
+ DEFAULT_OBJECT_VERSION = 46
32
+
33
+ # @return [String] The last known object version to Xcodeproj.
34
+ #
35
+ LAST_KNOWN_OBJECT_VERSION = 55
36
+
37
+ # @return [String] The last known Xcode version to Xcodeproj.
38
+ #
39
+ LAST_UPGRADE_CHECK = '1300'
40
+
41
+ # @return [String] The last known Xcode version to Xcodeproj.
42
+ #
43
+ LAST_SWIFT_UPGRADE_CHECK = '1300'
44
+
45
+ # @return [String] The version of `.xcscheme` files supported by Xcodeproj
46
+ #
47
+ XCSCHEME_FORMAT_VERSION = '1.3'
48
+
49
+ # @return [Hash] The all the known ISAs grouped by superclass.
50
+ #
51
+ KNOWN_ISAS = {
52
+ 'AbstractObject' => %w(
53
+ PBXBuildFile
54
+ AbstractBuildPhase
55
+ PBXBuildRule
56
+ XCBuildConfiguration
57
+ XCConfigurationList
58
+ PBXContainerItemProxy
59
+ PBXFileReference
60
+ PBXGroup
61
+ PBXProject
62
+ PBXTargetDependency
63
+ PBXReferenceProxy
64
+ AbstractTarget
65
+ ),
66
+
67
+ 'AbstractBuildPhase' => %w(
68
+ PBXCopyFilesBuildPhase
69
+ PBXResourcesBuildPhase
70
+ PBXSourcesBuildPhase
71
+ PBXFrameworksBuildPhase
72
+ PBXHeadersBuildPhase
73
+ PBXShellScriptBuildPhase
74
+ ),
75
+
76
+ 'AbstractTarget' => %w(
77
+ PBXNativeTarget
78
+ PBXAggregateTarget
79
+ PBXLegacyTarget
80
+ ),
81
+
82
+ 'PBXGroup' => %w(
83
+ XCVersionGroup
84
+ PBXVariantGroup
85
+ ),
86
+ }.freeze
87
+
88
+ # @return [Hash] The known file types corresponding to each extension.
89
+ #
90
+ FILE_TYPES_BY_EXTENSION = {
91
+ 'a' => 'archive.ar',
92
+ 'apns' => 'text',
93
+ 'app' => 'wrapper.application',
94
+ 'appex' => 'wrapper.app-extension',
95
+ 'bundle' => 'wrapper.plug-in',
96
+ 'cpp' => 'sourcecode.cpp.cpp',
97
+ 'dylib' => 'compiled.mach-o.dylib',
98
+ 'entitlements' => 'text.plist.entitlements',
99
+ 'framework' => 'wrapper.framework',
100
+ 'gif' => 'image.gif',
101
+ 'gpx' => 'text.xml',
102
+ 'h' => 'sourcecode.c.h',
103
+ 'hpp' => 'sourcecode.cpp.h',
104
+ 'm' => 'sourcecode.c.objc',
105
+ 'markdown' => 'text',
106
+ 'mdimporter' => 'wrapper.cfbundle',
107
+ 'modulemap' => 'sourcecode.module',
108
+ 'mov' => 'video.quicktime',
109
+ 'mp3' => 'audio.mp3',
110
+ 'octest' => 'wrapper.cfbundle',
111
+ 'pch' => 'sourcecode.c.h',
112
+ 'plist' => 'text.plist.xml',
113
+ 'png' => 'image.png',
114
+ 'sh' => 'text.script.sh',
115
+ 'sks' => 'file.sks',
116
+ 'storyboard' => 'file.storyboard',
117
+ 'strings' => 'text.plist.strings',
118
+ 'swift' => 'sourcecode.swift',
119
+ 'xcassets' => 'folder.assetcatalog',
120
+ 'xcconfig' => 'text.xcconfig',
121
+ 'xcdatamodel' => 'wrapper.xcdatamodel',
122
+ 'xcodeproj' => 'wrapper.pb-project',
123
+ 'xctest' => 'wrapper.cfbundle',
124
+ 'xib' => 'file.xib',
125
+ 'zip' => 'archive.zip',
126
+ }.freeze
127
+
128
+ # @return [Hash] The compatibility version string for different object versions.
129
+ #
130
+ COMPATIBILITY_VERSION_BY_OBJECT_VERSION = {
131
+ 55 => 'Xcode 13.0',
132
+ 54 => 'Xcode 12.0',
133
+ 53 => 'Xcode 11.4',
134
+ 52 => 'Xcode 11.0',
135
+ 51 => 'Xcode 10.0',
136
+ 50 => 'Xcode 9.3',
137
+ 48 => 'Xcode 8.0',
138
+ 47 => 'Xcode 6.3',
139
+ 46 => 'Xcode 3.2',
140
+ 45 => 'Xcode 3.1',
141
+ }.freeze
142
+
143
+ # @return [Hash] The uniform type identifier of various product types.
144
+ #
145
+ PRODUCT_TYPE_UTI = {
146
+ :application => 'com.apple.product-type.application',
147
+ :application_on_demand_install_capable => 'com.apple.product-type.application.on-demand-install-capable',
148
+ :framework => 'com.apple.product-type.framework',
149
+ :dynamic_library => 'com.apple.product-type.library.dynamic',
150
+ :static_library => 'com.apple.product-type.library.static',
151
+ :bundle => 'com.apple.product-type.bundle',
152
+ :octest_bundle => 'com.apple.product-type.bundle',
153
+ :unit_test_bundle => 'com.apple.product-type.bundle.unit-test',
154
+ :ui_test_bundle => 'com.apple.product-type.bundle.ui-testing',
155
+ :app_extension => 'com.apple.product-type.app-extension',
156
+ :command_line_tool => 'com.apple.product-type.tool',
157
+ :watch_app => 'com.apple.product-type.application.watchapp',
158
+ :watch2_app => 'com.apple.product-type.application.watchapp2',
159
+ :watch2_app_container => 'com.apple.product-type.application.watchapp2-container',
160
+ :watch_extension => 'com.apple.product-type.watchkit-extension',
161
+ :watch2_extension => 'com.apple.product-type.watchkit2-extension',
162
+ :tv_extension => 'com.apple.product-type.tv-app-extension',
163
+ :messages_application => 'com.apple.product-type.application.messages',
164
+ :messages_extension => 'com.apple.product-type.app-extension.messages',
165
+ :sticker_pack => 'com.apple.product-type.app-extension.messages-sticker-pack',
166
+ :xpc_service => 'com.apple.product-type.xpc-service',
167
+ }.freeze
168
+
169
+ # @return [Hash] The extensions or the various product UTIs.
170
+ #
171
+ PRODUCT_UTI_EXTENSIONS = {
172
+ :application => 'app',
173
+ :application_on_demand_install_capable => 'app',
174
+ :framework => 'framework',
175
+ :dynamic_library => 'dylib',
176
+ :static_library => 'a',
177
+ :bundle => 'bundle',
178
+ :octest_bundle => 'octest',
179
+ :unit_test_bundle => 'xctest',
180
+ :ui_test_bundle => 'xctest',
181
+ :app_extension => 'appex',
182
+ :messages_application => 'app',
183
+ :messages_extension => 'appex',
184
+ :sticker_pack => 'appex',
185
+ :watch2_extension => 'appex',
186
+ :watch2_app => 'app',
187
+ :watch2_app_container => 'app',
188
+ }.freeze
189
+
190
+ # @return [Hash] The common build settings grouped by platform, and build
191
+ # configuration name.
192
+ #
193
+ COMMON_BUILD_SETTINGS = {
194
+ :all => {
195
+ # empty?
196
+ # come from the project settings
197
+ }.freeze,
198
+ [:debug] => {
199
+ # empty?
200
+ # come from the project settings
201
+ }.freeze,
202
+ [:release] => {
203
+ # empty?
204
+ # come from the project settings
205
+ }.freeze,
206
+ [:ios] => {
207
+ 'SDKROOT' => 'iphoneos',
208
+ }.freeze,
209
+ [:osx] => {
210
+ 'SDKROOT' => 'macosx',
211
+ }.freeze,
212
+ [:tvos] => {
213
+ 'SDKROOT' => 'appletvos',
214
+ }.freeze,
215
+ [:watchos] => {
216
+ 'SDKROOT' => 'watchos',
217
+ }.freeze,
218
+ [:debug, :osx] => {
219
+ # Empty?
220
+ }.freeze,
221
+ [:release, :osx] => {
222
+ # Empty?
223
+ }.freeze,
224
+ [:debug, :ios] => {
225
+ # Empty?
226
+ }.freeze,
227
+ [:release, :ios] => {
228
+ 'VALIDATE_PRODUCT' => 'YES',
229
+ }.freeze,
230
+ [:debug, :tvos] => {
231
+ # Empty?
232
+ }.freeze,
233
+ [:release, :tvos] => {
234
+ 'VALIDATE_PRODUCT' => 'YES',
235
+ }.freeze,
236
+ [:debug, :watchos] => {
237
+ # Empty?
238
+ }.freeze,
239
+ [:release, :watchos] => {
240
+ 'VALIDATE_PRODUCT' => 'YES',
241
+ }.freeze,
242
+ [:swift] => {
243
+ # Empty?
244
+ # The swift version, like deployment target, is set in
245
+ # ProjectHelper#common_build_settings
246
+ }.freeze,
247
+ [:debug, :application, :swift] => {
248
+ # Empty?
249
+ }.freeze,
250
+ [:debug, :swift] => {
251
+ # Swift optimization settings are provided by the project settings
252
+ }.freeze,
253
+ [:release, :swift] => {
254
+ # Swift optimization settings are provided by the project settings
255
+ }.freeze,
256
+ [:debug, :static_library, :swift] => {
257
+ }.freeze,
258
+ [:framework] => {
259
+ 'CURRENT_PROJECT_VERSION' => '1',
260
+ 'DEFINES_MODULE' => 'YES',
261
+ 'DYLIB_COMPATIBILITY_VERSION' => '1',
262
+ 'DYLIB_CURRENT_VERSION' => '1',
263
+ 'DYLIB_INSTALL_NAME_BASE' => '@rpath',
264
+ 'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Frameworks',
265
+ 'PRODUCT_NAME' => '$(TARGET_NAME:c99extidentifier)',
266
+ 'SKIP_INSTALL' => 'YES',
267
+ 'VERSION_INFO_PREFIX' => '',
268
+ 'VERSIONING_SYSTEM' => 'apple-generic',
269
+ }.freeze,
270
+ [:ios, :framework] => {
271
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
272
+ 'TARGETED_DEVICE_FAMILY' => '1,2',
273
+ }.freeze,
274
+ [:osx, :framework] => {
275
+ 'COMBINE_HIDPI_IMAGES' => 'YES',
276
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks @loader_path/Frameworks',
277
+ }.freeze,
278
+ [:watchos, :framework] => {
279
+ 'APPLICATION_EXTENSION_API_ONLY' => 'YES',
280
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
281
+ 'TARGETED_DEVICE_FAMILY' => '4',
282
+ }.freeze,
283
+ [:tvos, :framework] => {
284
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
285
+ 'TARGETED_DEVICE_FAMILY' => '3',
286
+ }.freeze,
287
+ [:framework, :swift] => {
288
+ 'DEFINES_MODULE' => 'YES',
289
+ }.freeze,
290
+ [:osx, :static_library] => {
291
+ 'EXECUTABLE_PREFIX' => 'lib',
292
+ 'SKIP_INSTALL' => 'YES',
293
+ }.freeze,
294
+ [:ios, :static_library] => {
295
+ 'OTHER_LDFLAGS' => '-ObjC',
296
+ 'SKIP_INSTALL' => 'YES',
297
+ 'TARGETED_DEVICE_FAMILY' => '1,2',
298
+ }.freeze,
299
+ [:watchos, :static_library] => {
300
+ 'OTHER_LDFLAGS' => '-ObjC',
301
+ 'SKIP_INSTALL' => 'YES',
302
+ 'TARGETED_DEVICE_FAMILY' => '4',
303
+ }.freeze,
304
+ [:tvos, :static_library] => {
305
+ 'OTHER_LDFLAGS' => '-ObjC',
306
+ 'SKIP_INSTALL' => 'YES',
307
+ 'TARGETED_DEVICE_FAMILY' => '3',
308
+ }.freeze,
309
+ [:osx, :dynamic_library] => {
310
+ 'DYLIB_COMPATIBILITY_VERSION' => '1',
311
+ 'DYLIB_CURRENT_VERSION' => '1',
312
+ 'EXECUTABLE_PREFIX' => 'lib',
313
+ 'SKIP_INSTALL' => 'YES',
314
+ }.freeze,
315
+ [:application] => {
316
+ 'ASSETCATALOG_COMPILER_APPICON_NAME' => 'AppIcon',
317
+ 'ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME' => 'AccentColor',
318
+ }.freeze,
319
+ [:ios, :application] => {
320
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
321
+ 'TARGETED_DEVICE_FAMILY' => '1,2',
322
+ }.freeze,
323
+ [:osx, :application] => {
324
+ 'COMBINE_HIDPI_IMAGES' => 'YES',
325
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks',
326
+ }.freeze,
327
+ [:watchos, :application] => {
328
+ 'SKIP_INSTALL' => 'YES',
329
+ 'TARGETED_DEVICE_FAMILY' => '4',
330
+ }.freeze,
331
+ [:tvos, :application] => {
332
+ 'ASSETCATALOG_COMPILER_APPICON_NAME' => 'App Icon & Top Shelf Image',
333
+ 'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
334
+ 'TARGETED_DEVICE_FAMILY' => '3',
335
+ }.freeze,
336
+ [:tvos, :application, :swift] => {
337
+ 'ENABLE_PREVIEWS' => 'YES',
338
+ }.freeze,
339
+ [:watchos, :application, :swift] => {
340
+ 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' => 'YES',
341
+ }.freeze,
342
+ [:bundle] => {
343
+ 'WRAPPER_EXTENSION' => 'bundle',
344
+ 'SKIP_INSTALL' => 'YES',
345
+ }.freeze,
346
+ [:ios, :bundle] => {
347
+ 'SDKROOT' => 'iphoneos',
348
+ }.freeze,
349
+ [:osx, :bundle] => {
350
+ 'COMBINE_HIDPI_IMAGES' => 'YES',
351
+ 'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Bundles',
352
+ 'SDKROOT' => 'macosx',
353
+ }.freeze,
354
+ }.freeze
355
+
356
+ # @return [Hash] The default build settings for a new project.
357
+ #
358
+ PROJECT_DEFAULT_BUILD_SETTINGS = {
359
+ :all => {
360
+ 'ALWAYS_SEARCH_USER_PATHS' => 'NO',
361
+ 'CLANG_ANALYZER_NONNULL' => 'YES',
362
+ 'CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION' => 'YES_AGGRESSIVE',
363
+ 'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++14',
364
+ 'CLANG_CXX_LIBRARY' => 'libc++',
365
+ 'CLANG_ENABLE_MODULES' => 'YES',
366
+ 'CLANG_ENABLE_OBJC_ARC' => 'YES',
367
+ 'CLANG_ENABLE_OBJC_WEAK' => 'YES',
368
+ 'CLANG_WARN__DUPLICATE_METHOD_MATCH' => 'YES',
369
+ 'CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING' => 'YES',
370
+ 'CLANG_WARN_BOOL_CONVERSION' => 'YES',
371
+ 'CLANG_WARN_COMMA' => 'YES',
372
+ 'CLANG_WARN_CONSTANT_CONVERSION' => 'YES',
373
+ 'CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS' => 'YES',
374
+ 'CLANG_WARN_DIRECT_OBJC_ISA_USAGE' => 'YES_ERROR',
375
+ 'CLANG_WARN_DOCUMENTATION_COMMENTS' => 'YES',
376
+ 'CLANG_WARN_EMPTY_BODY' => 'YES',
377
+ 'CLANG_WARN_ENUM_CONVERSION' => 'YES',
378
+ 'CLANG_WARN_INFINITE_RECURSION' => 'YES',
379
+ 'CLANG_WARN_INT_CONVERSION' => 'YES',
380
+ 'CLANG_WARN_NON_LITERAL_NULL_CONVERSION' => 'YES',
381
+ 'CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF' => 'YES',
382
+ 'CLANG_WARN_OBJC_LITERAL_CONVERSION' => 'YES',
383
+ 'CLANG_WARN_OBJC_ROOT_CLASS' => 'YES_ERROR',
384
+ 'CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER' => 'YES',
385
+ 'CLANG_WARN_RANGE_LOOP_ANALYSIS' => 'YES',
386
+ 'CLANG_WARN_STRICT_PROTOTYPES' => 'YES',
387
+ 'CLANG_WARN_SUSPICIOUS_MOVE' => 'YES',
388
+ 'CLANG_WARN_UNGUARDED_AVAILABILITY' => 'YES_AGGRESSIVE',
389
+ 'CLANG_WARN_UNREACHABLE_CODE' => 'YES',
390
+ 'COPY_PHASE_STRIP' => 'NO',
391
+ 'ENABLE_STRICT_OBJC_MSGSEND' => 'YES',
392
+ 'GCC_C_LANGUAGE_STANDARD' => 'gnu11',
393
+ 'GCC_NO_COMMON_BLOCKS' => 'YES',
394
+ 'GCC_WARN_64_TO_32_BIT_CONVERSION' => 'YES',
395
+ 'GCC_WARN_ABOUT_RETURN_TYPE' => 'YES_ERROR',
396
+ 'GCC_WARN_UNDECLARED_SELECTOR' => 'YES',
397
+ 'GCC_WARN_UNINITIALIZED_AUTOS' => 'YES_AGGRESSIVE',
398
+ 'GCC_WARN_UNUSED_FUNCTION' => 'YES',
399
+ 'GCC_WARN_UNUSED_VARIABLE' => 'YES',
400
+ 'MTL_FAST_MATH' => 'YES',
401
+ 'PRODUCT_NAME' => '$(TARGET_NAME)',
402
+ 'SWIFT_VERSION' => '5.0',
403
+ },
404
+ :release => {
405
+ 'DEBUG_INFORMATION_FORMAT' => 'dwarf-with-dsym',
406
+ 'ENABLE_NS_ASSERTIONS' => 'NO',
407
+ 'MTL_ENABLE_DEBUG_INFO' => 'NO',
408
+ 'SWIFT_COMPILATION_MODE' => 'wholemodule',
409
+ 'SWIFT_OPTIMIZATION_LEVEL' => '-O',
410
+ }.freeze,
411
+ :debug => {
412
+ 'DEBUG_INFORMATION_FORMAT' => 'dwarf',
413
+ 'ENABLE_TESTABILITY' => 'YES',
414
+ 'GCC_DYNAMIC_NO_PIC' => 'NO',
415
+ 'GCC_OPTIMIZATION_LEVEL' => '0',
416
+ 'GCC_PREPROCESSOR_DEFINITIONS' => ['DEBUG=1', '$(inherited)'],
417
+ 'MTL_ENABLE_DEBUG_INFO' => 'INCLUDE_SOURCE',
418
+ 'ONLY_ACTIVE_ARCH' => 'YES',
419
+ 'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG',
420
+ 'SWIFT_OPTIMIZATION_LEVEL' => '-Onone',
421
+ }.freeze,
422
+ }.freeze
423
+
424
+ # @return [Hash] The corresponding numeric value of each copy build phase
425
+ # destination.
426
+ #
427
+ COPY_FILES_BUILD_PHASE_DESTINATIONS = {
428
+ :absolute_path => '0',
429
+ :products_directory => '16',
430
+ :wrapper => '1',
431
+ :resources => '7', # default
432
+ :executables => '6',
433
+ :java_resources => '15',
434
+ :frameworks => '10',
435
+ :shared_frameworks => '11',
436
+ :shared_support => '12',
437
+ :plug_ins => '13',
438
+ }.freeze
439
+
440
+ # @return [Hash] The corresponding numeric value of each proxy type for
441
+ # PBXContainerItemProxy.
442
+ PROXY_TYPES = {
443
+ :native_target => '1',
444
+ :reference => '2',
445
+ }.freeze
446
+
447
+ # @return [Array] The extensions which are associated with header files.
448
+ #
449
+ HEADER_FILES_EXTENSIONS = %w(.h .hh .hpp .ipp .tpp .hxx .def .inl .inc).freeze
450
+
451
+ # @return [Array] The keywords Xcode use to identify a build setting can
452
+ # inherit values from a previous precedence level
453
+ INHERITED_KEYWORDS = %w(
454
+ $(inherited)
455
+ ${inherited}
456
+ ).freeze
457
+
458
+ # @return [Hash] Possible types for a scheme's 'ExecutionAction' node
459
+ #
460
+ EXECUTION_ACTION_TYPE = {
461
+ :shell_script => 'Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction',
462
+ :send_email => 'Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.SendEmailAction',
463
+ }.freeze
464
+ end
465
+ end