cocoapods 1.11.0 → 1.12.1
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 +162 -2
- data/README.md +7 -8
- data/lib/cocoapods/command/lib/lint.rb +3 -0
- data/lib/cocoapods/command/repo/push.rb +3 -0
- data/lib/cocoapods/command/setup.rb +2 -2
- data/lib/cocoapods/command/spec/lint.rb +3 -0
- data/lib/cocoapods/config.rb +5 -5
- data/lib/cocoapods/executable.rb +1 -1
- data/lib/cocoapods/external_sources/abstract_external_source.rb +1 -1
- data/lib/cocoapods/external_sources/path_source.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/acknowledgements.rb +12 -0
- data/lib/cocoapods/generator/app_target_helper.rb +1 -1
- data/lib/cocoapods/generator/copy_resources_script.rb +1 -1
- data/lib/cocoapods/generator/copy_xcframework_script.rb +48 -22
- data/lib/cocoapods/generator/embed_frameworks_script.rb +1 -1
- data/lib/cocoapods/generator/info_plist_file.rb +1 -1
- data/lib/cocoapods/installer/analyzer/analysis_result.rb +3 -3
- data/lib/cocoapods/installer/analyzer/pod_variant.rb +1 -1
- data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +8 -7
- data/lib/cocoapods/installer/analyzer.rb +9 -5
- data/lib/cocoapods/installer/base_install_hooks_context.rb +18 -3
- data/lib/cocoapods/installer/installation_options.rb +11 -0
- data/lib/cocoapods/installer/pod_source_downloader.rb +159 -0
- data/lib/cocoapods/installer/pod_source_installer.rb +10 -36
- data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +2 -2
- data/lib/cocoapods/installer/project_cache/target_cache_key.rb +1 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +2 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +37 -3
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +6 -0
- data/lib/cocoapods/installer/xcode/pods_project_generator/project_generator.rb +1 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer_helper.rb +9 -3
- data/lib/cocoapods/installer/xcode/pods_project_generator.rb +36 -1
- data/lib/cocoapods/installer/xcode/target_validator.rb +1 -1
- data/lib/cocoapods/installer.rb +102 -34
- data/lib/cocoapods/native_target_extension.rb +1 -1
- data/lib/cocoapods/open-uri.rb +1 -1
- data/lib/cocoapods/project.rb +8 -8
- data/lib/cocoapods/resolver/resolver_specification.rb +1 -1
- data/lib/cocoapods/resolver.rb +3 -3
- data/lib/cocoapods/sandbox/file_accessor.rb +11 -2
- data/lib/cocoapods/sandbox/path_list.rb +1 -1
- data/lib/cocoapods/sandbox.rb +48 -12
- data/lib/cocoapods/sources_manager.rb +7 -4
- data/lib/cocoapods/target/build_settings.rb +9 -2
- data/lib/cocoapods/target/pod_target.rb +2 -2
- data/lib/cocoapods/user_interface.rb +2 -2
- data/lib/cocoapods/validator.rb +31 -20
- data/lib/cocoapods/xcode/xcframework/xcframework_slice.rb +12 -6
- data/lib/cocoapods/xcode/xcframework.rb +1 -1
- metadata +14 -13
data/lib/cocoapods/validator.rb
CHANGED
@@ -58,7 +58,6 @@ module Pod
|
|
58
58
|
end
|
59
59
|
result
|
60
60
|
end
|
61
|
-
@use_frameworks = true
|
62
61
|
end
|
63
62
|
|
64
63
|
#-------------------------------------------------------------------------#
|
@@ -110,7 +109,7 @@ module Pod
|
|
110
109
|
# @note This method shows immediately which pod is being processed and
|
111
110
|
# overrides the printed line once the result is known.
|
112
111
|
#
|
113
|
-
# @return [
|
112
|
+
# @return [Boolean] whether the specification passed validation.
|
114
113
|
#
|
115
114
|
def validate
|
116
115
|
@results = []
|
@@ -201,23 +200,23 @@ module Pod
|
|
201
200
|
|
202
201
|
# @!group Configuration
|
203
202
|
|
204
|
-
# @return [
|
203
|
+
# @return [Boolean] whether the validation should skip the checks that
|
205
204
|
# requires the download of the library.
|
206
205
|
#
|
207
206
|
attr_accessor :quick
|
208
207
|
|
209
|
-
# @return [
|
208
|
+
# @return [Boolean] whether the linter should not clean up temporary files
|
210
209
|
# for inspection.
|
211
210
|
#
|
212
211
|
attr_accessor :no_clean
|
213
212
|
|
214
|
-
# @return [
|
213
|
+
# @return [Boolean] whether the linter should fail as soon as the first build
|
215
214
|
# variant causes an error. Helpful for i.e. multi-platforms specs,
|
216
215
|
# specs with subspecs.
|
217
216
|
#
|
218
217
|
attr_accessor :fail_fast
|
219
218
|
|
220
|
-
# @return [
|
219
|
+
# @return [Boolean] whether the validation should be performed against the root of
|
221
220
|
# the podspec instead to its original source.
|
222
221
|
#
|
223
222
|
# @note Uses the `:path` option of the Podfile.
|
@@ -225,7 +224,7 @@ module Pod
|
|
225
224
|
attr_accessor :local
|
226
225
|
alias_method :local?, :local
|
227
226
|
|
228
|
-
# @return [
|
227
|
+
# @return [Boolean] Whether the validator should fail on warnings, or only on errors.
|
229
228
|
#
|
230
229
|
attr_accessor :allow_warnings
|
231
230
|
|
@@ -233,11 +232,11 @@ module Pod
|
|
233
232
|
#
|
234
233
|
attr_accessor :only_subspec
|
235
234
|
|
236
|
-
# @return [
|
235
|
+
# @return [Boolean] Whether the validator should validate all subspecs.
|
237
236
|
#
|
238
237
|
attr_accessor :no_subspecs
|
239
238
|
|
240
|
-
# @return [
|
239
|
+
# @return [Boolean] Whether the validator should skip building and running tests.
|
241
240
|
#
|
242
241
|
attr_accessor :skip_tests
|
243
242
|
|
@@ -245,11 +244,11 @@ module Pod
|
|
245
244
|
#
|
246
245
|
attr_accessor :test_specs
|
247
246
|
|
248
|
-
# @return [
|
247
|
+
# @return [Boolean] Whether the validator should run Xcode Static Analysis.
|
249
248
|
#
|
250
249
|
attr_accessor :analyze
|
251
250
|
|
252
|
-
# @return [
|
251
|
+
# @return [Boolean] Whether frameworks should be used for the installation.
|
253
252
|
#
|
254
253
|
attr_accessor :use_frameworks
|
255
254
|
|
@@ -324,6 +323,10 @@ module Pod
|
|
324
323
|
@validation_dir ||= Pathname(Dir.mktmpdir(['CocoaPods-Lint-', "-#{spec.name}"]))
|
325
324
|
end
|
326
325
|
|
326
|
+
def validation_dir=(validation_dir)
|
327
|
+
@validation_dir = Pathname(validation_dir) unless validation_dir.nil?
|
328
|
+
end
|
329
|
+
|
327
330
|
# @return [String] The SWIFT_VERSION that should be used to validate the pod. This is set by passing the
|
328
331
|
# `--swift-version` parameter during validation.
|
329
332
|
#
|
@@ -583,12 +586,21 @@ module Pod
|
|
583
586
|
app_target = Pod::Generator::AppTargetHelper.add_app_target(app_project, consumer.platform_name, deployment_target)
|
584
587
|
sandbox = Sandbox.new(config.sandbox_root)
|
585
588
|
info_plist_path = app_project.path.dirname.+('App/App-Info.plist')
|
586
|
-
Pod::Installer::Xcode::PodsProjectGenerator::TargetInstallerHelper.create_info_plist_file_with_sandbox(sandbox,
|
589
|
+
Pod::Installer::Xcode::PodsProjectGenerator::TargetInstallerHelper.create_info_plist_file_with_sandbox(sandbox,
|
590
|
+
info_plist_path,
|
591
|
+
app_target,
|
592
|
+
'1.0.0',
|
593
|
+
Platform.new(consumer.platform_name),
|
594
|
+
:appl,
|
595
|
+
:build_setting_value => '$(SRCROOT)/App/App-Info.plist')
|
587
596
|
Pod::Generator::AppTargetHelper.add_swift_version(app_target, derived_swift_version)
|
588
|
-
# Lint will fail if a AppIcon is set but no image is found with such name
|
589
|
-
# Happens only with Static Frameworks enabled but shouldn't be set anyway
|
590
597
|
app_target.build_configurations.each do |config|
|
598
|
+
# Lint will fail if a AppIcon is set but no image is found with such name
|
599
|
+
# Happens only with Static Frameworks enabled but shouldn't be set anyway
|
591
600
|
config.build_settings.delete('ASSETCATALOG_COMPILER_APPICON_NAME')
|
601
|
+
# Ensure this is set generally but we have seen an issue with ODRs:
|
602
|
+
# see: https://github.com/CocoaPods/CocoaPods/issues/10933
|
603
|
+
config.build_settings['PRODUCT_BUNDLE_IDENTIFIER'] = 'org.cocoapods.${PRODUCT_NAME:rfc1034identifier}'
|
592
604
|
end
|
593
605
|
app_project.save
|
594
606
|
app_project.recreate_user_schemes
|
@@ -818,8 +830,8 @@ module Pod
|
|
818
830
|
file_accessor.vendored_libraries.each do |lib|
|
819
831
|
basename = File.basename(lib)
|
820
832
|
lib_name = basename.downcase
|
821
|
-
unless lib_name.end_with?('.a') && lib_name.start_with?('lib')
|
822
|
-
warning('vendored_libraries', "`#{basename}` does not match the expected
|
833
|
+
unless lib_name.end_with?('.a', '.dylib') && lib_name.start_with?('lib')
|
834
|
+
warning('vendored_libraries', "`#{basename}` does not match the expected library name format `lib[name].a` or `lib[name].dylib`")
|
823
835
|
end
|
824
836
|
end
|
825
837
|
validate_nonempty_patterns(:vendored_libraries, :warning)
|
@@ -983,7 +995,7 @@ module Pod
|
|
983
995
|
# the deployment target, which should be declared in
|
984
996
|
# the Podfile.
|
985
997
|
#
|
986
|
-
# @param [
|
998
|
+
# @param [Boolean] use_frameworks
|
987
999
|
# whether frameworks should be used for the installation
|
988
1000
|
#
|
989
1001
|
# @param [Array<String>] test_spec_names
|
@@ -1089,7 +1101,6 @@ module Pod
|
|
1089
1101
|
end
|
1090
1102
|
when :watchos
|
1091
1103
|
command += %w(CODE_SIGN_IDENTITY=- -sdk watchsimulator)
|
1092
|
-
command += Fourflusher::SimControl.new.destination(:oldest, 'watchOS', deployment_target)
|
1093
1104
|
when :tvos
|
1094
1105
|
command += %w(CODE_SIGN_IDENTITY=- -sdk appletvsimulator)
|
1095
1106
|
command += Fourflusher::SimControl.new.destination(:oldest, 'tvOS', deployment_target)
|
@@ -1122,7 +1133,7 @@ module Pod
|
|
1122
1133
|
# @param [Platform] platform
|
1123
1134
|
# The platform to check
|
1124
1135
|
#
|
1125
|
-
# @return [
|
1136
|
+
# @return [Boolean] True if the platform is valid
|
1126
1137
|
#
|
1127
1138
|
def valid_platform?(platform)
|
1128
1139
|
VALID_PLATFORMS.any? { |p| p.name == platform.name }
|
@@ -1136,7 +1147,7 @@ module Pod
|
|
1136
1147
|
# @param [Specification] spec
|
1137
1148
|
# The specification which must support the provided platform
|
1138
1149
|
#
|
1139
|
-
# @return [
|
1150
|
+
# @return [Boolean] Whether the platform is supported by the specification
|
1140
1151
|
#
|
1141
1152
|
def supported_platform?(platform, spec)
|
1142
1153
|
available_platforms = spec.available_platforms
|
@@ -4,7 +4,7 @@ module Pod
|
|
4
4
|
module Xcode
|
5
5
|
class XCFramework
|
6
6
|
class Slice
|
7
|
-
# @return [Pathname] the path to the .framework or .
|
7
|
+
# @return [Pathname] the path to the .framework, .a or .dylib of this slice
|
8
8
|
#
|
9
9
|
attr_reader :path
|
10
10
|
|
@@ -45,9 +45,15 @@ module Pod
|
|
45
45
|
when :framework
|
46
46
|
File.basename(path, '.framework')
|
47
47
|
when :library
|
48
|
-
|
49
|
-
|
50
|
-
|
48
|
+
ext = File.extname(path)
|
49
|
+
case ext
|
50
|
+
when '.a', '.dylib'
|
51
|
+
result = File.basename(path).gsub(/^lib/, '')
|
52
|
+
result[0] = result.downcase[0]
|
53
|
+
result
|
54
|
+
else
|
55
|
+
raise Informative, "Invalid package type `#{package_type}`"
|
56
|
+
end
|
51
57
|
else
|
52
58
|
raise Informative, "Invalid package type `#{package_type}`"
|
53
59
|
end
|
@@ -68,7 +74,7 @@ module Pod
|
|
68
74
|
case ext
|
69
75
|
when '.framework'
|
70
76
|
:framework
|
71
|
-
when '.a'
|
77
|
+
when '.a', '.dylib'
|
72
78
|
:library
|
73
79
|
else
|
74
80
|
raise Informative, "Invalid XCFramework slice type `#{ext}`"
|
@@ -109,7 +115,7 @@ module Pod
|
|
109
115
|
packaging = case ext
|
110
116
|
when '.framework'
|
111
117
|
:framework
|
112
|
-
when '.a'
|
118
|
+
when '.a', '.dylib'
|
113
119
|
:library
|
114
120
|
else
|
115
121
|
raise Informative, "Invalid XCFramework slice type `#{ext}`"
|
@@ -91,7 +91,7 @@ module Pod
|
|
91
91
|
slice_path = slice_root.join(relative_path)
|
92
92
|
headers = slice_root.join(headers) unless headers.nil?
|
93
93
|
XCFramework::Slice.new(slice_path, identifier, archs, platform_name, :platform_variant => platform_variant, :headers => headers)
|
94
|
-
end
|
94
|
+
end.sort_by(&:identifier)
|
95
95
|
raise Informative, "XCFramework at #{path} does not contain any frameworks or libraries." if slices.empty?
|
96
96
|
end
|
97
97
|
end
|
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.12.1
|
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:
|
14
|
+
date: 2023-04-18 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.12.1
|
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.12.1
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +73,7 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: 1.
|
76
|
+
version: 1.6.0
|
77
77
|
- - "<"
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '2.0'
|
@@ -83,7 +83,7 @@ dependencies:
|
|
83
83
|
requirements:
|
84
84
|
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version: 1.
|
86
|
+
version: 1.6.0
|
87
87
|
- - "<"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '2.0'
|
@@ -133,7 +133,7 @@ dependencies:
|
|
133
133
|
requirements:
|
134
134
|
- - ">="
|
135
135
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.
|
136
|
+
version: 1.6.0
|
137
137
|
- - "<"
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '2.0'
|
@@ -143,7 +143,7 @@ dependencies:
|
|
143
143
|
requirements:
|
144
144
|
- - ">="
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 1.
|
146
|
+
version: 1.6.0
|
147
147
|
- - "<"
|
148
148
|
- !ruby/object:Gem::Version
|
149
149
|
version: '2.0'
|
@@ -283,7 +283,7 @@ dependencies:
|
|
283
283
|
requirements:
|
284
284
|
- - ">="
|
285
285
|
- !ruby/object:Gem::Version
|
286
|
-
version:
|
286
|
+
version: 2.3.0
|
287
287
|
- - "<"
|
288
288
|
- !ruby/object:Gem::Version
|
289
289
|
version: '3.0'
|
@@ -293,7 +293,7 @@ dependencies:
|
|
293
293
|
requirements:
|
294
294
|
- - ">="
|
295
295
|
- !ruby/object:Gem::Version
|
296
|
-
version:
|
296
|
+
version: 2.3.0
|
297
297
|
- - "<"
|
298
298
|
- !ruby/object:Gem::Version
|
299
299
|
version: '3.0'
|
@@ -345,14 +345,14 @@ dependencies:
|
|
345
345
|
requirements:
|
346
346
|
- - "~>"
|
347
347
|
- !ruby/object:Gem::Version
|
348
|
-
version: '
|
348
|
+
version: '12.3'
|
349
349
|
type: :development
|
350
350
|
prerelease: false
|
351
351
|
version_requirements: !ruby/object:Gem::Requirement
|
352
352
|
requirements:
|
353
353
|
- - "~>"
|
354
354
|
- !ruby/object:Gem::Version
|
355
|
-
version: '
|
355
|
+
version: '12.3'
|
356
356
|
description: |-
|
357
357
|
CocoaPods manages library dependencies for your Xcode project.
|
358
358
|
|
@@ -458,6 +458,7 @@ files:
|
|
458
458
|
- lib/cocoapods/installer/analyzer/target_inspector.rb
|
459
459
|
- lib/cocoapods/installer/base_install_hooks_context.rb
|
460
460
|
- lib/cocoapods/installer/installation_options.rb
|
461
|
+
- lib/cocoapods/installer/pod_source_downloader.rb
|
461
462
|
- lib/cocoapods/installer/pod_source_installer.rb
|
462
463
|
- lib/cocoapods/installer/pod_source_preparer.rb
|
463
464
|
- lib/cocoapods/installer/podfile_validator.rb
|
@@ -545,7 +546,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
545
546
|
- !ruby/object:Gem::Version
|
546
547
|
version: '0'
|
547
548
|
requirements: []
|
548
|
-
rubygems_version: 3.
|
549
|
+
rubygems_version: 3.1.6
|
549
550
|
signing_key:
|
550
551
|
specification_version: 4
|
551
552
|
summary: The Cocoa library package manager.
|