plasmo_xcodeproj 1.21.1

Sign up to get free protection for your applications and to get access to all the features.
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