cocoapods 1.12.1 → 1.13.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: 7eb2a7cb51265484772462e33da3c268da859b1f18adffdb57d6e6f4c2d378a2
4
- data.tar.gz: 4d47bdd4efa9026b670884c3b230adc94ffb69e66953945349e0d4a17f9d6018
3
+ metadata.gz: 351d42241021bbf2982a2031406a62a7829075ebf1797b1149ca2207a75645a0
4
+ data.tar.gz: 3bfb129706090a443739d23e99b355c09a8e2e5ba97c700f4d2f9ca3f858adec
5
5
  SHA512:
6
- metadata.gz: 16cd5d292991ab0067b0611eb82e8fe6fa8d50bfe6ee36779bb45d5f14101e1b359d8cf6b8ae15aa74f54f6cb36d441429500ec1f8f7909928a15208b568e67a
7
- data.tar.gz: 22d3de57cb0446e321e740591b5bd9378d3fc0ed4ee1b521b8ec8d33d18608f5a53b75e7086b4e5244221660c6f6f6b4328180d3c7b07a7fbbf562b9b108d58f
6
+ metadata.gz: c883065405b1143221bec0680be744e098a8cac54b468da9442246b943ca3978b80ef28bb63e762a2dbbda4b0571a30d8ad8fc81be89bcc0340d5463fbc7f52d
7
+ data.tar.gz: 350ffaeffc77cac95347ff5834af721fa8f2ee30d9a226ad55d363d19fa62dfade61115cbc9b1b3bb2d4e97bf213131e4d16114e7632e111118cda9a42588a10
data/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@ To install or update CocoaPods see this [guide](https://guides.cocoapods.org/usi
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.13.0 (2023-09-22)
8
+
9
+ ##### Enhancements
10
+
11
+ * Add `visionOS` as a new platform.
12
+ [Gabriel Donadel](https://github.com/gabrieldonadel)
13
+ [#11965](https://github.com/CocoaPods/CocoaPods/pull/11965)
14
+
15
+ * Extend `script_phase` DSL to support `always_out_of_date` attribute.
16
+ [Alvar Hansen](https://github.com/alvarhansen)
17
+ [#12055](https://github.com/CocoaPods/CocoaPods/pull/12055)
18
+
19
+ ##### Bug Fixes
20
+
21
+ * Use `safe_load` during custom YAML config loading.
22
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
23
+ [#11974](https://github.com/CocoaPods/CocoaPods/pull/11974)
24
+
25
+ * Xcode 15 fix: Replace `DT_TOOLCHAIN_DIR` with `TOOLCHAIN_DIR` when generating script.
26
+ [Marcus Wu](https://github.com/marcuswu0814)
27
+ [#12009](https://github.com/CocoaPods/CocoaPods/pull/12009)
28
+
7
29
  ## 1.12.1 (2023-04-18)
8
30
 
9
31
  ##### Enhancements
@@ -21,9 +43,9 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
21
43
  [Austin Evans](https://github.com/ajevans99)
22
44
  [#11857](https://github.com/CocoaPods/CocoaPods/issues/11857)
23
45
 
24
- # Xcode 14.3 fix: `pod lib lint` warning generation from main.m.
46
+ * Xcode 14.3 fix: `pod lib lint` warning generation from main.m.
25
47
  [Paul Beusterien](https://github.com/paulb777)
26
- [#11846](https://github.com/CocoaPods/CocoaPods/issuess/11846)
48
+ [#11846](https://github.com/CocoaPods/CocoaPods/issues/11846)
27
49
 
28
50
  ## 1.12.0 (2023-02-27)
29
51
 
data/bin/sandbox-pod CHANGED
@@ -61,7 +61,7 @@ PROFILE_ERB_TEMPLATE = <<-EOS
61
61
 
62
62
  (allow file-read-metadata)
63
63
  (allow file-read*
64
- ; This is currenly only added because using `xcodebuild` to build a resource
64
+ ; This is currently only added because using `xcodebuild` to build a resource
65
65
  ; bundle target starts a FSEvents stream on `/`. No idea why that would be
66
66
  ; needed, but for now it doesn’t seem like a real problem.
67
67
  (literal "/")
@@ -181,6 +181,7 @@ Pod::Spec.new do |spec|
181
181
  # spec.osx.deployment_target = "10.7"
182
182
  # spec.watchos.deployment_target = "2.0"
183
183
  # spec.tvos.deployment_target = "9.0"
184
+ # spec.visionos.deployment_target = "1.0"
184
185
 
185
186
 
186
187
  # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
@@ -111,7 +111,8 @@ module Pod
111
111
 
112
112
  if use_user_settings && user_settings_file.exist?
113
113
  require 'yaml'
114
- user_settings = YAML.load_file(user_settings_file)
114
+ user_settings_contents = File.read(user_settings_file)
115
+ user_settings = YAML.safe_load(user_settings_contents)
115
116
  configure_with(user_settings)
116
117
  end
117
118
 
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.12.1'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.13.0'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -57,6 +57,7 @@ module Pod
57
57
  :osx => Version.new('10.8'),
58
58
  :watchos => Version.new('2.0'),
59
59
  :tvos => Version.new('9.0'),
60
+ :visionos => Version.new('1.0'),
60
61
  }
61
62
 
62
63
  # @return [Boolean] Whether the external strings file is supported by the
@@ -63,7 +63,7 @@ echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
63
63
  mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
64
64
 
65
65
  COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
66
- SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
66
+ SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
67
67
  BCSYMBOLMAP_DIR="BCSymbolMaps"
68
68
 
69
69
 
@@ -97,7 +97,7 @@ module Pod
97
97
  #
98
98
  attr_reader :specs
99
99
 
100
- # @return [Symbol] The platform (either `:ios`, `:watchos`, `:tvos`, or `:osx`).
100
+ # @return [Symbol] The platform (either `:ios`, `:watchos`, `:tvos`, `:visionos`, or `:osx`).
101
101
  #
102
102
  attr_reader :platform_name
103
103
 
@@ -139,10 +139,10 @@ module Pod
139
139
  when PodTarget
140
140
  local = sandbox.local?(target.pod_name)
141
141
  checkout_options = sandbox.checkout_sources[target.pod_name]
142
- [label, TargetCacheKey.from_pod_target(sandbox, target, :is_local_pod => local,
143
- :checkout_options => checkout_options)]
142
+ [label, TargetCacheKey.from_pod_target(sandbox, target_by_label, target,
143
+ :is_local_pod => local, :checkout_options => checkout_options)]
144
144
  when AggregateTarget
145
- [label, TargetCacheKey.from_aggregate_target(sandbox, target)]
145
+ [label, TargetCacheKey.from_aggregate_target(sandbox, target_by_label, target)]
146
146
  else
147
147
  raise "[BUG] Unknown target type #{target}"
148
148
  end
@@ -58,6 +58,10 @@ module Pod
58
58
  other_files = other.key_hash['FILES']
59
59
  return :project if this_files != other_files
60
60
 
61
+ this_resources = key_hash['RESOURCES']
62
+ other_resources = other.key_hash['RESOURCES']
63
+ return :project if this_resources != other_resources
64
+
61
65
  this_build_settings = key_hash['BUILD_SETTINGS_CHECKSUM']
62
66
  other_build_settings = other.key_hash['BUILD_SETTINGS_CHECKSUM']
63
67
  return :project if this_build_settings != other_build_settings
@@ -98,6 +102,9 @@ module Pod
98
102
  if specs = cache_hash['SPECS']
99
103
  cache_hash['SPECS'] = specs.sort_by(&:downcase)
100
104
  end
105
+ if resources = cache_hash['RESOURCES']
106
+ cache_hash['RESOURCES'] = resources.sort_by(&:downcase)
107
+ end
101
108
  type = cache_hash['CHECKSUM'] ? :pod_target : :aggregate
102
109
  TargetCacheKey.new(sandbox, type, cache_hash)
103
110
  end
@@ -106,6 +113,9 @@ module Pod
106
113
  #
107
114
  # @param [Sandbox] sandbox The sandbox to use to construct a TargetCacheKey object.
108
115
  #
116
+ # @param [Hash] target_by_label
117
+ # Maps target names to PodTarget objects.
118
+ #
109
119
  # @param [PodTarget] pod_target
110
120
  # The pod target used to construct a TargetCacheKey object.
111
121
  #
@@ -117,7 +127,7 @@ module Pod
117
127
  #
118
128
  # @return [TargetCacheKey]
119
129
  #
120
- def self.from_pod_target(sandbox, pod_target, is_local_pod: false, checkout_options: nil)
130
+ def self.from_pod_target(sandbox, target_by_label, pod_target, is_local_pod: false, checkout_options: nil)
121
131
  build_settings = {}
122
132
  build_settings[pod_target.label.to_s] = Hash[pod_target.build_settings.map do |k, v|
123
133
  [k, Digest::MD5.hexdigest(v.xcconfig.to_s)]
@@ -129,6 +139,20 @@ module Pod
129
139
  build_settings[name] = Hash[settings_by_config.map { |k, v| [k, Digest::MD5.hexdigest(v.xcconfig.to_s)] }]
130
140
  end
131
141
 
142
+ # find resources from upstream dependencies that will be named in the `{name}-resources.sh` script
143
+ resource_dependencies = []
144
+ pod_target.dependencies.each do |name|
145
+ next unless target_by_label[name]
146
+
147
+ upstream = target_by_label[name]
148
+
149
+ # pod target
150
+ resource_dependencies.append(upstream.resource_paths.values.flatten) if upstream.respond_to?(:resource_paths)
151
+
152
+ # aggregate target
153
+ resource_dependencies.append(upstream.resource_paths_by_config.values.flatten) if upstream.respond_to?(:resource_paths_by_config)
154
+ end
155
+
132
156
  contents = {
133
157
  'CHECKSUM' => pod_target.root_spec.checksum,
134
158
  'SPECS' => pod_target.specs.map(&:to_s).sort_by(&:downcase),
@@ -140,6 +164,7 @@ module Pod
140
164
  contents['FILES'] = relative_file_paths.sort_by(&:downcase)
141
165
  end
142
166
  contents['CHECKOUT_OPTIONS'] = checkout_options if checkout_options
167
+ contents['RESOURCES'] = resource_dependencies.flatten.uniq.sort_by(&:downcase) if resource_dependencies.any?
143
168
  TargetCacheKey.new(sandbox, :pod_target, contents)
144
169
  end
145
170
 
@@ -152,12 +177,24 @@ module Pod
152
177
  #
153
178
  # @return [TargetCacheKey]
154
179
  #
155
- def self.from_aggregate_target(sandbox, aggregate_target)
180
+ def self.from_aggregate_target(sandbox, target_by_label, aggregate_target)
156
181
  build_settings = {}
157
182
  aggregate_target.user_build_configurations.keys.each do |configuration|
158
183
  build_settings[configuration] = Digest::MD5.hexdigest(aggregate_target.build_settings(configuration).xcconfig.to_s)
159
184
  end
160
185
 
186
+ # find resources from upstream dependencies that will be named in the `{name}-resources.sh` script
187
+ resource_dependencies = []
188
+ aggregate_target.pod_targets.each do |name|
189
+ upstream = target_by_label[name]
190
+
191
+ # pod target
192
+ resource_dependencies.append(upstream.resource_paths.values.flatten) if upstream.respond_to?(:resource_paths)
193
+
194
+ # aggregate target
195
+ resource_dependencies.append(upstream.resource_paths_by_config.values.flatten) if upstream.respond_to?(:resource_paths_by_config)
196
+ end
197
+
161
198
  contents = {
162
199
  'BUILD_SETTINGS_CHECKSUM' => build_settings,
163
200
  }
@@ -167,6 +204,7 @@ module Pod
167
204
  res.relative_path_from(sandbox.project_path.dirname).to_s
168
205
  end
169
206
  contents['FILES'] = (relative_resource_file_paths + relative_on_demand_resource_file_paths).sort_by(&:downcase)
207
+ contents['RESOURCES'] = resource_dependencies.flatten.uniq.sort_by(&:downcase) if resource_dependencies.any?
170
208
  end
171
209
  TargetCacheKey.new(sandbox, :aggregate, contents)
172
210
  end
@@ -314,6 +314,7 @@ module Pod
314
314
  phase.input_file_list_paths = script_phase[:input_file_lists]
315
315
  phase.output_file_list_paths = script_phase[:output_file_lists]
316
316
  phase.dependency_file = script_phase[:dependency_file]
317
+ phase.always_out_of_date = script_phase[:always_out_of_date]
317
318
  # At least with Xcode 10 `showEnvVarsInLog` is *NOT* set to any value even if it's checked and it only
318
319
  # gets set to '0' if the user has explicitly disabled this.
319
320
  if (show_env_vars_in_log = script_phase.fetch(:show_env_vars_in_log, '1')) == '0'
@@ -894,6 +894,7 @@ module Pod
894
894
  :osx => Version.new('10.8'),
895
895
  :watchos => Version.new('2.0'),
896
896
  :tvos => Version.new('9.0'),
897
+ :visionos => Version.new('1.0'),
897
898
  }.freeze
898
899
 
899
900
  # Returns the compiler flags for the source files of the given specification.
@@ -103,11 +103,13 @@ module Pod
103
103
  ios_deployment_target = platforms.select { |p| p.name == :ios }.map(&:deployment_target).min
104
104
  watchos_deployment_target = platforms.select { |p| p.name == :watchos }.map(&:deployment_target).min
105
105
  tvos_deployment_target = platforms.select { |p| p.name == :tvos }.map(&:deployment_target).min
106
+ visionos_deployment_target = platforms.select { |p| p.name == :visionos }.map(&:deployment_target).min
106
107
  project.build_configurations.each do |build_configuration|
107
108
  build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = osx_deployment_target.to_s if osx_deployment_target
108
109
  build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_deployment_target.to_s if ios_deployment_target
109
110
  build_configuration.build_settings['WATCHOS_DEPLOYMENT_TARGET'] = watchos_deployment_target.to_s if watchos_deployment_target
110
111
  build_configuration.build_settings['TVOS_DEPLOYMENT_TARGET'] = tvos_deployment_target.to_s if tvos_deployment_target
112
+ build_configuration.build_settings['XROS_DEPLOYMENT_TARGET'] = visionos_deployment_target.to_s if visionos_deployment_target
111
113
  build_configuration.build_settings['STRIP_INSTALLED_PRODUCT'] = 'NO'
112
114
  build_configuration.build_settings['CLANG_ENABLE_OBJC_ARC'] = 'YES'
113
115
  build_configuration.build_settings['CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED'] = 'YES'
@@ -359,7 +359,7 @@ module Pod
359
359
  else
360
360
  "'@loader_path/Frameworks'"
361
361
  end
362
- paths << '${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}' if uses_swift
362
+ paths << '${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}' if uses_swift
363
363
  else
364
364
  paths << "'@executable_path/Frameworks'"
365
365
  paths << "'@loader_path/Frameworks'"
@@ -866,7 +866,7 @@ module Pod
866
866
  search_paths = vendored_static_library_search_paths + vendored_dynamic_library_search_paths
867
867
  if target.uses_swift? || other_swift_flags_without_swift?
868
868
  search_paths << '/usr/lib/swift'
869
- search_paths << '${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}'
869
+ search_paths << '${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}'
870
870
  search_paths << '$(PLATFORM_DIR)/Developer/Library/Frameworks' if test_xcconfig?
871
871
  end
872
872
  return search_paths if target.build_as_framework? || !target.should_build?
@@ -152,6 +152,8 @@ module Pod
152
152
  platform_message = '[watchOS] '
153
153
  elsif result.platforms == [:tvos]
154
154
  platform_message = '[tvOS] '
155
+ elsif result.platforms == [:visionos]
156
+ platform_message = '[visionOS] '
155
157
  end
156
158
 
157
159
  subspecs_message = ''
@@ -1104,6 +1106,9 @@ module Pod
1104
1106
  when :tvos
1105
1107
  command += %w(CODE_SIGN_IDENTITY=- -sdk appletvsimulator)
1106
1108
  command += Fourflusher::SimControl.new.destination(:oldest, 'tvOS', deployment_target)
1109
+ when :visionos
1110
+ command += %w(CODE_SIGN_IDENTITY=- -sdk xrsimulator)
1111
+ command += Fourflusher::SimControl.new.destination(:oldest, 'visionOS', deployment_target)
1107
1112
  end
1108
1113
 
1109
1114
  if analyze
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.1
4
+ version: 1.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Duran
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-04-18 00:00:00.000000000 Z
14
+ date: 2023-09-22 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: cocoapods-core
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 1.12.1
22
+ version: 1.13.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 1.12.1
29
+ version: 1.13.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -187,7 +187,7 @@ dependencies:
187
187
  requirements:
188
188
  - - ">="
189
189
  - !ruby/object:Gem::Version
190
- version: 1.21.0
190
+ version: 1.23.0
191
191
  - - "<"
192
192
  - !ruby/object:Gem::Version
193
193
  version: '2.0'
@@ -197,7 +197,7 @@ dependencies:
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- version: 1.21.0
200
+ version: 1.23.0
201
201
  - - "<"
202
202
  - !ruby/object:Gem::Version
203
203
  version: '2.0'