cocoapods 1.7.5 → 1.8.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +175 -11
  3. data/LICENSE +13 -8
  4. data/README.md +2 -1
  5. data/lib/cocoapods/command/init.rb +18 -16
  6. data/lib/cocoapods/command/install.rb +2 -1
  7. data/lib/cocoapods/command/lib/create.rb +1 -2
  8. data/lib/cocoapods/command/lib/lint.rb +12 -11
  9. data/lib/cocoapods/command/repo/add.rb +2 -2
  10. data/lib/cocoapods/command/repo/list.rb +7 -5
  11. data/lib/cocoapods/command/repo/push.rb +15 -12
  12. data/lib/cocoapods/command/setup.rb +2 -88
  13. data/lib/cocoapods/command/spec/lint.rb +10 -9
  14. data/lib/cocoapods/command/update.rb +5 -4
  15. data/lib/cocoapods/config.rb +9 -8
  16. data/lib/cocoapods/external_sources/path_source.rb +1 -1
  17. data/lib/cocoapods/gem_version.rb +1 -1
  18. data/lib/cocoapods/generator/embed_frameworks_script.rb +1 -1
  19. data/lib/cocoapods/generator/info_plist_file.rb +2 -2
  20. data/lib/cocoapods/installer.rb +32 -12
  21. data/lib/cocoapods/installer/analyzer.rb +132 -97
  22. data/lib/cocoapods/installer/analyzer/target_inspector.rb +6 -8
  23. data/lib/cocoapods/installer/installation_options.rb +4 -0
  24. data/lib/cocoapods/installer/pod_source_installer.rb +17 -1
  25. data/lib/cocoapods/installer/podfile_validator.rb +26 -6
  26. data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +37 -27
  27. data/lib/cocoapods/installer/project_cache/project_cache_version.rb +1 -1
  28. data/lib/cocoapods/installer/project_cache/project_installation_cache.rb +3 -3
  29. data/lib/cocoapods/installer/project_cache/project_metadata_cache.rb +12 -6
  30. data/lib/cocoapods/installer/project_cache/target_cache_key.rb +32 -8
  31. data/lib/cocoapods/installer/project_cache/target_metadata.rb +6 -2
  32. data/lib/cocoapods/installer/sandbox_dir_cleaner.rb +12 -0
  33. data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +1 -1
  34. data/lib/cocoapods/installer/xcode/multi_pods_project_generator.rb +3 -1
  35. data/lib/cocoapods/installer/xcode/pods_project_generator/aggregate_target_dependency_installer.rb +2 -2
  36. data/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +18 -3
  37. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_dependency_installer.rb +53 -11
  38. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +92 -60
  39. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_integrator.rb +66 -50
  40. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb +12 -0
  41. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +6 -2
  42. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer_helper.rb +2 -2
  43. data/lib/cocoapods/installer/xcode/target_validator.rb +30 -14
  44. data/lib/cocoapods/native_target_extension.rb +11 -5
  45. data/lib/cocoapods/open-uri.rb +1 -1
  46. data/lib/cocoapods/project.rb +13 -7
  47. data/lib/cocoapods/resolver.rb +63 -53
  48. data/lib/cocoapods/resolver/lazy_specification.rb +14 -5
  49. data/lib/cocoapods/sandbox.rb +35 -2
  50. data/lib/cocoapods/sandbox/pod_dir_cleaner.rb +3 -4
  51. data/lib/cocoapods/sources_manager.rb +72 -43
  52. data/lib/cocoapods/target.rb +7 -1
  53. data/lib/cocoapods/target/aggregate_target.rb +13 -8
  54. data/lib/cocoapods/target/build_settings.rb +33 -10
  55. data/lib/cocoapods/target/pod_target.rb +114 -30
  56. data/lib/cocoapods/user_interface/error_report.rb +9 -5
  57. data/lib/cocoapods/validator.rb +55 -11
  58. data/lib/cocoapods/version_metadata.rb +14 -1
  59. metadata +6 -7
  60. data/lib/cocoapods/command/spec/env_spec.rb +0 -53
@@ -58,6 +58,10 @@ module Pod
58
58
  #
59
59
  attr_accessor :app_dependent_targets_by_spec_name
60
60
 
61
+ # @return [Hash{String => (Specification,PodTarget)}] tuples of app specs and pod targets by test spec name.
62
+ #
63
+ attr_accessor :test_app_hosts_by_spec_name
64
+
61
65
  # @return [Hash{String => BuildSettings}] the test spec build settings for this target.
62
66
  #
63
67
  attr_reader :test_spec_build_settings
@@ -85,7 +89,6 @@ module Pod
85
89
  super(sandbox, host_requires_frameworks, user_build_configurations, archs, platform, :build_type => build_type)
86
90
  raise "Can't initialize a PodTarget without specs!" if specs.nil? || specs.empty?
87
91
  raise "Can't initialize a PodTarget without TargetDefinition!" if target_definitions.nil? || target_definitions.empty?
88
- raise "Can't initialize a PodTarget with only abstract TargetDefinitions!" if target_definitions.all?(&:abstract?)
89
92
  raise "Can't initialize a PodTarget with an empty string scope suffix!" if scope_suffix == ''
90
93
  @specs = specs.dup.freeze
91
94
  @target_definitions = target_definitions
@@ -99,6 +102,7 @@ module Pod
99
102
  @dependent_targets = []
100
103
  @test_dependent_targets_by_spec_name = {}
101
104
  @app_dependent_targets_by_spec_name = {}
105
+ @test_app_hosts_by_spec_name = {}
102
106
  @build_config_cache = {}
103
107
  @test_spec_build_settings = create_test_build_settings
104
108
  @app_spec_build_settings = create_app_build_settings
@@ -114,22 +118,27 @@ module Pod
114
118
  def scoped(cache = {})
115
119
  target_definitions.map do |target_definition|
116
120
  cache_key = [specs, target_definition]
117
- if cache[cache_key]
118
- cache[cache_key]
119
- else
120
- target_definitions = [target_definition]
121
- target = PodTarget.new(sandbox, host_requires_frameworks, user_build_configurations, archs, platform, specs,
122
- [target_definition], file_accessors, target_definition.label, :build_type => build_type)
123
- target.dependent_targets = dependent_targets.flat_map { |pt| pt.scoped(cache) }.select do |pt|
124
- pt.target_definitions == target_definitions
121
+ cache[cache_key] ||= begin
122
+ target = PodTarget.new(sandbox, host_requires_frameworks, user_build_configurations, archs, platform,
123
+ specs, [target_definition], file_accessors, target_definition.label,
124
+ :build_type => build_type)
125
+ scope_dependent_targets = ->(dependent_targets) do
126
+ dependent_targets.flat_map do |pod_target|
127
+ pod_target.scoped(cache).select { |pt| pt.target_definitions == [target_definition] }
128
+ end
125
129
  end
126
- target.test_dependent_targets_by_spec_name = scope_dependent_pod_targets(cache,
127
- test_dependent_targets_by_spec_name,
128
- target_definitions)
129
- target.app_dependent_targets_by_spec_name = scope_dependent_pod_targets(cache,
130
- app_dependent_targets_by_spec_name,
131
- target_definitions)
132
- cache[cache_key] = target
130
+
131
+ target.dependent_targets = scope_dependent_targets[dependent_targets]
132
+ target.test_dependent_targets_by_spec_name = Hash[test_dependent_targets_by_spec_name.map do |spec_name, test_pod_targets|
133
+ [spec_name, scope_dependent_targets[test_pod_targets]]
134
+ end]
135
+ target.app_dependent_targets_by_spec_name = Hash[app_dependent_targets_by_spec_name.map do |spec_name, app_pod_targets|
136
+ [spec_name, scope_dependent_targets[app_pod_targets]]
137
+ end]
138
+ target.test_app_hosts_by_spec_name = Hash[test_app_hosts_by_spec_name.map do |spec_name, (app_host_spec, app_pod_target)|
139
+ [spec_name, [app_host_spec, app_pod_target.scoped(cache).find { |pt| pt.target_definitions == [target_definition] }]]
140
+ end]
141
+ target
133
142
  end
134
143
  end
135
144
  end
@@ -217,6 +226,16 @@ module Pod
217
226
  target_definitions.first.podfile
218
227
  end
219
228
 
229
+ # @return [String] the project name derived from the target definitions that integrate this pod. If none is
230
+ # specified then the name of the pod is used by default.
231
+ #
232
+ # @note The name is guaranteed to be the same across all target definitions and is validated by the target
233
+ # validator during installation.
234
+ #
235
+ def project_name
236
+ target_definitions.map { |td| td.project_name_for_pod(pod_name) }.compact.first || pod_name
237
+ end
238
+
220
239
  # @return [String] The name to use for the source code module constructed
221
240
  # for this target, and which will be used to import the module in
222
241
  # implementation source files.
@@ -364,7 +383,7 @@ module Pod
364
383
  end
365
384
  FrameworkPaths.new(framework_source, dsym_source, bcsymbolmap_paths)
366
385
  end
367
- if !file_accessor.spec.test_specification? && should_build? && build_as_dynamic_framework?
386
+ if file_accessor.spec.library_specification? && should_build? && build_as_dynamic_framework?
368
387
  frameworks << FrameworkPaths.new(build_product_path('${BUILT_PRODUCTS_DIR}'))
369
388
  end
370
389
  hash[file_accessor.spec.name] = frameworks
@@ -379,8 +398,13 @@ module Pod
379
398
  def resource_paths
380
399
  @resource_paths ||= begin
381
400
  file_accessors.each_with_object({}) do |file_accessor, hash|
382
- resource_paths = file_accessor.resources.map { |res| "${PODS_ROOT}/#{res.relative_path_from(sandbox.project_path.dirname)}" }
383
- resource_paths = [] if file_accessor.spec.non_library_specification? && build_as_framework?
401
+ resource_paths = if file_accessor.spec.non_library_specification? && build_as_framework?
402
+ []
403
+ else
404
+ file_accessor.resources.map do |res|
405
+ "${PODS_ROOT}/#{res.relative_path_from(sandbox.project_path.dirname)}"
406
+ end
407
+ end
384
408
  prefix = Pod::Target::BuildSettings::CONFIGURATION_BUILD_DIR_VARIABLE
385
409
  prefix = configuration_build_dir unless file_accessor.spec.test_specification?
386
410
  resource_bundle_paths = file_accessor.resource_bundles.keys.map { |name| "#{prefix}/#{name.shellescape}.bundle" }
@@ -389,6 +413,16 @@ module Pod
389
413
  end
390
414
  end
391
415
 
416
+ # @param [Specification] spec The non library spec to calculate the deployment target for.
417
+ #
418
+ # @return [String] The deployment target to use for the non library spec. If the spec provides one then that is the
419
+ # one used otherwise the one for the whole target is used.
420
+ #
421
+ def deployment_target_for_non_library_spec(spec)
422
+ raise ArgumentError, 'Must be a non library spec.' unless spec.non_library_specification?
423
+ spec.deployment_target(platform.name)
424
+ end
425
+
392
426
  # Returns the corresponding native product type to use given the test type.
393
427
  # This is primarily used when creating the native targets in order to produce the correct test bundle target
394
428
  # based on the type of tests included.
@@ -402,6 +436,27 @@ module Pod
402
436
  case test_type
403
437
  when :unit
404
438
  :unit_test_bundle
439
+ when :ui
440
+ :ui_test_bundle
441
+ else
442
+ raise ArgumentError, "Unknown test type `#{test_type}`."
443
+ end
444
+ end
445
+
446
+ # Returns the label to use for the given test type.
447
+ # This is used to generate native target names for test specs.
448
+ #
449
+ # @param [Symbol] test_type
450
+ # The test type to map to provided by the test specification DSL.
451
+ #
452
+ # @return [String] The native product type to use.
453
+ #
454
+ def label_for_test_type(test_type)
455
+ case test_type
456
+ when :unit
457
+ 'Unit'
458
+ when :ui
459
+ 'UI'
405
460
  else
406
461
  raise ArgumentError, "Unknown test type `#{test_type}`."
407
462
  end
@@ -439,6 +494,12 @@ module Pod
439
494
  support_files_dir + "#{label}-prefix.pch"
440
495
  end
441
496
 
497
+ # @return [Hash] the additional entries to add to the generated Info.plist
498
+ #
499
+ def info_plist_entries
500
+ root_spec.info_plist
501
+ end
502
+
442
503
  # @param [String] bundle_name
443
504
  # The name of the bundle product, which is given by the +spec+.
444
505
  #
@@ -464,7 +525,7 @@ module Pod
464
525
  # @return [String] The derived name of the test target.
465
526
  #
466
527
  def test_target_label(test_spec)
467
- "#{label}-#{test_spec.test_type.capitalize}-#{subspec_label(test_spec)}"
528
+ "#{label}-#{label_for_test_type(test_spec.test_type)}-#{subspec_label(test_spec)}"
468
529
  end
469
530
 
470
531
  # @param [Specification] app_spec
@@ -476,6 +537,38 @@ module Pod
476
537
  "#{label}-#{subspec_label(app_spec)}"
477
538
  end
478
539
 
540
+ # @param [Specification] test_spec
541
+ # the test spec to use for producing the app host target label.
542
+ #
543
+ # @return [(String,String)] a tuple, where the first item is the PodTarget#label of the pod target that defines the
544
+ # app host, and the second item is the target name of the app host
545
+ #
546
+ def app_host_target_label(test_spec)
547
+ app_spec, app_target = test_app_hosts_by_spec_name[test_spec.name]
548
+
549
+ if app_spec
550
+ [app_target.name, app_target.app_target_label(app_spec)]
551
+ elsif test_spec.consumer(platform).requires_app_host?
552
+ [name, "AppHost-#{label}-#{label_for_test_type(test_spec.test_type)}-Tests"]
553
+ end
554
+ end
555
+
556
+ # @param [Specification] spec
557
+ # the spec to return app host dependencies for
558
+ #
559
+ # @return [Array<PodTarget>] the app host dependent targets for the given spec.
560
+ #
561
+ def app_host_dependent_targets_for_spec(spec)
562
+ return [] unless spec.test_specification? && spec.consumer(platform).test_type == :unit
563
+ app_host_info = test_app_hosts_by_spec_name[spec.name]
564
+ if app_host_info.nil?
565
+ []
566
+ else
567
+ app_spec, app_target = *app_host_info
568
+ app_target.dependent_targets_for_app_spec(app_spec)
569
+ end
570
+ end
571
+
479
572
  def non_library_spec_label(spec)
480
573
  case spec.spec_type
481
574
  when :test then test_target_label(spec)
@@ -677,7 +770,7 @@ module Pod
677
770
  whitelists.first
678
771
  else
679
772
  UI.warn "The pod `#{pod_name}` is linked to different targets " \
680
- "(#{target_definitions.map { |td| "`#{td.label}`" }.to_sentence}), which contain different " \
773
+ "(#{target_definitions.map { |td| "`#{td.name}`" }.to_sentence}), which contain different " \
681
774
  'settings to inhibit warnings. CocoaPods does not currently ' \
682
775
  'support different settings and will fall back to your preference ' \
683
776
  'set in the root target definition.'
@@ -774,15 +867,6 @@ module Pod
774
867
 
775
868
  private
776
869
 
777
- def scope_dependent_pod_targets(cache, dependent_targets, target_definitions)
778
- Hash[dependent_targets.map do |spec_name, pod_targets|
779
- scoped_pod_targets = pod_targets.flat_map do |pod_target|
780
- pod_target.scoped(cache).select { |pt| pt.target_definitions == target_definitions }
781
- end
782
- [spec_name, scoped_pod_targets]
783
- end]
784
- end
785
-
786
870
  def create_build_settings
787
871
  BuildSettings::PodTargetSettings.new(self)
788
872
  end
@@ -171,12 +171,16 @@ EOS
171
171
 
172
172
  def repo_information
173
173
  Config.instance.sources_manager.all.map do |source|
174
- next unless source.type == 'file system'
175
174
  repo = source.repo
176
- Dir.chdir(repo) do
177
- url = `git config --get remote.origin.url 2>&1`.strip
178
- sha = `git rev-parse HEAD 2>&1`.strip
179
- "#{repo.basename} - #{url} @ #{sha}"
175
+ if source.is_a?(Pod::CDNSource)
176
+ "#{repo.basename} - CDN - #{source.url}"
177
+ elsif source.git?
178
+ Dir.chdir(repo) do
179
+ sha = `git rev-parse HEAD 2>&1`.strip
180
+ "#{repo.basename} - git - #{source.url} @ #{sha}"
181
+ end
182
+ else
183
+ "#{repo.basename} - #{source.type}"
180
184
  end
181
185
  end
182
186
  end
@@ -35,7 +35,7 @@ module Pod
35
35
  # @param [Array<String>] source_urls
36
36
  # the Source URLs to use in creating a {Podfile}.
37
37
  #
38
- # @param. [Array<String>] platforms
38
+ # @param [Array<String>] platforms
39
39
  # the platforms to lint.
40
40
  #
41
41
  def initialize(spec_or_path, source_urls, platforms = [])
@@ -239,6 +239,10 @@ module Pod
239
239
  #
240
240
  attr_accessor :skip_tests
241
241
 
242
+ # @return [Bool] Whether the validator should run Xcode Static Analysis.
243
+ #
244
+ attr_accessor :analyze
245
+
242
246
  # @return [Bool] Whether frameworks should be used for the installation.
243
247
  #
244
248
  attr_accessor :use_frameworks
@@ -411,13 +415,18 @@ module Pod
411
415
  end
412
416
  end
413
417
 
418
+ # @return [Consumer] the consumer for the current platform being validated
419
+ #
414
420
  attr_accessor :consumer
421
+
422
+ # @return [String, Nil] the name of the current subspec being validated, or nil if none
423
+ #
415
424
  attr_accessor :subspec_name
416
425
 
417
426
  # Performs validation of a URL
418
427
  #
419
- def validate_url(url)
420
- resp = Pod::HTTP.validate_url(url)
428
+ def validate_url(url, user_agent = nil)
429
+ resp = Pod::HTTP.validate_url(url, user_agent)
421
430
 
422
431
  if !resp
423
432
  warning('url', "There was a problem validating the URL #{url}.", true)
@@ -450,7 +459,7 @@ module Pod
450
459
  # Performs validations related to the `social_media_url` attribute.
451
460
  #
452
461
  def validate_social_media_url(spec)
453
- validate_url(spec.social_media_url) if spec.social_media_url
462
+ validate_url(spec.social_media_url, 'CocoaPods') if spec.social_media_url
454
463
  end
455
464
 
456
465
  # Performs validations related to the `documentation_url` attribute.
@@ -527,10 +536,14 @@ module Pod
527
536
  end
528
537
 
529
538
  def tear_down_validation_environment
530
- validation_dir.rmtree unless no_clean
539
+ clean! unless no_clean
531
540
  Config.instance = @original_config
532
541
  end
533
542
 
543
+ def clean!
544
+ validation_dir.rmtree
545
+ end
546
+
534
547
  def deployment_target
535
548
  deployment_target = spec.subspec_by_name(subspec_name).deployment_target(consumer.platform_name)
536
549
  if consumer.platform_name == :ios && use_frameworks
@@ -591,11 +604,15 @@ module Pod
591
604
  perform_post_install_actions).each { |m| @installer.send(m) }
592
605
 
593
606
  deployment_target = spec.subspec_by_name(subspec_name).deployment_target(consumer.platform_name)
594
- configure_pod_targets(@installer.aggregate_targets, @installer.target_installation_results, deployment_target)
607
+ configure_pod_targets(@installer.target_installation_results)
608
+ validate_dynamic_framework_support(@installer.aggregate_targets, deployment_target)
595
609
  @installer.pods_project.save
596
610
  end
597
611
 
598
- def configure_pod_targets(targets, target_installation_results, deployment_target)
612
+ # @param [Array<Hash{String, TargetInstallationResult}>] target_installation_results
613
+ # The installation results to configure
614
+ #
615
+ def configure_pod_targets(target_installation_results)
599
616
  target_installation_results.first.values.each do |pod_target_installation_result|
600
617
  pod_target = pod_target_installation_result.target
601
618
  native_target = pod_target_installation_result.native_target
@@ -626,9 +643,21 @@ module Pod
626
643
  end
627
644
  end
628
645
  end
629
- targets.each do |target|
630
- if target.pod_targets.any?(&:uses_swift?) && consumer.platform_name == :ios &&
631
- (deployment_target.nil? || Version.new(deployment_target).major < 8)
646
+ end
647
+
648
+ # Produces an error of dynamic frameworks were requested but are not supported by the deployment target
649
+ #
650
+ # @param [Array<AggregateTarget>] aggregate_targets
651
+ # The aggregate targets installed by the installer
652
+ #
653
+ # @param [String,Version] deployment_target
654
+ # The deployment target of the installation
655
+ #
656
+ def validate_dynamic_framework_support(aggregate_targets, deployment_target)
657
+ return unless consumer.platform_name == :ios
658
+ return unless deployment_target.nil? || Version.new(deployment_target).major < 8
659
+ aggregate_targets.each do |target|
660
+ if target.pod_targets.any?(&:uses_swift?)
632
661
  uses_xctest = target.spec_consumers.any? { |c| (c.frameworks + c.weak_frameworks).include? 'XCTest' }
633
662
  error('swift', 'Swift support uses dynamic frameworks and is therefore only supported on iOS > 8.') unless uses_xctest
634
663
  end
@@ -669,7 +698,18 @@ module Pod
669
698
  if scheme.nil?
670
699
  UI.warn "Skipping compilation with `xcodebuild` because target contains no sources.\n".yellow
671
700
  else
672
- output = xcodebuild('build', scheme, 'Release')
701
+ if analyze
702
+ output = xcodebuild('analyze', scheme, 'Release')
703
+ find_output = Executable.execute_command('find', [validation_dir, '-name', '*.html'], false)
704
+ if find_output != ''
705
+ message = 'Static Analysis failed.'
706
+ message += ' You can use `--verbose` for more information.' unless config.verbose?
707
+ message += ' You can use `--no-clean` to save a reproducible buid environment.' unless no_clean
708
+ error('build_pod', message)
709
+ end
710
+ else
711
+ output = xcodebuild('build', scheme, 'Release')
712
+ end
673
713
  parsed_output = parse_xcodebuild_output(output)
674
714
  translate_output_to_linter_messages(parsed_output)
675
715
  end
@@ -1007,6 +1047,10 @@ module Pod
1007
1047
  command += Fourflusher::SimControl.new.destination(:oldest, 'tvOS', deployment_target)
1008
1048
  end
1009
1049
 
1050
+ if analyze
1051
+ command += %w(CLANG_ANALYZER_OUTPUT=html CLANG_ANALYZER_OUTPUT_DIR=analyzer)
1052
+ end
1053
+
1010
1054
  begin
1011
1055
  _xcodebuild(command, true)
1012
1056
  rescue => e
@@ -7,7 +7,20 @@ module Pod
7
7
  end
8
8
 
9
9
  def self.project_cache_version
10
- "#{VersionMetadata.gem_version}.project-cache.#{CACHE_VERSION}"
10
+ [
11
+ gem_version,
12
+ cocoapods_sha,
13
+ 'project-cache',
14
+ CACHE_VERSION,
15
+ ].compact.join('.')
11
16
  end
17
+
18
+ def self.cocoapods_sha
19
+ return unless gemspec = Gem.loaded_specs['cocoapods']
20
+ return unless source = gemspec.source
21
+ return unless source.respond_to?(:revision)
22
+ source.revision
23
+ end
24
+ private_class_method :cocoapods_sha
12
25
  end
13
26
  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.7.5
4
+ version: 1.8.0.beta.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: 2019-07-19 00:00:00.000000000 Z
14
+ date: 2019-08-05 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.7.5
22
+ version: 1.8.0.beta.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.7.5
29
+ version: 1.8.0.beta.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -207,7 +207,7 @@ dependencies:
207
207
  requirements:
208
208
  - - ">="
209
209
  - !ruby/object:Gem::Version
210
- version: 1.10.0
210
+ version: 1.11.1
211
211
  - - "<"
212
212
  - !ruby/object:Gem::Version
213
213
  version: '2.0'
@@ -217,7 +217,7 @@ dependencies:
217
217
  requirements:
218
218
  - - ">="
219
219
  - !ruby/object:Gem::Version
220
- version: 1.10.0
220
+ version: 1.11.1
221
221
  - - "<"
222
222
  - !ruby/object:Gem::Version
223
223
  version: '2.0'
@@ -430,7 +430,6 @@ files:
430
430
  - lib/cocoapods/command/spec/cat.rb
431
431
  - lib/cocoapods/command/spec/create.rb
432
432
  - lib/cocoapods/command/spec/edit.rb
433
- - lib/cocoapods/command/spec/env_spec.rb
434
433
  - lib/cocoapods/command/spec/lint.rb
435
434
  - lib/cocoapods/command/spec/which.rb
436
435
  - lib/cocoapods/command/update.rb