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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +162 -2
  3. data/README.md +7 -8
  4. data/lib/cocoapods/command/lib/lint.rb +3 -0
  5. data/lib/cocoapods/command/repo/push.rb +3 -0
  6. data/lib/cocoapods/command/setup.rb +2 -2
  7. data/lib/cocoapods/command/spec/lint.rb +3 -0
  8. data/lib/cocoapods/config.rb +5 -5
  9. data/lib/cocoapods/executable.rb +1 -1
  10. data/lib/cocoapods/external_sources/abstract_external_source.rb +1 -1
  11. data/lib/cocoapods/external_sources/path_source.rb +1 -1
  12. data/lib/cocoapods/gem_version.rb +1 -1
  13. data/lib/cocoapods/generator/acknowledgements.rb +12 -0
  14. data/lib/cocoapods/generator/app_target_helper.rb +1 -1
  15. data/lib/cocoapods/generator/copy_resources_script.rb +1 -1
  16. data/lib/cocoapods/generator/copy_xcframework_script.rb +48 -22
  17. data/lib/cocoapods/generator/embed_frameworks_script.rb +1 -1
  18. data/lib/cocoapods/generator/info_plist_file.rb +1 -1
  19. data/lib/cocoapods/installer/analyzer/analysis_result.rb +3 -3
  20. data/lib/cocoapods/installer/analyzer/pod_variant.rb +1 -1
  21. data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +8 -7
  22. data/lib/cocoapods/installer/analyzer.rb +9 -5
  23. data/lib/cocoapods/installer/base_install_hooks_context.rb +18 -3
  24. data/lib/cocoapods/installer/installation_options.rb +11 -0
  25. data/lib/cocoapods/installer/pod_source_downloader.rb +159 -0
  26. data/lib/cocoapods/installer/pod_source_installer.rb +10 -36
  27. data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +2 -2
  28. data/lib/cocoapods/installer/project_cache/target_cache_key.rb +1 -1
  29. data/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +2 -1
  30. data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +37 -3
  31. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +6 -0
  32. data/lib/cocoapods/installer/xcode/pods_project_generator/project_generator.rb +1 -1
  33. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer_helper.rb +9 -3
  34. data/lib/cocoapods/installer/xcode/pods_project_generator.rb +36 -1
  35. data/lib/cocoapods/installer/xcode/target_validator.rb +1 -1
  36. data/lib/cocoapods/installer.rb +102 -34
  37. data/lib/cocoapods/native_target_extension.rb +1 -1
  38. data/lib/cocoapods/open-uri.rb +1 -1
  39. data/lib/cocoapods/project.rb +8 -8
  40. data/lib/cocoapods/resolver/resolver_specification.rb +1 -1
  41. data/lib/cocoapods/resolver.rb +3 -3
  42. data/lib/cocoapods/sandbox/file_accessor.rb +11 -2
  43. data/lib/cocoapods/sandbox/path_list.rb +1 -1
  44. data/lib/cocoapods/sandbox.rb +48 -12
  45. data/lib/cocoapods/sources_manager.rb +7 -4
  46. data/lib/cocoapods/target/build_settings.rb +9 -2
  47. data/lib/cocoapods/target/pod_target.rb +2 -2
  48. data/lib/cocoapods/user_interface.rb +2 -2
  49. data/lib/cocoapods/validator.rb +31 -20
  50. data/lib/cocoapods/xcode/xcframework/xcframework_slice.rb +12 -6
  51. data/lib/cocoapods/xcode/xcframework.rb +1 -1
  52. metadata +14 -13
@@ -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 [Bool] whether the specification passed validation.
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 [Bool] whether the validation should skip the checks that
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 [Bool] whether the linter should not clean up temporary files
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 [Bool] whether the linter should fail as soon as the first build
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 [Bool] whether the validation should be performed against the root of
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 [Bool] Whether the validator should fail on warnings, or only on errors.
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 [Bool] Whether the validator should validate all subspecs.
235
+ # @return [Boolean] Whether the validator should validate all subspecs.
237
236
  #
238
237
  attr_accessor :no_subspecs
239
238
 
240
- # @return [Bool] Whether the validator should skip building and running tests.
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 [Bool] Whether the validator should run Xcode Static Analysis.
247
+ # @return [Boolean] Whether the validator should run Xcode Static Analysis.
249
248
  #
250
249
  attr_accessor :analyze
251
250
 
252
- # @return [Bool] Whether frameworks should be used for the installation.
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, info_plist_path, app_target, '1.0.0', Platform.new(consumer.platform_name), :appl)
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 static library name format `lib[name].a`")
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 [Bool] use_frameworks
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 [Bool] True if the platform is valid
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 [Bool] Whether the platform is supported by the specification
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 .a of this slice
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
- result = File.basename(path, '.a').gsub(/^lib/, '')
49
- result[0] = result.downcase[0]
50
- result
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.11.0
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: 2021-09-01 00:00:00.000000000 Z
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.11.0
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.11.0
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.4.0
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.4.0
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.4.0
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.4.0
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: '1.0'
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: '1.0'
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: '10.0'
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: '10.0'
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.0.9
549
+ rubygems_version: 3.1.6
549
550
  signing_key:
550
551
  specification_version: 4
551
552
  summary: The Cocoa library package manager.