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 +4 -4
- data/CHANGELOG.md +36 -0
- data/lib/cocoapods/downloader/cache.rb +14 -70
- data/lib/cocoapods/downloader.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +8 -0
- data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +6 -0
- data/lib/cocoapods/sandbox/pod_dir_cleaner.rb +3 -3
- data/lib/cocoapods/target/build_settings.rb +13 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c196e690e3190c21dc7ec7355169332ecdf6a88379cf8743394b618a3e477ecc
|
4
|
+
data.tar.gz: 86ba050b8fbf1300f0c7debd1e454f65687429df67e7d57f005300af7879668d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 |
|
239
|
-
result, podspecs = download(request,
|
238
|
+
in_tmpdir do |target|
|
239
|
+
result, podspecs = download(request, target)
|
240
240
|
result.location = nil
|
241
241
|
|
242
|
-
|
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
|
-
|
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
|
308
|
-
specs_by_platform = group_subspecs_by_platform(
|
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
|
-
|
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
|
-
|
318
|
-
|
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(
|
296
|
+
def group_subspecs_by_platform(spec)
|
351
297
|
specs_by_platform = {}
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
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
|
data/lib/cocoapods/downloader.rb
CHANGED
@@ -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
|
54
|
+
FileUtils.rm_rf target
|
55
55
|
FileUtils.cp_r(result.location, target)
|
56
56
|
end
|
57
57
|
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(
|
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
200
|
+
version: 1.26.0
|
201
201
|
- - "<"
|
202
202
|
- !ruby/object:Gem::Version
|
203
203
|
version: '2.0'
|