xcodeproj 1.25.0 → 1.26.0
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.
- checksums.yaml +4 -4
- data/lib/xcodeproj/constants.rb +71 -20
- data/lib/xcodeproj/gem_version.rb +1 -1
- data/lib/xcodeproj/project/object/build_configuration.rb +16 -0
- data/lib/xcodeproj/project/object/file_system_synchronized_exception_set.rb +62 -0
- data/lib/xcodeproj/project/object/file_system_synchronized_root_group.rb +74 -0
- data/lib/xcodeproj/project/object/group.rb +2 -1
- data/lib/xcodeproj/project/object/native_target.rb +18 -4
- data/lib/xcodeproj/project/object/root_object.rb +4 -0
- data/lib/xcodeproj/project/object.rb +2 -0
- data/lib/xcodeproj/project/object_attributes.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f923164140fdc1a72d881ad2eb4a2e918688b4ca227a27eb26bbd10eb30b4ab7
|
4
|
+
data.tar.gz: 27bd3ef47368f1294d72ee111fccb9783a1c034647e1775e789cd6aaeff06f6c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce4c9f523e6efaf9a7190c3dc41d5c1f8374fba61dfd6eeb91c45b70d092159073af46cd8a7169df7d5f2f09a2aa40adc8b3271056d954ae9b54dd0cd17d9134
|
7
|
+
data.tar.gz: 0d4586e53b4dfe9356100fad57a96eb3b5ee36409abeb15f37f22ba7962a43289852c0abb9338ef48c71af09d04de48b0ad06f9098e1ad3e6440e213fd5f2d52
|
data/lib/xcodeproj/constants.rb
CHANGED
@@ -4,23 +4,23 @@ module Xcodeproj
|
|
4
4
|
module Constants
|
5
5
|
# @return [String] The last known iOS SDK (stable).
|
6
6
|
#
|
7
|
-
LAST_KNOWN_IOS_SDK = '
|
7
|
+
LAST_KNOWN_IOS_SDK = '18.0'
|
8
8
|
|
9
9
|
# @return [String] The last known OS X SDK (stable).
|
10
10
|
#
|
11
|
-
LAST_KNOWN_OSX_SDK = '
|
11
|
+
LAST_KNOWN_OSX_SDK = '15.0'
|
12
12
|
|
13
13
|
# @return [String] The last known tvOS SDK (stable).
|
14
14
|
#
|
15
|
-
LAST_KNOWN_TVOS_SDK = '
|
15
|
+
LAST_KNOWN_TVOS_SDK = '18.0'
|
16
16
|
|
17
17
|
# @return [String] The last known visionOS SDK (unstable).
|
18
18
|
#
|
19
|
-
LAST_KNOWN_VISIONOS_SDK = '
|
19
|
+
LAST_KNOWN_VISIONOS_SDK = '2.0'
|
20
20
|
|
21
21
|
# @return [String] The last known watchOS SDK (stable).
|
22
22
|
#
|
23
|
-
LAST_KNOWN_WATCHOS_SDK = '
|
23
|
+
LAST_KNOWN_WATCHOS_SDK = '11.0'
|
24
24
|
|
25
25
|
# @return [String] The last known archive version to Xcodeproj.
|
26
26
|
#
|
@@ -36,15 +36,15 @@ module Xcodeproj
|
|
36
36
|
|
37
37
|
# @return [String] The last known object version to Xcodeproj.
|
38
38
|
#
|
39
|
-
LAST_KNOWN_OBJECT_VERSION =
|
39
|
+
LAST_KNOWN_OBJECT_VERSION = 77
|
40
40
|
|
41
41
|
# @return [String] The last known Xcode version to Xcodeproj.
|
42
42
|
#
|
43
|
-
LAST_UPGRADE_CHECK = '
|
43
|
+
LAST_UPGRADE_CHECK = '1600'
|
44
44
|
|
45
45
|
# @return [String] The last known Xcode version to Xcodeproj.
|
46
46
|
#
|
47
|
-
LAST_SWIFT_UPGRADE_CHECK = '
|
47
|
+
LAST_SWIFT_UPGRADE_CHECK = '1600'
|
48
48
|
|
49
49
|
# @return [String] The version of `.xcscheme` files supported by Xcodeproj
|
50
50
|
#
|
@@ -132,6 +132,7 @@ module Xcodeproj
|
|
132
132
|
# @return [Hash] The compatibility version string for different object versions.
|
133
133
|
#
|
134
134
|
COMPATIBILITY_VERSION_BY_OBJECT_VERSION = {
|
135
|
+
77 => 'Xcode 16.0',
|
135
136
|
63 => 'Xcode 15.3',
|
136
137
|
60 => 'Xcode 15.0',
|
137
138
|
56 => 'Xcode 14.0',
|
@@ -271,22 +272,47 @@ module Xcodeproj
|
|
271
272
|
'DYLIB_COMPATIBILITY_VERSION' => '1',
|
272
273
|
'DYLIB_CURRENT_VERSION' => '1',
|
273
274
|
'DYLIB_INSTALL_NAME_BASE' => '@rpath',
|
275
|
+
'ENABLE_MODULE_VERIFIER' => 'YES',
|
276
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
274
277
|
'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Frameworks',
|
278
|
+
'MARKETING_VERSION' => '1.0',
|
279
|
+
'MODULE_VERIFIER_SUPPORTED_LANGUAGES' => 'objective-c objective-c++',
|
280
|
+
'MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS' => 'gnu17 gnu++20',
|
275
281
|
'PRODUCT_NAME' => '$(TARGET_NAME:c99extidentifier)',
|
276
282
|
'SKIP_INSTALL' => 'YES',
|
283
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
277
284
|
'VERSION_INFO_PREFIX' => '',
|
278
285
|
'VERSIONING_SYSTEM' => 'apple-generic',
|
279
286
|
}.freeze,
|
280
287
|
[:ios, :framework] => {
|
288
|
+
'ENABLE_MODULE_VERIFIER' => 'YES',
|
289
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
281
290
|
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
|
291
|
+
'MARKETING_VERSION' => '1.0',
|
282
292
|
'TARGETED_DEVICE_FAMILY' => '1,2',
|
293
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
283
294
|
}.freeze,
|
284
295
|
[:osx, :framework] => {
|
285
296
|
'COMBINE_HIDPI_IMAGES' => 'YES',
|
297
|
+
'ENABLE_MODULE_VERIFIER' => 'YES',
|
286
298
|
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks @loader_path/Frameworks',
|
299
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
300
|
+
}.freeze,
|
301
|
+
[:osx, :framework, :objc] => {
|
302
|
+
'ENABLE_MODULE_VERIFIER' => 'YES',
|
303
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
304
|
+
'MARKETING_VERSION' => '1.0',
|
305
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
306
|
+
}.freeze,
|
307
|
+
[:osx, :framework, :swift] => {
|
308
|
+
'ENABLE_MODULE_VERIFIER' => 'YES',
|
309
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
310
|
+
'MARKETING_VERSION' => '1.0',
|
311
|
+
'MODULE_VERIFIER_SUPPORTED_LANGUAGES' => 'objective-c objective-c++',
|
312
|
+
'MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS' => 'gnu17 gnu++20',
|
313
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
287
314
|
}.freeze,
|
288
315
|
[:watchos, :framework] => {
|
289
|
-
'APPLICATION_EXTENSION_API_ONLY' => 'YES',
|
290
316
|
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks @loader_path/Frameworks',
|
291
317
|
'TARGETED_DEVICE_FAMILY' => '4',
|
292
318
|
}.freeze,
|
@@ -296,6 +322,8 @@ module Xcodeproj
|
|
296
322
|
}.freeze,
|
297
323
|
[:framework, :swift] => {
|
298
324
|
'DEFINES_MODULE' => 'YES',
|
325
|
+
'BUILD_LIBRARY_FOR_DISTRIBUTION' => 'YES',
|
326
|
+
'SWIFT_INSTALL_OBJC_HEADER' => 'NO',
|
299
327
|
}.freeze,
|
300
328
|
[:osx, :static_library] => {
|
301
329
|
'EXECUTABLE_PREFIX' => 'lib',
|
@@ -325,30 +353,47 @@ module Xcodeproj
|
|
325
353
|
[:application] => {
|
326
354
|
'ASSETCATALOG_COMPILER_APPICON_NAME' => 'AppIcon',
|
327
355
|
'ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME' => 'AccentColor',
|
356
|
+
'CURRENT_PROJECT_VERSION' => '1',
|
357
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
358
|
+
'MARKETING_VERSION' => '1.0',
|
359
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
328
360
|
}.freeze,
|
329
361
|
[:ios, :application] => {
|
330
362
|
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
|
331
363
|
'TARGETED_DEVICE_FAMILY' => '1,2',
|
332
364
|
}.freeze,
|
365
|
+
[:ios, :application, :swift] => {
|
366
|
+
'INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents' => 'YES',
|
367
|
+
'INFOPLIST_KEY_UIMainStoryboardFile' => 'Main',
|
368
|
+
'INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad' => 'UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight',
|
369
|
+
'INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone' => 'UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight',
|
370
|
+
}.freeze,
|
333
371
|
[:osx, :application] => {
|
334
372
|
'COMBINE_HIDPI_IMAGES' => 'YES',
|
373
|
+
'CURRENT_PROJECT_VERSION' => '1',
|
374
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
335
375
|
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/../Frameworks',
|
376
|
+
'MARKETING_VERSION' => '1.0',
|
377
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
336
378
|
}.freeze,
|
337
379
|
[:watchos, :application] => {
|
380
|
+
'ENABLE_PREVIEWS' => 'YES',
|
381
|
+
'INFOPLIST_KEY_UISupportedInterfaceOrientations' => 'UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown',
|
382
|
+
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
|
338
383
|
'SKIP_INSTALL' => 'YES',
|
339
384
|
'TARGETED_DEVICE_FAMILY' => '4',
|
340
385
|
}.freeze,
|
341
386
|
[:tvos, :application] => {
|
342
387
|
'ASSETCATALOG_COMPILER_APPICON_NAME' => 'App Icon & Top Shelf Image',
|
388
|
+
'INFOPLIST_KEY_UILaunchStoryboardName' => 'LaunchScreen',
|
389
|
+
'INFOPLIST_KEY_UIMainStoryboardFile' => 'Main',
|
390
|
+
'INFOPLIST_KEY_UIUserInterfaceStyle' => 'Automatic',
|
343
391
|
'LD_RUNPATH_SEARCH_PATHS' => '$(inherited) @executable_path/Frameworks',
|
344
392
|
'TARGETED_DEVICE_FAMILY' => '3',
|
345
393
|
}.freeze,
|
346
394
|
[:tvos, :application, :swift] => {
|
347
395
|
'ENABLE_PREVIEWS' => 'YES',
|
348
396
|
}.freeze,
|
349
|
-
[:watchos, :application, :swift] => {
|
350
|
-
'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' => 'YES',
|
351
|
-
}.freeze,
|
352
397
|
[:bundle] => {
|
353
398
|
'WRAPPER_EXTENSION' => 'bundle',
|
354
399
|
'SKIP_INSTALL' => 'YES',
|
@@ -357,9 +402,14 @@ module Xcodeproj
|
|
357
402
|
'SDKROOT' => 'iphoneos',
|
358
403
|
}.freeze,
|
359
404
|
[:osx, :bundle] => {
|
360
|
-
'COMBINE_HIDPI_IMAGES'
|
361
|
-
'
|
362
|
-
'
|
405
|
+
'COMBINE_HIDPI_IMAGES' => 'YES',
|
406
|
+
'CURRENT_PROJECT_VERSION' => '1',
|
407
|
+
'GENERATE_INFOPLIST_FILE' => 'YES',
|
408
|
+
'INFOPLIST_KEY_NSPrincipalClass' => '',
|
409
|
+
'INSTALL_PATH' => '$(LOCAL_LIBRARY_DIR)/Bundles',
|
410
|
+
'MARKETING_VERSION' => '1.0',
|
411
|
+
'SDKROOT' => 'macosx',
|
412
|
+
'SWIFT_EMIT_LOC_STRINGS' => 'YES',
|
363
413
|
}.freeze,
|
364
414
|
}.freeze
|
365
415
|
|
@@ -368,10 +418,10 @@ module Xcodeproj
|
|
368
418
|
PROJECT_DEFAULT_BUILD_SETTINGS = {
|
369
419
|
:all => {
|
370
420
|
'ALWAYS_SEARCH_USER_PATHS' => 'NO',
|
421
|
+
'ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS' => 'YES',
|
371
422
|
'CLANG_ANALYZER_NONNULL' => 'YES',
|
372
423
|
'CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION' => 'YES_AGGRESSIVE',
|
373
|
-
'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++
|
374
|
-
'CLANG_CXX_LIBRARY' => 'libc++',
|
424
|
+
'CLANG_CXX_LANGUAGE_STANDARD' => 'gnu++20',
|
375
425
|
'CLANG_ENABLE_MODULES' => 'YES',
|
376
426
|
'CLANG_ENABLE_OBJC_ARC' => 'YES',
|
377
427
|
'CLANG_ENABLE_OBJC_WEAK' => 'YES',
|
@@ -399,7 +449,8 @@ module Xcodeproj
|
|
399
449
|
'CLANG_WARN_UNREACHABLE_CODE' => 'YES',
|
400
450
|
'COPY_PHASE_STRIP' => 'NO',
|
401
451
|
'ENABLE_STRICT_OBJC_MSGSEND' => 'YES',
|
402
|
-
'
|
452
|
+
'ENABLE_USER_SCRIPT_SANDBOXING' => 'YES',
|
453
|
+
'GCC_C_LANGUAGE_STANDARD' => 'gnu17',
|
403
454
|
'GCC_NO_COMMON_BLOCKS' => 'YES',
|
404
455
|
'GCC_WARN_64_TO_32_BIT_CONVERSION' => 'YES',
|
405
456
|
'GCC_WARN_ABOUT_RETURN_TYPE' => 'YES_ERROR',
|
@@ -407,6 +458,7 @@ module Xcodeproj
|
|
407
458
|
'GCC_WARN_UNINITIALIZED_AUTOS' => 'YES_AGGRESSIVE',
|
408
459
|
'GCC_WARN_UNUSED_FUNCTION' => 'YES',
|
409
460
|
'GCC_WARN_UNUSED_VARIABLE' => 'YES',
|
461
|
+
'LOCALIZATION_PREFERS_STRING_CATALOGS' => 'YES',
|
410
462
|
'MTL_FAST_MATH' => 'YES',
|
411
463
|
'PRODUCT_NAME' => '$(TARGET_NAME)',
|
412
464
|
'SWIFT_VERSION' => '5.0',
|
@@ -416,7 +468,6 @@ module Xcodeproj
|
|
416
468
|
'ENABLE_NS_ASSERTIONS' => 'NO',
|
417
469
|
'MTL_ENABLE_DEBUG_INFO' => 'NO',
|
418
470
|
'SWIFT_COMPILATION_MODE' => 'wholemodule',
|
419
|
-
'SWIFT_OPTIMIZATION_LEVEL' => '-O',
|
420
471
|
}.freeze,
|
421
472
|
:debug => {
|
422
473
|
'DEBUG_INFORMATION_FORMAT' => 'dwarf',
|
@@ -426,7 +477,7 @@ module Xcodeproj
|
|
426
477
|
'GCC_PREPROCESSOR_DEFINITIONS' => ['DEBUG=1', '$(inherited)'],
|
427
478
|
'MTL_ENABLE_DEBUG_INFO' => 'INCLUDE_SOURCE',
|
428
479
|
'ONLY_ACTIVE_ARCH' => 'YES',
|
429
|
-
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG',
|
480
|
+
'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG $(inherited)',
|
430
481
|
'SWIFT_OPTIMIZATION_LEVEL' => '-Onone',
|
431
482
|
}.freeze,
|
432
483
|
}.freeze
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'xcodeproj/project/object/file_system_synchronized_root_group'
|
2
|
+
|
1
3
|
module Xcodeproj
|
2
4
|
class Project
|
3
5
|
module Object
|
@@ -25,6 +27,20 @@ module Xcodeproj
|
|
25
27
|
#
|
26
28
|
has_one :base_configuration_reference, PBXFileReference
|
27
29
|
|
30
|
+
# @return [PBXFileSystemSynchronizedRootGroup] an optional reference to a group
|
31
|
+
# synchronized with the file system that contains a configuration file (`.xcconfig`).
|
32
|
+
#
|
33
|
+
# @note the configuration file relative path must be provided in `base_configuration_reference_relative_path`
|
34
|
+
#
|
35
|
+
has_one :base_configuration_reference_anchor, PBXFileSystemSynchronizedRootGroup
|
36
|
+
|
37
|
+
# @return [String] the relative path of a configuration file (`.xcconfig`)
|
38
|
+
# inside a group synchronized with the file system.
|
39
|
+
#
|
40
|
+
# @note the configuration file group must be provided in `base_configuration_reference_anchor`
|
41
|
+
#
|
42
|
+
attribute :base_configuration_reference_relative_path, String
|
43
|
+
|
28
44
|
public
|
29
45
|
|
30
46
|
# @!group AbstractObject Hooks
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'xcodeproj/project/object_attributes'
|
2
|
+
require 'xcodeproj/project/object/helpers/groupable_helper'
|
3
|
+
|
4
|
+
module Xcodeproj
|
5
|
+
class Project
|
6
|
+
module Object
|
7
|
+
# This class represents a file system synchronized build file exception set.
|
8
|
+
class PBXFileSystemSynchronizedBuildFileExceptionSet < AbstractObject
|
9
|
+
# @return [AbstractTarget] The target to which this exception set applies.
|
10
|
+
#
|
11
|
+
has_one :target, AbstractTarget
|
12
|
+
|
13
|
+
# @return [Array<String>] The list of files in the group that are excluded from the target.
|
14
|
+
#
|
15
|
+
attribute :membership_exceptions, Array
|
16
|
+
|
17
|
+
# @return [Array<String>] The list of public headers.
|
18
|
+
#
|
19
|
+
attribute :public_headers, Array
|
20
|
+
|
21
|
+
# @return [Array<String>] The list of private headers.
|
22
|
+
#
|
23
|
+
attribute :private_headers, Array
|
24
|
+
|
25
|
+
# @return [Hash] The files with specific compiler flags.
|
26
|
+
#
|
27
|
+
attribute :additional_compiler_flags_by_relative_path, Hash
|
28
|
+
|
29
|
+
# @return [Hash] The files with specific attributes.
|
30
|
+
#
|
31
|
+
attribute :attributes_by_relative_path, Hash
|
32
|
+
|
33
|
+
# @return [Hash] The files with a platform filter.
|
34
|
+
#
|
35
|
+
attribute :platform_filters_by_relative_path, Hash
|
36
|
+
|
37
|
+
def display_name
|
38
|
+
"Exceptions for \"#{GroupableHelper.parent(self).display_name}\" folder in \"#{target.name}\" target"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# This class represents a file system synchronized group build phase membership exception set.
|
43
|
+
class PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet < AbstractObject
|
44
|
+
# @return [PBXSourcesBuildPhase, PBXCopyFilesBuildPhase] The build phase to which this exception set applies.
|
45
|
+
#
|
46
|
+
has_one :build_phase, [PBXSourcesBuildPhase, PBXCopyFilesBuildPhase]
|
47
|
+
|
48
|
+
# @return [Array<String>] The list of files in the group that are excluded from the build phase.
|
49
|
+
#
|
50
|
+
attribute :membership_exceptions, Array
|
51
|
+
|
52
|
+
# @return [Hash] The files with a platform filter.
|
53
|
+
#
|
54
|
+
attribute :platform_filters_by_relative_path, Hash
|
55
|
+
|
56
|
+
def display_name
|
57
|
+
"Exceptions for \"#{GroupableHelper.parent(self).display_name}\" folder in \"#{build_phase.name}\" build phase"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'xcodeproj/project/object/file_system_synchronized_exception_set'
|
2
|
+
|
3
|
+
module Xcodeproj
|
4
|
+
class Project
|
5
|
+
module Object
|
6
|
+
# This class represents a file system synchronized root group.
|
7
|
+
class PBXFileSystemSynchronizedRootGroup < AbstractObject
|
8
|
+
# @return [String] the directory to which the path is relative.
|
9
|
+
#
|
10
|
+
# @note The accepted values are:
|
11
|
+
# - `<absolute>` for absolute paths
|
12
|
+
# - `<group>` for paths relative to the group
|
13
|
+
# - `SOURCE_ROOT` for paths relative to the project
|
14
|
+
# - `DEVELOPER_DIR` for paths relative to the developer
|
15
|
+
# directory.
|
16
|
+
# - `BUILT_PRODUCTS_DIR` for paths relative to the build
|
17
|
+
# products directory.
|
18
|
+
# - `SDKROOT` for paths relative to the SDK directory.
|
19
|
+
#
|
20
|
+
attribute :source_tree, String, '<group>'
|
21
|
+
|
22
|
+
# @return [String] the path to a folder in the file system.
|
23
|
+
#
|
24
|
+
attribute :path, String
|
25
|
+
|
26
|
+
# @return [String] Whether Xcode should use tabs for text alignment.
|
27
|
+
#
|
28
|
+
# @example
|
29
|
+
# `1`
|
30
|
+
#
|
31
|
+
attribute :uses_tabs, String
|
32
|
+
|
33
|
+
# @return [String] The width of the indent.
|
34
|
+
#
|
35
|
+
# @example
|
36
|
+
# `2`
|
37
|
+
#
|
38
|
+
attribute :indent_width, String
|
39
|
+
|
40
|
+
# @return [String] The width of the tabs.
|
41
|
+
#
|
42
|
+
# @example
|
43
|
+
# `2`
|
44
|
+
#
|
45
|
+
attribute :tab_width, String
|
46
|
+
|
47
|
+
# @return [String] Whether Xcode should wrap lines.
|
48
|
+
#
|
49
|
+
# @example
|
50
|
+
# `1`
|
51
|
+
#
|
52
|
+
attribute :wraps_lines, String
|
53
|
+
|
54
|
+
# @return [Array<PBXFileSystemSynchronizedBuildFileExceptionSet, PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet>]
|
55
|
+
# The list of exceptions applying to this group.
|
56
|
+
#
|
57
|
+
has_many :exceptions, [PBXFileSystemSynchronizedBuildFileExceptionSet, PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet]
|
58
|
+
|
59
|
+
# @return [Hash] The files in the group that have a file type defined explicitly.
|
60
|
+
#
|
61
|
+
attribute :explicit_file_types, Hash
|
62
|
+
|
63
|
+
# @return [Array] The folders in the group that are defined explicitly.
|
64
|
+
#
|
65
|
+
attribute :explicit_folders, Array
|
66
|
+
|
67
|
+
def display_name
|
68
|
+
return path if path
|
69
|
+
super
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'xcodeproj/project/object/helpers/groupable_helper'
|
2
2
|
require 'xcodeproj/project/object/helpers/file_references_factory'
|
3
|
+
require 'xcodeproj/project/object/file_system_synchronized_root_group'
|
3
4
|
|
4
5
|
module Xcodeproj
|
5
6
|
class Project
|
@@ -13,7 +14,7 @@ module Xcodeproj
|
|
13
14
|
# @return [ObjectList<PBXGroup, PBXFileReference>]
|
14
15
|
# the objects contained by the group.
|
15
16
|
#
|
16
|
-
has_many :children, [PBXGroup, PBXFileReference, PBXReferenceProxy]
|
17
|
+
has_many :children, [PBXGroup, PBXFileReference, PBXReferenceProxy, PBXFileSystemSynchronizedRootGroup]
|
17
18
|
|
18
19
|
# @return [String] the directory to which the path is relative.
|
19
20
|
#
|
@@ -461,6 +461,11 @@ module Xcodeproj
|
|
461
461
|
#
|
462
462
|
has_many :build_phases, AbstractBuildPhase
|
463
463
|
|
464
|
+
# @return [ObjectList<PBXFileSystemSynchronizedRootGroup>] the file system synchronized
|
465
|
+
# groups containing files to include to build this target.
|
466
|
+
#
|
467
|
+
has_many :file_system_synchronized_groups, PBXFileSystemSynchronizedRootGroup
|
468
|
+
|
464
469
|
public
|
465
470
|
|
466
471
|
# @!group Helpers
|
@@ -684,19 +689,28 @@ module Xcodeproj
|
|
684
689
|
|
685
690
|
def to_hash_as(method = :to_hash)
|
686
691
|
hash_as = super
|
687
|
-
|
688
|
-
hash_as.
|
692
|
+
excluded_keys_for_serialization_when_empty.each do |key|
|
693
|
+
if !hash_as[key].nil? && hash_as[key].empty?
|
694
|
+
hash_as.delete(key)
|
695
|
+
end
|
689
696
|
end
|
690
697
|
hash_as
|
691
698
|
end
|
692
699
|
|
693
700
|
def to_ascii_plist
|
694
701
|
plist = super
|
695
|
-
|
696
|
-
plist.value.
|
702
|
+
excluded_keys_for_serialization_when_empty.each do |key|
|
703
|
+
if !plist.value[key].nil? && plist.value[key].empty?
|
704
|
+
plist.value.delete(key)
|
705
|
+
end
|
697
706
|
end
|
698
707
|
plist
|
699
708
|
end
|
709
|
+
|
710
|
+
# @return [Array<String>] array of keys to exclude from serialization when the value is empty
|
711
|
+
def excluded_keys_for_serialization_when_empty
|
712
|
+
%w(packageProductDependencies fileSystemSynchronizedGroups)
|
713
|
+
end
|
700
714
|
end
|
701
715
|
|
702
716
|
#-----------------------------------------------------------------------#
|
@@ -53,6 +53,10 @@ module Xcodeproj
|
|
53
53
|
#
|
54
54
|
attribute :minimized_project_reference_proxies, String, '0'
|
55
55
|
|
56
|
+
# @return [String] preferred project object version
|
57
|
+
#
|
58
|
+
attribute :preferred_project_object_version, String, Constants::LAST_KNOWN_OBJECT_VERSION.to_s
|
59
|
+
|
56
60
|
# @return [PBXGroup] the group containing the references to products of
|
57
61
|
# the project.
|
58
62
|
#
|
@@ -533,3 +533,5 @@ require 'xcodeproj/project/object/native_target'
|
|
533
533
|
require 'xcodeproj/project/object/root_object'
|
534
534
|
require 'xcodeproj/project/object/target_dependency'
|
535
535
|
require 'xcodeproj/project/object/reference_proxy'
|
536
|
+
require 'xcodeproj/project/object/file_system_synchronized_root_group'
|
537
|
+
require 'xcodeproj/project/object/file_system_synchronized_exception_set'
|
@@ -140,7 +140,7 @@ module Xcodeproj
|
|
140
140
|
"for attribute: #{inspect}" unless acceptable
|
141
141
|
else
|
142
142
|
raise "[Xcodeproj] Type checking error: got `#{object.isa}` for " \
|
143
|
-
"attribute: #{inspect}" unless acceptable
|
143
|
+
"attribute: #{inspect} - #{object.uuid} #{object.to_ascii_plist}" unless acceptable
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcodeproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: atomos
|
@@ -84,21 +84,21 @@ dependencies:
|
|
84
84
|
requirements:
|
85
85
|
- - "~>"
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version: 0.
|
87
|
+
version: 0.4.0
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
92
|
- - "~>"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
94
|
+
version: 0.4.0
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: rexml
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
99
|
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 3.3.
|
101
|
+
version: 3.3.6
|
102
102
|
- - "<"
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '4.0'
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
requirements:
|
109
109
|
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: 3.3.
|
111
|
+
version: 3.3.6
|
112
112
|
- - "<"
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '4.0'
|
@@ -148,6 +148,8 @@ files:
|
|
148
148
|
- lib/xcodeproj/project/object/configuration_list.rb
|
149
149
|
- lib/xcodeproj/project/object/container_item_proxy.rb
|
150
150
|
- lib/xcodeproj/project/object/file_reference.rb
|
151
|
+
- lib/xcodeproj/project/object/file_system_synchronized_exception_set.rb
|
152
|
+
- lib/xcodeproj/project/object/file_system_synchronized_root_group.rb
|
151
153
|
- lib/xcodeproj/project/object/group.rb
|
152
154
|
- lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb
|
153
155
|
- lib/xcodeproj/project/object/helpers/file_references_factory.rb
|