cocoapods 1.15.1 → 1.16.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7bffb073059f0b97dde0f045b3907b5c272985c51c25c3bee4356b97dd2dd0a
4
- data.tar.gz: effce424a85373cef900d6ff8d1887aa5d638a403af002a20bd464ae76b0feb3
3
+ metadata.gz: c196e690e3190c21dc7ec7355169332ecdf6a88379cf8743394b618a3e477ecc
4
+ data.tar.gz: 86ba050b8fbf1300f0c7debd1e454f65687429df67e7d57f005300af7879668d
5
5
  SHA512:
6
- metadata.gz: b86867763acdaadd2183f0e8f9945bef27e78832227ee17ff5876c9f7e089882bfeee10a0b354b3c84e4c755b0836e9247b00e310f8155e045bae9bcd2d9cd95
7
- data.tar.gz: b948e71135a739f1b8b5b829ab4c3acf6f8e0079160a4fbea4cb13b0abd9d2f814f111fea264054197acd42ca8b01976ff24e39f65548573f492930ab2754a52
6
+ metadata.gz: 20d4c854b06ccebca73060b3f393a0d53eff4799f755a5357c516e23b02db225fe60c75be5c67af3db4bf8f6108e1c76291995fe530264cdc644e2bf1d891a71
7
+ data.tar.gz: 7a9f0b071c3737d0dbff38a74e512ca0e9a4f11d5ca5774edebe5e65c34e32084ab38d5e1d2ac7e36836570b21cd5214ef1038f95672c74868a733148bd4cb29
data/CHANGELOG.md CHANGED
@@ -4,6 +4,42 @@ 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.16.0 (2024-10-29)
8
+
9
+ ##### Enhancements
10
+
11
+ * Add Support for Xcode 14.3's ENABLE_MODULE_VERIFIER.
12
+ [sharplet](https://github.com/sharplet)
13
+ [#12390](https://github.com/CocoaPods/CocoaPods/pull/12390)
14
+
15
+ * Xcode 16 support.
16
+ * Bump minimum `xcodeproj` to `1.26.0`
17
+ * Update project generator to set `GENERATE_INFOPLIST_FILE = NO` on pod targets
18
+ * Update project generator to set `ENABLE_USER_SCRIPT_SANDBOXING = NO` = NO` on pod targets to fix build failures with vendored frameworks.
19
+ * Update project geneerator to set `SWIFT_INSTALL_OBJC_HEADER = YES` on pod targets to enable consuming Swift pods from Objective-C.
20
+
21
+ [Eric Amorde](https://github.com/amorde)
22
+ [#12656](https://github.com/CocoaPods/CocoaPods/pull/12656)
23
+
24
+ ##### Bug Fixes
25
+
26
+ * Fix pod install issue when git's `core.fsmonitor` feature is enabled (again)
27
+ [Justin Martin](https://github.com/justinseanmartin)
28
+ [#12349](https://github.com/CocoaPods/CocoaPods/issues/12349)
29
+
30
+
31
+ ## 1.15.2 (2024-02-06)
32
+
33
+ ##### Enhancements
34
+
35
+ * None.
36
+
37
+ ##### Bug Fixes
38
+
39
+ * Revert #12154, #12165, and #12158 to fix regressions in 1.15.0 and 1.15.1.
40
+ [Paul Beusterien](https://github.com/paulb777)
41
+ [#12226](https://github.com/CocoaPods/CocoaPods/issues/12226)
42
+
7
43
  ## 1.15.1 (2024-02-06)
8
44
 
9
45
  ##### Enhancements
@@ -235,38 +235,13 @@ module Pod
235
235
  # was not found in the download cache.
236
236
  #
237
237
  def uncached_pod(request)
238
- in_tmpdir do |tmp_dir|
239
- result, podspecs = download(request, tmp_dir)
238
+ in_tmpdir do |target|
239
+ result, podspecs = download(request, target)
240
240
  result.location = nil
241
241
 
242
- # Split by pods that require a prepare command or not to speed up installation.
243
- no_prep_cmd_specs, prep_cmd_specs = podspecs.partition { |_, spec| spec.prepare_command.nil? }.map(&:to_h)
244
-
245
- # Pods with a prepare command currently copy the entire repo, run the prepare command against the whole
246
- # repo and then clean it up. We configure those first to ensure the repo is pristine.
247
- prep_cmd_specs.each do |name, spec|
242
+ podspecs.each do |name, spec|
248
243
  destination = path_for_pod(request, :name => name, :params => result.checkout_options)
249
- copy_source_and_clean(tmp_dir, destination, spec)
250
- write_spec(spec, path_for_spec(request, :name => name, :params => result.checkout_options))
251
- if request.name == name
252
- result.location = destination
253
- end
254
- end
255
-
256
- specs_by_platform = group_subspecs_by_platform(no_prep_cmd_specs.values)
257
-
258
- # Remaining pods without a prepare command can be optimized by cleaning the repo first
259
- # and then copying only the files needed.
260
- pod_dir_cleaner = Sandbox::PodDirCleaner.new(tmp_dir, specs_by_platform)
261
- Cache.write_lock(tmp_dir) do
262
- pod_dir_cleaner.clean!
263
- end
264
-
265
- no_prep_cmd_specs.each do |name, spec|
266
- destination = path_for_pod(request, :name => name, :params => result.checkout_options)
267
- file_accessors = pod_dir_cleaner.file_accessors.select { |fa| fa.spec.root.name == spec.name }
268
- files = Pod::Sandbox::FileAccessor.all_files(file_accessors).map(&:to_s)
269
- copy_files(files, tmp_dir, destination)
244
+ copy_and_clean(target, destination, spec)
270
245
  write_spec(spec, path_for_spec(request, :name => name, :params => result.checkout_options))
271
246
  if request.name == name
272
247
  result.location = destination
@@ -304,57 +279,26 @@ module Pod
304
279
  #
305
280
  # @return [Void]
306
281
  #
307
- def copy_source_and_clean(source, destination, spec)
308
- specs_by_platform = group_subspecs_by_platform([spec])
282
+ def copy_and_clean(source, destination, spec)
283
+ specs_by_platform = group_subspecs_by_platform(spec)
309
284
  destination.parent.mkpath
310
285
  Cache.write_lock(destination) do
311
- Pod::Executable.execute_command('rsync', ['-a', '--exclude=.git/fsmonitor--daemon.ipc', '--delete', "#{source}/", destination])
286
+ rsync_contents(source, destination)
312
287
  Pod::Installer::PodSourcePreparer.new(spec, destination).prepare!
313
288
  Sandbox::PodDirCleaner.new(destination, specs_by_platform).clean!
314
289
  end
315
290
  end
316
291
 
317
- # Copies the `files` from the `source` directory to `destination` _without_ cleaning the
318
- # `destination` directory of any files unused by `spec`. This is a faster version used when
319
- # installing pods without a prepare command which has already happened prior.
320
- #
321
- # @param [Array<Pathname>] files
322
- #
323
- # @param [Pathname] source
324
- #
325
- # @param [Pathname] destination
326
- #
327
- # @return [Void]
328
- #
329
- def copy_files(files, source, destination)
330
- files = files.
331
- map { |f| Pathname(f) }.
332
- select { |p| p.exist? && p.file? }
333
- destination.parent.mkpath
334
- Cache.write_lock(destination) do
335
- FileUtils.rm_rf(destination)
336
- destination.mkpath
337
- files_by_dir = files.group_by do |file|
338
- relative_path = file.relative_path_from(source)
339
- destination_path = File.join(destination, relative_path)
340
- File.dirname(destination_path)
341
- end
342
-
343
- files_by_dir.each do |dir, files_to_copy|
344
- FileUtils.mkdir_p(dir)
345
- FileUtils.cp_r(files_to_copy, dir)
346
- end
347
- end
292
+ def rsync_contents(source, destination)
293
+ Pod::Executable.execute_command('rsync', ['-a', '--exclude=.git', '--delete', "#{source}/", destination])
348
294
  end
349
295
 
350
- def group_subspecs_by_platform(specs)
296
+ def group_subspecs_by_platform(spec)
351
297
  specs_by_platform = {}
352
- specs.each do |spec|
353
- [spec, *spec.recursive_subspecs].each do |ss|
354
- ss.available_platforms.each do |platform|
355
- specs_by_platform[platform] ||= []
356
- specs_by_platform[platform] << ss
357
- end
298
+ [spec, *spec.recursive_subspecs].each do |ss|
299
+ ss.available_platforms.each do |platform|
300
+ specs_by_platform[platform] ||= []
301
+ specs_by_platform[platform] << ss
358
302
  end
359
303
  end
360
304
  specs_by_platform
@@ -51,7 +51,7 @@ module Pod
51
51
  if target && result.location && target != result.location
52
52
  UI.message "Copying #{request.name} from `#{result.location}` to #{UI.path target}", '> ' do
53
53
  Cache.read_lock(result.location) do
54
- FileUtils.rm_rf(target)
54
+ FileUtils.rm_rf target
55
55
  FileUtils.cp_r(result.location, target)
56
56
  end
57
57
  end
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.15.1'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.16.0'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -226,6 +226,11 @@ module Pod
226
226
 
227
227
  settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = '$(inherited) '
228
228
 
229
+ # Added in Xcode 16. We manually generate our own Info.plist file so opt out.
230
+ settings['GENERATE_INFOPLIST_FILE'] = 'NO'
231
+ # Added in Xcode 16. For Swift-only Pods to be visible to Objective-C we to enable this.
232
+ settings['SWIFT_INSTALL_OBJC_HEADER'] = 'YES'
233
+
229
234
  if target.swift_version
230
235
  settings['SWIFT_VERSION'] = target.swift_version
231
236
  end
@@ -1103,6 +1108,9 @@ module Pod
1103
1108
  target.user_build_configurations.each do |bc_name, type|
1104
1109
  native_target.add_build_configuration(bc_name, type)
1105
1110
  end
1111
+ native_target.build_configurations.each do |configuration|
1112
+ configuration.build_settings['ENABLE_USER_SCRIPT_SANDBOXING'] = 'NO'
1113
+ end
1106
1114
  unless target.archs.empty?
1107
1115
  native_target.build_configurations.each do |configuration|
1108
1116
  configuration.build_settings['ARCHS'] = target.archs
@@ -94,6 +94,12 @@ module Pod
94
94
  settings.merge!('OTHER_LDFLAGS' => '', 'OTHER_LIBTOOLFLAGS' => '')
95
95
  end
96
96
 
97
+ # This interferes with our custom run script phases
98
+ settings['ENABLE_USER_SCRIPT_SANDBOXING'] = 'NO'
99
+
100
+ # We aren't yet ready to support this for our targets
101
+ settings['ENABLE_MODULE_VERIFIER'] = 'NO'
102
+
97
103
  settings
98
104
  end
99
105
 
@@ -15,9 +15,11 @@ module Pod
15
15
  # @return [void]
16
16
  #
17
17
  def clean!
18
- FileUtils.rm_rf(clean_paths) if root.exist?
18
+ clean_paths.each { |path| FileUtils.rm_rf(path) } if root.exist?
19
19
  end
20
20
 
21
+ private
22
+
21
23
  # @return [Array<Sandbox::FileAccessor>] the file accessors for all the
22
24
  # specifications on their respective platform.
23
25
  #
@@ -27,8 +29,6 @@ module Pod
27
29
  end
28
30
  end
29
31
 
30
- private
31
-
32
32
  # @return [Sandbox::PathList] The path list for this Pod.
33
33
  #
34
34
  def path_list
@@ -28,6 +28,7 @@ module Pod
28
28
  OTHER_CFLAGS
29
29
  OTHER_CPLUSPLUSFLAGS
30
30
  OTHER_LDFLAGS
31
+ OTHER_MODULE_VERIFIER_FLAGS
31
32
  OTHER_SWIFT_FLAGS
32
33
  REZ_SEARCH_PATHS
33
34
  SECTORDER_FLAGS
@@ -293,6 +294,11 @@ module Pod
293
294
  module_map_files.map { |f| "-fmodule-map-file=#{f}" }
294
295
  end
295
296
 
297
+ # @return [Array<String>]
298
+ define_build_settings_method :other_module_verifier_flags, :build_setting => true, :memoized => true do
299
+ []
300
+ end
301
+
296
302
  # @return [Array<String>]
297
303
  define_build_settings_method :module_map_files do
298
304
  []
@@ -1233,6 +1239,13 @@ module Pod
1233
1239
  flags
1234
1240
  end
1235
1241
 
1242
+ # @return [Array<String>]
1243
+ define_build_settings_method :other_module_verifier_flags, :memoized => true do
1244
+ flags = super()
1245
+ flags += pod_targets.map { |pt| '-F' + pt.build_settings[@configuration].configuration_build_dir }
1246
+ flags
1247
+ end
1248
+
1236
1249
  # @return [Array<String>]
1237
1250
  define_build_settings_method :module_map_files, :memoized => true, :sorted => true, :uniqued => true, :compacted => true, :from_search_paths_aggregate_targets => :module_map_file_to_import do
1238
1251
  pod_targets.map { |pt| pt.build_settings[@configuration].module_map_file_to_import }
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.15.1
4
+ version: 1.16.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: 2024-02-05 00:00:00.000000000 Z
14
+ date: 2024-10-28 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.15.1
22
+ version: 1.16.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.15.1
29
+ version: 1.16.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.23.0
190
+ version: 1.26.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.23.0
200
+ version: 1.26.0
201
201
  - - "<"
202
202
  - !ruby/object:Gem::Version
203
203
  version: '2.0'