xcodeproj 1.22.0 → 1.23.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: 9280a3358b3ab5cb87a7d2a8823d1b2959cb63d7dd01c1af2cd7f2f603a4fc90
4
+ data.tar.gz: b902495ad29630ab972e83717ef522f868d28678b519cb5477deff6d94db5b53
5
5
  SHA512:
6
- metadata.gz: 39a057723656bb7016aa845c427a90c1c6e264f34c3c8eee67b424a7952975371ad56e44569b7e0681154cbd2a4ed2bb82589dc1087a95969d64cfa2c5a5654a
7
- data.tar.gz: c9c72a16fe6597d7b6408b49ec6d98083c7e828e444b9e3a17c5155da69e1d3f6869ccfdbaa074eeb13537e81c5e214fb8dc1a975a8633a6c2c718333748fd2b
6
+ metadata.gz: 6058d88e97109756e60077277e1a67eb22f26578987b1666aaede1bbb8222a712e509ce22d4834801e034a3dc733201c7c4eaa1b72b5bc36482f1dab71caee15
7
+ data.tar.gz: d87165c6807a48f37bdf045a2d7159410e6c8acc2be39c13db586266110912bce271b0f7f32f8d6e0c27619e60529c1a38a4d1707c40c7efb5327f3bfdcc5af3
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.23.0'.freeze unless defined? Xcodeproj::VERSION
5
5
  end
@@ -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
@@ -21,7 +21,7 @@ module Xcodeproj
21
21
  " #{isa} \"#{File.basename(display_name)}\" "
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
@@ -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.23.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: 2023-09-22 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