cocoapods 1.11.0 → 1.12.1

Sign up to get free protection for your applications and to get access to all the features.
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.