xcodeproj 1.22.0 → 1.24.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0788725232bb312e7454dbec2640d078bd514c469deeeff4e57544e837187ac
4
- data.tar.gz: fc1af51df95f4fdcaee3040adafdb0afaf5de03e036a32d2769c7af9a2d36fd5
3
+ metadata.gz: 1b00b2ee1d752f42e42b42ce2eee72ed67d51d876460d11989d3c10d4d9db7ce
4
+ data.tar.gz: bee25d68cd15f01f8f3d7740e3096d3d3023fed20ad2c14e78fd83cd1c56a3dc
5
5
  SHA512:
6
- metadata.gz: 39a057723656bb7016aa845c427a90c1c6e264f34c3c8eee67b424a7952975371ad56e44569b7e0681154cbd2a4ed2bb82589dc1087a95969d64cfa2c5a5654a
7
- data.tar.gz: c9c72a16fe6597d7b6408b49ec6d98083c7e828e444b9e3a17c5155da69e1d3f6869ccfdbaa074eeb13537e81c5e214fb8dc1a975a8633a6c2c718333748fd2b
6
+ metadata.gz: c26d07901fd197b9bcf2f74aa922316404c9f77f2dc08c78a9ad97d4e2259ef56e38a2e06a25ccb16df9779c55750b23ccf8e6284548cb0ccb461327967cc0bd
7
+ data.tar.gz: 353a4b09236f26a4f5e3f72e5a39e28cf5221beac0bad081a0947169edc7c0a474be8d92083a4c39a8b92663386bc8b4840fc834beab9ec8f5fc5108539cd9e4
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Xcodeproj
2
2
 
3
- [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/Xcodeproj/Specs)](https://github.com/CocoaPods/Xcodeproj/actions)
3
+ [![Build Status](https://github.com/CocoaPods/Xcodeproj/workflows/Specs/badge.svg)](https://github.com/CocoaPods/Xcodeproj/actions/workflows/Specs.yml)
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/40ae104586c859d3581e/maintainability)](https://codeclimate.com/github/CocoaPods/Xcodeproj/maintainability)
5
5
  [![Test Coverage](https://api.codeclimate.com/v1/badges/40ae104586c859d3581e/test_coverage)](https://codeclimate.com/github/CocoaPods/Xcodeproj/test_coverage)
6
6
 
@@ -14,6 +14,10 @@ module Xcodeproj
14
14
  #
15
15
  LAST_KNOWN_TVOS_SDK = '14.0'
16
16
 
17
+ # @return [String] The last known visionOS SDK (unstable).
18
+ #
19
+ LAST_KNOWN_VISIONOS_SDK = '1.0'
20
+
17
21
  # @return [String] The last known watchOS SDK (stable).
18
22
  #
19
23
  LAST_KNOWN_WATCHOS_SDK = '7.0'
@@ -32,15 +36,15 @@ module Xcodeproj
32
36
 
33
37
  # @return [String] The last known object version to Xcodeproj.
34
38
  #
35
- LAST_KNOWN_OBJECT_VERSION = 56
39
+ LAST_KNOWN_OBJECT_VERSION = 60
36
40
 
37
41
  # @return [String] The last known Xcode version to Xcodeproj.
38
42
  #
39
- LAST_UPGRADE_CHECK = '1300'
43
+ LAST_UPGRADE_CHECK = '1500'
40
44
 
41
45
  # @return [String] The last known Xcode version to Xcodeproj.
42
46
  #
43
- LAST_SWIFT_UPGRADE_CHECK = '1300'
47
+ LAST_SWIFT_UPGRADE_CHECK = '1500'
44
48
 
45
49
  # @return [String] The version of `.xcscheme` files supported by Xcodeproj
46
50
  #
@@ -128,6 +132,7 @@ module Xcodeproj
128
132
  # @return [Hash] The compatibility version string for different object versions.
129
133
  #
130
134
  COMPATIBILITY_VERSION_BY_OBJECT_VERSION = {
135
+ 60 => 'Xcode 15.0',
131
136
  56 => 'Xcode 14.0',
132
137
  55 => 'Xcode 13.0',
133
138
  54 => 'Xcode 12.0',
@@ -213,6 +218,9 @@ module Xcodeproj
213
218
  [:tvos] => {
214
219
  'SDKROOT' => 'appletvos',
215
220
  }.freeze,
221
+ [:visionos] => {
222
+ 'SDKROOT' => 'xros',
223
+ }.freeze,
216
224
  [:watchos] => {
217
225
  'SDKROOT' => 'watchos',
218
226
  }.freeze,
@@ -1,5 +1,5 @@
1
1
  module Xcodeproj
2
2
  # The version of the xcodeproj gem.
3
3
  #
4
- VERSION = '1.22.0'.freeze unless defined? Xcodeproj::VERSION
4
+ VERSION = '1.24.0'.freeze unless defined? Xcodeproj::VERSION
5
5
  end
@@ -107,6 +107,14 @@ module Xcodeproj
107
107
  #
108
108
  attribute :line_ending, String
109
109
 
110
+ # @return [String] a string that specifies the signature of an external
111
+ # framework.
112
+ #
113
+ # @example
114
+ # `AppleDeveloperProgram:TEAM0ID1:Team name`
115
+ #
116
+ attribute :expected_signature, String
117
+
110
118
  # @return [String] Comments associated with this file.
111
119
  #
112
120
  # @note This is apparently no longer used by Xcode.
@@ -112,6 +112,8 @@ module Xcodeproj
112
112
  :osx
113
113
  elsif sdk.include? 'appletvos'
114
114
  :tvos
115
+ elsif sdk.include? 'xros'
116
+ :visionos
115
117
  elsif sdk.include? 'watchos'
116
118
  :watchos
117
119
  end
@@ -134,6 +136,7 @@ module Xcodeproj
134
136
  :ios => 'IPHONEOS_DEPLOYMENT_TARGET',
135
137
  :osx => 'MACOSX_DEPLOYMENT_TARGET',
136
138
  :tvos => 'TVOS_DEPLOYMENT_TARGET',
139
+ :visionos => 'XROS_DEPLOYMENT_TARGET',
137
140
  :watchos => 'WATCHOS_DEPLOYMENT_TARGET',
138
141
  }.freeze
139
142
 
@@ -342,6 +345,10 @@ module Xcodeproj
342
345
  group = project.frameworks_group['tvOS'] || project.frameworks_group.new_group('tvOS')
343
346
  path_sdk_name = 'AppleTVOS'
344
347
  path_sdk_version = sdk_version || Constants::LAST_KNOWN_TVOS_SDK
348
+ when :visionos
349
+ group = project.frameworks_group['visionOS'] || project.frameworks_group.new_group('visionOS')
350
+ path_sdk_name = 'XROS'
351
+ path_sdk_version = sdk_version || Constants::LAST_KNOWN_VISIONOS_SDK
345
352
  when :watchos
346
353
  group = project.frameworks_group['watchOS'] || project.frameworks_group.new_group('watchOS')
347
354
  path_sdk_name = 'WatchOS'
@@ -62,9 +62,9 @@ module Xcodeproj
62
62
  #
63
63
  attribute :project_root, String, ''
64
64
 
65
- # @return [Array<XCRemoteSwiftPackageReference>] the list of Swift package references.
65
+ # @return [Array<XCRemoteSwiftPackageReference, XCLocalSwiftPackageReference>] the list of Swift package references.
66
66
  #
67
- has_many :package_references, XCRemoteSwiftPackageReference
67
+ has_many :package_references, [XCRemoteSwiftPackageReference, XCLocalSwiftPackageReference]
68
68
 
69
69
  # @return [Array<ObjectDictionary>] any reference to other projects.
70
70
  #
@@ -0,0 +1,34 @@
1
+ module Xcodeproj
2
+ class Project
3
+ module Object
4
+ # This class represents a local Swift package reference.
5
+ #
6
+ class XCLocalSwiftPackageReference < AbstractObject
7
+ # @!group Attributes
8
+
9
+ # @return [String] the repository url this Swift package was installed from.
10
+ #
11
+ attribute :path, String
12
+
13
+ # @return [String] the repository path where the package is located relative
14
+ # to the Xcode project.
15
+ #
16
+ attribute :relative_path, String
17
+
18
+ # @!group AbstractObject Hooks
19
+ #--------------------------------------#
20
+
21
+ def ascii_plist_annotation
22
+ " #{isa} \"#{File.basename(display_name)}\" "
23
+ end
24
+
25
+ # @return [String] the path of the local Swift package reference.
26
+ #
27
+ def display_name
28
+ return relative_path if relative_path
29
+ super
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -6,9 +6,9 @@ module Xcodeproj
6
6
  class XCSwiftPackageProductDependency < AbstractObject
7
7
  # @!group Attributes
8
8
 
9
- # @return [XCRemoteSwiftPackageReference] the Swift package reference.
9
+ # @return [XCRemoteSwiftPackageReference, XCLocalSwiftPackageReference] the Swift package reference.
10
10
  #
11
- has_one :package, XCRemoteSwiftPackageReference
11
+ has_one :package, [XCRemoteSwiftPackageReference, XCLocalSwiftPackageReference]
12
12
 
13
13
  # @return [String] the product name of this Swift package.
14
14
  #
@@ -17,7 +17,7 @@ module Xcodeproj
17
17
  # @!group AbstractObject Hooks
18
18
  #--------------------------------------#
19
19
 
20
- # @return [String] the name of the Swift package.
20
+ # @return [String] the name of the Swift package product dependency.
21
21
  #
22
22
  def display_name
23
23
  return product_name if product_name
@@ -1,7 +1,7 @@
1
1
  module Xcodeproj
2
2
  class Project
3
3
  module Object
4
- # This class represents a Swift package reference.
4
+ # This class represents a remote Swift package reference.
5
5
  #
6
6
  class XCRemoteSwiftPackageReference < AbstractObject
7
7
  # @!group Attributes
@@ -18,10 +18,10 @@ module Xcodeproj
18
18
  #--------------------------------------#
19
19
 
20
20
  def ascii_plist_annotation
21
- " #{isa} \"#{File.basename(display_name)}\" "
21
+ " #{isa} \"#{File.basename(display_name, '.git')}\" "
22
22
  end
23
23
 
24
- # @return [String] the name of the Swift package repository.
24
+ # @return [String] the name of the remote Swift package reference.
25
25
  #
26
26
  def display_name
27
27
  return repositoryURL if repositoryURL
@@ -80,7 +80,7 @@ module Xcodeproj
80
80
  hash = {}
81
81
  hash['displayName'] = display_name
82
82
  hash['isa'] = isa
83
- hash['targetProxy'] = target_proxy.to_tree_hash
83
+ hash['targetProxy'] = target_proxy.to_tree_hash if target_proxy
84
84
  hash
85
85
  end
86
86
 
@@ -519,6 +519,7 @@ end
519
519
 
520
520
  # Now load the concrete subclasses.
521
521
  require 'xcodeproj/project/object/swift_package_remote_reference'
522
+ require 'xcodeproj/project/object/swift_package_local_reference'
522
523
  require 'xcodeproj/project/object/swift_package_product_dependency'
523
524
  require 'xcodeproj/project/object/build_configuration'
524
525
  require 'xcodeproj/project/object/build_file'
@@ -284,6 +284,8 @@ module Xcodeproj
284
284
  settings['CLANG_ENABLE_OBJC_WEAK'] = 'NO' if deployment_target < '10.7'
285
285
  when :tvos
286
286
  settings['TVOS_DEPLOYMENT_TARGET'] = deployment_target
287
+ when :visionos
288
+ settings['XROS_DEPLOYMENT_TARGET'] = deployment_target
287
289
  when :watchos
288
290
  settings['WATCHOS_DEPLOYMENT_TARGET'] = deployment_target
289
291
  end
@@ -27,6 +27,13 @@ module Xcodeproj
27
27
  versions_by_sdk[:tvos].sort.last
28
28
  end
29
29
 
30
+ # @return [String] The version of the last visionOS sdk.
31
+ #
32
+ def last_visionos_sdk
33
+ parse_sdks_if_needed
34
+ versions_by_sdk[:visionos].sort.last
35
+ end
36
+
30
37
  # @return [String] The version of the last watchOS sdk.
31
38
  #
32
39
  def last_watchos_sdk
@@ -53,6 +60,7 @@ module Xcodeproj
53
60
  @versions_by_sdk[:osx] = []
54
61
  @versions_by_sdk[:ios] = []
55
62
  @versions_by_sdk[:tvos] = []
63
+ @versions_by_sdk[:visionos] = []
56
64
  @versions_by_sdk[:watchos] = []
57
65
  if xcodebuild_available?
58
66
  sdks = parse_sdks_information(xcodebuild_sdks)
@@ -61,6 +69,7 @@ module Xcodeproj
61
69
  when name == 'macosx' then @versions_by_sdk[:osx] << version
62
70
  when name == 'iphoneos' then @versions_by_sdk[:ios] << version
63
71
  when name == 'appletvos' then @versions_by_sdk[:tvos] << version
72
+ when name == 'xros' then @versions_by_sdk[:visionos] << version
64
73
  when name == 'watchos' then @versions_by_sdk[:watchos] << version
65
74
  end
66
75
  end
@@ -82,7 +91,7 @@ module Xcodeproj
82
91
  # is the name of the SDK and the second is the version.
83
92
  #
84
93
  def parse_sdks_information(output)
85
- output.scan(/-sdk (macosx|iphoneos|watchos|appletvos)(.+\w)/)
94
+ output.scan(/-sdk (macosx|iphoneos|watchos|appletvos|xros)(.+\w)/)
86
95
  end
87
96
 
88
97
  # @return [String] The sdk information reported by xcodebuild.
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.22.0
4
+ version: 1.24.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: 2022-06-22 00:00:00.000000000 Z
11
+ date: 2024-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: atomos
@@ -149,6 +149,7 @@ files:
149
149
  - lib/xcodeproj/project/object/native_target.rb
150
150
  - lib/xcodeproj/project/object/reference_proxy.rb
151
151
  - lib/xcodeproj/project/object/root_object.rb
152
+ - lib/xcodeproj/project/object/swift_package_local_reference.rb
152
153
  - lib/xcodeproj/project/object/swift_package_product_dependency.rb
153
154
  - lib/xcodeproj/project/object/swift_package_remote_reference.rb
154
155
  - lib/xcodeproj/project/object/target_dependency.rb
@@ -201,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
202
  - !ruby/object:Gem::Version
202
203
  version: '0'
203
204
  requirements: []
204
- rubygems_version: 3.1.6
205
+ rubygems_version: 3.2.3
205
206
  signing_key:
206
207
  specification_version: 3
207
208
  summary: Create and modify Xcode projects from Ruby.