xcodeproj 1.25.1 → 1.27.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 +9 -8
- 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 +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a7eaa9a8aac3a22a63fed1d450c23d5a2da12b02fee6a66e3d091f186d3ce90
|
4
|
+
data.tar.gz: 262b9ab5550dfc3b801a29471e75afdd2739e81804bbbe41513eb573c40dd45e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf7bd8bff24ee471e8d52fb9d54d64c40b700e3d5e3732185dc5c6dfe1bd5c2c923f39ef58ca7b976c0810aec5432525c66b7ebb0c39e101f8a171b35b0864aa
|
7
|
+
data.tar.gz: 65def4b96f16a8022225a2218d50b21e94ef98f5d03808e1b1d1c72b6987a9f247fd0ff019e85310aa3c47da1bc131402e53ec2a154c3fdd82787b2caba5f3a5
|
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',
|
@@ -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.27.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-10-
|
11
|
+
date: 2024-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: atomos
|
@@ -84,14 +84,14 @@ 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
|
@@ -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
|
@@ -208,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
210
|
- !ruby/object:Gem::Version
|
209
211
|
version: '0'
|
210
212
|
requirements: []
|
211
|
-
rubygems_version: 3.
|
213
|
+
rubygems_version: 3.5.22
|
212
214
|
signing_key:
|
213
215
|
specification_version: 3
|
214
216
|
summary: Create and modify Xcode projects from Ruby.
|