cocoapods 1.11.3 → 1.12.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 +74 -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/copy_resources_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 +6 -6
- data/lib/cocoapods/installer/analyzer.rb +8 -4
- 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/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.rb +36 -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 +1 -1
- data/lib/cocoapods/sandbox/path_list.rb +1 -1
- data/lib/cocoapods/sandbox.rb +48 -12
- data/lib/cocoapods/sources_manager.rb +1 -1
- data/lib/cocoapods/target/build_settings.rb +6 -1
- data/lib/cocoapods/target/pod_target.rb +2 -2
- data/lib/cocoapods/user_interface.rb +2 -2
- data/lib/cocoapods/validator.rb +19 -17
- data/lib/cocoapods/xcode/xcframework/xcframework_slice.rb +12 -6
- data/lib/cocoapods/xcode/xcframework.rb +1 -1
- metadata +13 -12
data/lib/cocoapods/project.rb
CHANGED
@@ -26,7 +26,7 @@ module Pod
|
|
26
26
|
#
|
27
27
|
attr_reader :dependencies_group
|
28
28
|
|
29
|
-
# @return [
|
29
|
+
# @return [Boolean] Bool indicating if this project is a pod target subproject.
|
30
30
|
# Used by `generate_multiple_pod_projects` installation option.
|
31
31
|
#
|
32
32
|
attr_reader :pod_target_subproject
|
@@ -39,7 +39,7 @@ module Pod
|
|
39
39
|
# Initialize a new instance
|
40
40
|
#
|
41
41
|
# @param [Pathname, String] path @see Xcodeproj::Project#path
|
42
|
-
# @param [
|
42
|
+
# @param [Boolean] skip_initialization Whether the project should be initialized from scratch.
|
43
43
|
# @param [Int] object_version Object version to use for serialization, defaults to Xcode 3.2 compatible.
|
44
44
|
#
|
45
45
|
def initialize(path, skip_initialization = false,
|
@@ -107,10 +107,10 @@ module Pod
|
|
107
107
|
# @param [#to_s] path
|
108
108
|
# The path to the root of the Pod.
|
109
109
|
#
|
110
|
-
# @param [
|
110
|
+
# @param [Boolean] development
|
111
111
|
# Whether the group should be added to the Development Pods group.
|
112
112
|
#
|
113
|
-
# @param [
|
113
|
+
# @param [Boolean] absolute
|
114
114
|
# Whether the path of the group should be set as absolute.
|
115
115
|
#
|
116
116
|
# @return [PBXGroup] The new group.
|
@@ -136,7 +136,7 @@ module Pod
|
|
136
136
|
# @param [Project] project
|
137
137
|
# The subproject to be added.
|
138
138
|
#
|
139
|
-
# @param [
|
139
|
+
# @param [Boolean] development
|
140
140
|
# Whether the project should be added to the Development Pods group.
|
141
141
|
# For projects where `pod_target_subproject` is enabled, all subprojects are added into the Dependencies group.
|
142
142
|
#
|
@@ -156,7 +156,7 @@ module Pod
|
|
156
156
|
# @param [TargetMetadata] metadata
|
157
157
|
# The project metadata to be added.
|
158
158
|
#
|
159
|
-
# @param [
|
159
|
+
# @param [Boolean] development
|
160
160
|
# Whether the project should be added to the Development Pods group.
|
161
161
|
# For projects where `pod_target_subproject` is enabled, all subprojects are added into the Dependencies group.
|
162
162
|
#
|
@@ -253,7 +253,7 @@ module Pod
|
|
253
253
|
# @param [PBXGroup] group
|
254
254
|
# The group for the new file reference.
|
255
255
|
#
|
256
|
-
# @param [
|
256
|
+
# @param [Boolean] reflect_file_system_structure
|
257
257
|
# Whether group structure should reflect the file system structure.
|
258
258
|
# If yes, where needed, intermediate groups are created, similar to
|
259
259
|
# how mkdir -p operates.
|
@@ -430,7 +430,7 @@ module Pod
|
|
430
430
|
# @param [PBXGroup] group
|
431
431
|
# The parent group used as the base of the relative path.
|
432
432
|
#
|
433
|
-
# @param [
|
433
|
+
# @param [Boolean] reflect_file_system_structure
|
434
434
|
# Whether group structure should reflect the file system structure.
|
435
435
|
# If yes, where needed, intermediate groups are created, similar to
|
436
436
|
# how mkdir -p operates.
|
@@ -12,7 +12,7 @@ module Pod
|
|
12
12
|
#
|
13
13
|
attr_reader :source
|
14
14
|
|
15
|
-
# @return [
|
15
|
+
# @return [Boolean] whether this resolved specification is used by non-library targets.
|
16
16
|
#
|
17
17
|
attr_reader :used_by_non_library_targets_only
|
18
18
|
alias used_by_non_library_targets_only? used_by_non_library_targets_only
|
data/lib/cocoapods/resolver.rb
CHANGED
@@ -34,7 +34,7 @@ module Pod
|
|
34
34
|
#
|
35
35
|
attr_reader :sources
|
36
36
|
|
37
|
-
# @return [
|
37
|
+
# @return [Boolean] Whether the resolver has sources repositories up-to-date.
|
38
38
|
#
|
39
39
|
attr_reader :specs_updated
|
40
40
|
alias specs_updated? specs_updated
|
@@ -531,7 +531,7 @@ You have either:#{specs_update_message}
|
|
531
531
|
#
|
532
532
|
# @param [Specification] spec
|
533
533
|
#
|
534
|
-
# @return [
|
534
|
+
# @return [Boolean]
|
535
535
|
#
|
536
536
|
def spec_is_platform_compatible?(dependency_graph, dependency, spec)
|
537
537
|
# This is safe since a pod will only be in locked dependencies if we're
|
@@ -575,7 +575,7 @@ You have either:#{specs_update_message}
|
|
575
575
|
# Whether the given `edge` should be followed to find dependencies for the
|
576
576
|
# given `target_platform`.
|
577
577
|
#
|
578
|
-
# @return [
|
578
|
+
# @return [Boolean]
|
579
579
|
#
|
580
580
|
def edge_is_valid_for_target_platform?(edge, target_platform)
|
581
581
|
@edge_validity ||= Hash.new do |hash, edge_and_platform|
|
@@ -513,7 +513,7 @@ module Pod
|
|
513
513
|
# @option options [Array<String>] :exclude_patterns
|
514
514
|
# The exclude patterns to pass to the PathList.
|
515
515
|
#
|
516
|
-
# @option options [
|
516
|
+
# @option options [Boolean] :include_dirs
|
517
517
|
# Whether directories should be also included or just plain
|
518
518
|
# files.
|
519
519
|
#
|
@@ -164,7 +164,7 @@ module Pod
|
|
164
164
|
|
165
165
|
# @!group Private helpers
|
166
166
|
|
167
|
-
# @return [
|
167
|
+
# @return [Boolean] Wether a path is a directory. The result of this method
|
168
168
|
# computed without accessing the file system and is case
|
169
169
|
# insensitive.
|
170
170
|
#
|
data/lib/cocoapods/sandbox.rb
CHANGED
@@ -67,6 +67,7 @@ module Pod
|
|
67
67
|
@root = Pathname.new(root).realpath
|
68
68
|
@public_headers = HeadersStore.new(self, 'Public', :public)
|
69
69
|
@predownloaded_pods = []
|
70
|
+
@downloaded_pods = []
|
70
71
|
@checkout_sources = {}
|
71
72
|
@development_pods = {}
|
72
73
|
@pods_with_absolute_path = []
|
@@ -84,18 +85,17 @@ module Pod
|
|
84
85
|
|
85
86
|
# Removes the files of the Pod with the given name from the sandbox.
|
86
87
|
#
|
88
|
+
# @param [String] name The name of the pod, which is used to calculate additional paths to clean.
|
89
|
+
# @param [String] pod_dir The directory of the pod to clean.
|
90
|
+
#
|
87
91
|
# @return [void]
|
88
92
|
#
|
89
|
-
def clean_pod(name)
|
90
|
-
|
91
|
-
unless local?(root_name)
|
92
|
-
path = pod_dir(name)
|
93
|
-
path.rmtree if path.exist?
|
94
|
-
end
|
93
|
+
def clean_pod(name, pod_dir)
|
94
|
+
pod_dir.rmtree if pod_dir&.exist?
|
95
95
|
podspec_path = specification_path(name)
|
96
|
-
podspec_path.rmtree if podspec_path
|
96
|
+
podspec_path.rmtree if podspec_path&.exist?
|
97
97
|
pod_target_project_path = pod_target_project_path(name)
|
98
|
-
pod_target_project_path.rmtree if pod_target_project_path
|
98
|
+
pod_target_project_path.rmtree if pod_target_project_path&.exist?
|
99
99
|
end
|
100
100
|
|
101
101
|
# Prepares the sandbox for a new installation removing any file that will
|
@@ -192,7 +192,7 @@ module Pod
|
|
192
192
|
#
|
193
193
|
# @param [String] name
|
194
194
|
#
|
195
|
-
# @return [
|
195
|
+
# @return [Boolean] true if originally absolute
|
196
196
|
#
|
197
197
|
def local_path_was_absolute?(name)
|
198
198
|
@pods_with_absolute_path.include? name
|
@@ -342,7 +342,7 @@ module Pod
|
|
342
342
|
# @param [String] name
|
343
343
|
# The name of the Pod.
|
344
344
|
#
|
345
|
-
# @return [
|
345
|
+
# @return [Boolean] Whether the Pod has been pre-downloaded.
|
346
346
|
#
|
347
347
|
def predownloaded?(name)
|
348
348
|
root_name = Specification.root_name(name)
|
@@ -351,6 +351,42 @@ module Pod
|
|
351
351
|
|
352
352
|
#--------------------------------------#
|
353
353
|
|
354
|
+
# Marks a Pod as downloaded
|
355
|
+
#
|
356
|
+
# @param [String] name
|
357
|
+
# The name of the Pod.
|
358
|
+
#
|
359
|
+
# @return [void]
|
360
|
+
#
|
361
|
+
def store_downloaded_pod(name)
|
362
|
+
root_name = Specification.root_name(name)
|
363
|
+
downloaded_pods << root_name
|
364
|
+
end
|
365
|
+
|
366
|
+
# Checks if a Pod has been downloaded before the installation
|
367
|
+
# process.
|
368
|
+
#
|
369
|
+
# @param [String] name
|
370
|
+
# The name of the Pod.
|
371
|
+
#
|
372
|
+
# @return [Boolean] Whether the Pod has been downloaded.
|
373
|
+
#
|
374
|
+
def downloaded?(name)
|
375
|
+
root_name = Specification.root_name(name)
|
376
|
+
downloaded_pods.include?(root_name)
|
377
|
+
end
|
378
|
+
|
379
|
+
# @return [Array<String>] The names of the pods that have been
|
380
|
+
# downloaded before the installation process begins.
|
381
|
+
# These are distinct from the pre-downloaded pods in
|
382
|
+
# that these do not necessarily come from external
|
383
|
+
# sources, and are only downloaded right before
|
384
|
+
# installation if the parallel_pod_downloads option is on.
|
385
|
+
#
|
386
|
+
attr_reader :downloaded_pods
|
387
|
+
|
388
|
+
#--------------------------------------#
|
389
|
+
|
354
390
|
# Stores the local path of a Pod.
|
355
391
|
#
|
356
392
|
# @param [String] name
|
@@ -406,7 +442,7 @@ module Pod
|
|
406
442
|
# @param [Pathname, String] path
|
407
443
|
# The path to the local Podspec
|
408
444
|
#
|
409
|
-
# @param [
|
445
|
+
# @param [Boolean] was_absolute
|
410
446
|
# True if the specified local path was absolute.
|
411
447
|
#
|
412
448
|
# @return [void]
|
@@ -428,7 +464,7 @@ module Pod
|
|
428
464
|
# @param [String] name
|
429
465
|
# The name of the Pod.
|
430
466
|
#
|
431
|
-
# @return [
|
467
|
+
# @return [Boolean] Whether the Pod is locally sourced.
|
432
468
|
#
|
433
469
|
def local?(name)
|
434
470
|
!local_podspec(name).nil?
|
@@ -443,7 +443,7 @@ module Pod
|
|
443
443
|
def merged_xcconfigs(xcconfig_values_by_consumer_by_key, attribute, overriding: {})
|
444
444
|
xcconfig_values_by_consumer_by_key.each_with_object(overriding.dup) do |(key, values_by_consumer), xcconfig|
|
445
445
|
uniq_values = values_by_consumer.values.uniq
|
446
|
-
values_are_bools = uniq_values.all? { |v| v =~ /\A(yes|no)\z/i }
|
446
|
+
values_are_bools = uniq_values.all? { |v| v.is_a?(String) && v =~ /\A(yes|no)\z/i }
|
447
447
|
if values_are_bools
|
448
448
|
# Boolean build settings
|
449
449
|
if uniq_values.count > 1
|
@@ -602,6 +602,11 @@ module Pod
|
|
602
602
|
target.pod_target_srcroot
|
603
603
|
end
|
604
604
|
|
605
|
+
# @return [String]
|
606
|
+
define_build_settings_method :pods_development_language, :build_setting => true do
|
607
|
+
'${DEVELOPMENT_LANGUAGE}'
|
608
|
+
end
|
609
|
+
|
605
610
|
#-------------------------------------------------------------------------#
|
606
611
|
|
607
612
|
# @!group Frameworks
|
@@ -285,7 +285,7 @@ module Pod
|
|
285
285
|
end
|
286
286
|
end
|
287
287
|
|
288
|
-
# @return [
|
288
|
+
# @return [Boolean] Whether or not this target should be built.
|
289
289
|
#
|
290
290
|
# A target should not be built if it has no source files.
|
291
291
|
#
|
@@ -947,7 +947,7 @@ module Pod
|
|
947
947
|
|
948
948
|
# Checks if warnings should be inhibited for this pod.
|
949
949
|
#
|
950
|
-
# @return [
|
950
|
+
# @return [Boolean]
|
951
951
|
#
|
952
952
|
def inhibit_warnings?
|
953
953
|
return @inhibit_warnings if defined? @inhibit_warnings
|
@@ -25,7 +25,7 @@ module Pod
|
|
25
25
|
#
|
26
26
|
attr_accessor :output_io
|
27
27
|
|
28
|
-
# @return [
|
28
|
+
# @return [Boolean] Whether the wrapping of the strings to the width of the
|
29
29
|
# terminal should be disabled.
|
30
30
|
#
|
31
31
|
attr_accessor :disable_wrap
|
@@ -370,7 +370,7 @@ module Pod
|
|
370
370
|
#
|
371
371
|
# @param [String] message The message to print.
|
372
372
|
# @param [Array] actions The actions that the user should take.
|
373
|
-
# @param [
|
373
|
+
# @param [Boolean] verbose_only
|
374
374
|
# Restrict the appearance of the warning to verbose mode only
|
375
375
|
#
|
376
376
|
# return [void]
|
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
|
#
|
@@ -827,8 +830,8 @@ module Pod
|
|
827
830
|
file_accessor.vendored_libraries.each do |lib|
|
828
831
|
basename = File.basename(lib)
|
829
832
|
lib_name = basename.downcase
|
830
|
-
unless lib_name.end_with?('.a') && lib_name.start_with?('lib')
|
831
|
-
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`")
|
832
835
|
end
|
833
836
|
end
|
834
837
|
validate_nonempty_patterns(:vendored_libraries, :warning)
|
@@ -992,7 +995,7 @@ module Pod
|
|
992
995
|
# the deployment target, which should be declared in
|
993
996
|
# the Podfile.
|
994
997
|
#
|
995
|
-
# @param [
|
998
|
+
# @param [Boolean] use_frameworks
|
996
999
|
# whether frameworks should be used for the installation
|
997
1000
|
#
|
998
1001
|
# @param [Array<String>] test_spec_names
|
@@ -1098,7 +1101,6 @@ module Pod
|
|
1098
1101
|
end
|
1099
1102
|
when :watchos
|
1100
1103
|
command += %w(CODE_SIGN_IDENTITY=- -sdk watchsimulator)
|
1101
|
-
command += Fourflusher::SimControl.new.destination(:oldest, 'watchOS', deployment_target)
|
1102
1104
|
when :tvos
|
1103
1105
|
command += %w(CODE_SIGN_IDENTITY=- -sdk appletvsimulator)
|
1104
1106
|
command += Fourflusher::SimControl.new.destination(:oldest, 'tvOS', deployment_target)
|
@@ -1131,7 +1133,7 @@ module Pod
|
|
1131
1133
|
# @param [Platform] platform
|
1132
1134
|
# The platform to check
|
1133
1135
|
#
|
1134
|
-
# @return [
|
1136
|
+
# @return [Boolean] True if the platform is valid
|
1135
1137
|
#
|
1136
1138
|
def valid_platform?(platform)
|
1137
1139
|
VALID_PLATFORMS.any? { |p| p.name == platform.name }
|
@@ -1145,7 +1147,7 @@ module Pod
|
|
1145
1147
|
# @param [Specification] spec
|
1146
1148
|
# The specification which must support the provided platform
|
1147
1149
|
#
|
1148
|
-
# @return [
|
1150
|
+
# @return [Boolean] Whether the platform is supported by the specification
|
1149
1151
|
#
|
1150
1152
|
def supported_platform?(platform, spec)
|
1151
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.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:
|
14
|
+
date: 2023-02-27 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.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.12.0
|
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
|