cocoapods 1.11.3 → 1.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +95 -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/embed_frameworks_script.rb +1 -1
  17. data/lib/cocoapods/generator/info_plist_file.rb +1 -1
  18. data/lib/cocoapods/installer/analyzer/analysis_result.rb +3 -3
  19. data/lib/cocoapods/installer/analyzer/pod_variant.rb +1 -1
  20. data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +6 -6
  21. data/lib/cocoapods/installer/analyzer.rb +8 -4
  22. data/lib/cocoapods/installer/base_install_hooks_context.rb +18 -3
  23. data/lib/cocoapods/installer/installation_options.rb +11 -0
  24. data/lib/cocoapods/installer/pod_source_downloader.rb +159 -0
  25. data/lib/cocoapods/installer/pod_source_installer.rb +10 -36
  26. data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +2 -2
  27. data/lib/cocoapods/installer/project_cache/target_cache_key.rb +1 -1
  28. data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +37 -3
  29. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +6 -0
  30. data/lib/cocoapods/installer/xcode/pods_project_generator/project_generator.rb +1 -1
  31. data/lib/cocoapods/installer/xcode/pods_project_generator.rb +36 -1
  32. data/lib/cocoapods/installer.rb +102 -34
  33. data/lib/cocoapods/native_target_extension.rb +1 -1
  34. data/lib/cocoapods/open-uri.rb +1 -1
  35. data/lib/cocoapods/project.rb +8 -8
  36. data/lib/cocoapods/resolver/resolver_specification.rb +1 -1
  37. data/lib/cocoapods/resolver.rb +3 -3
  38. data/lib/cocoapods/sandbox/file_accessor.rb +1 -1
  39. data/lib/cocoapods/sandbox/path_list.rb +1 -1
  40. data/lib/cocoapods/sandbox.rb +48 -12
  41. data/lib/cocoapods/sources_manager.rb +1 -1
  42. data/lib/cocoapods/target/build_settings.rb +6 -1
  43. data/lib/cocoapods/target/pod_target.rb +2 -2
  44. data/lib/cocoapods/user_interface.rb +2 -2
  45. data/lib/cocoapods/validator.rb +19 -17
  46. data/lib/cocoapods/xcode/xcframework/xcframework_slice.rb +12 -6
  47. data/lib/cocoapods/xcode/xcframework.rb +1 -1
  48. metadata +13 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aae7ed73ff99d6f5553364df8d34c4a26cc9825bd41ee3a59cb7b8d86f290197
4
- data.tar.gz: a439077432771a732ad842f4d9c42c147eeebace664c6a4766bf922a91c8dd6b
3
+ metadata.gz: 7eb2a7cb51265484772462e33da3c268da859b1f18adffdb57d6e6f4c2d378a2
4
+ data.tar.gz: 4d47bdd4efa9026b670884c3b230adc94ffb69e66953945349e0d4a17f9d6018
5
5
  SHA512:
6
- metadata.gz: 61a5beb8911ca4a8fe200421d757187f0c70f3b30ec3b00712dd32627a9749797a6e693c385163844b78f15bee2f7a686f9faac83a5a83713d69c9c1b61574fe
7
- data.tar.gz: a55f30e798efa79abb3f0a7bf103d30cec767661f95b9fe8ef8ff72413bc191b2a5d558f2819ebe6ef7c9f85d029d57dd9bbf1274cfdf34d171399981311b140
6
+ metadata.gz: 16cd5d292991ab0067b0611eb82e8fe6fa8d50bfe6ee36779bb45d5f14101e1b359d8cf6b8ae15aa74f54f6cb36d441429500ec1f8f7909928a15208b568e67a
7
+ data.tar.gz: 22d3de57cb0446e321e740591b5bd9378d3fc0ed4ee1b521b8ec8d33d18608f5a53b75e7086b4e5244221660c6f6f6b4328180d3c7b07a7fbbf562b9b108d58f
data/CHANGELOG.md CHANGED
@@ -4,6 +4,99 @@ To install or update CocoaPods see this [guide](https://guides.cocoapods.org/usi
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.12.1 (2023-04-18)
8
+
9
+ ##### Enhancements
10
+
11
+ * None.
12
+
13
+ ##### Bug Fixes
14
+
15
+ * Xcode 14.3 fix: Pass the -f option when resolving the path to the symlinked source.
16
+ [Chris Vasselli](https://github.com/chrisvasselli)
17
+ [#11828](https://github.com/CocoaPods/CocoaPods/pull/11828)
18
+ [#11808](https://github.com/CocoaPods/CocoaPods/issues/11808)
19
+
20
+ * Fix typo in validation for `--validation-dir` help message
21
+ [Austin Evans](https://github.com/ajevans99)
22
+ [#11857](https://github.com/CocoaPods/CocoaPods/issues/11857)
23
+
24
+ # Xcode 14.3 fix: `pod lib lint` warning generation from main.m.
25
+ [Paul Beusterien](https://github.com/paulb777)
26
+ [#11846](https://github.com/CocoaPods/CocoaPods/issuess/11846)
27
+
28
+ ## 1.12.0 (2023-02-27)
29
+
30
+ ##### Enhancements
31
+
32
+ * Add ability to specify the `validation-dir` during `lint`.
33
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
34
+ [#11773](https://github.com/CocoaPods/CocoaPods/pull/11773)
35
+
36
+ * Correctly handle `.docc` documentation in source_files.
37
+ [haifengkao](https://github.com/haifengkao)
38
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
39
+ [#11438](https://github.com/CocoaPods/CocoaPods/pull/11438)
40
+ [#10885](https://github.com/CocoaPods/CocoaPods/issues/10885)
41
+
42
+ * Re-use the same path lists for pods that share the same root.
43
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
44
+ [#11417](https://github.com/CocoaPods/CocoaPods/pull/11417)
45
+
46
+ * Integrate `parallelizable` scheme DSL option.
47
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
48
+ [#11399](https://github.com/CocoaPods/CocoaPods/pull/11399)
49
+
50
+ * Use `${DEVELOPMENT_LANGUAGE}` as the default `CFBundleDevelopmentRegion` value in any generated `Info.plist`.
51
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
52
+ [#10950](https://github.com/CocoaPods/CocoaPods/pull/10950)
53
+
54
+ * Fix setting `LD_RUNTIME_SEARCH_PATHS` for aggregate targets that include dynamic xcframeworks.
55
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
56
+ [#11158](https://github.com/CocoaPods/CocoaPods/pull/11158)
57
+
58
+ * Add method for formatting licenses for acknowledgements generation.
59
+ [Raihaan Shouhell](https://github.com/res0nance)
60
+ [#10940](https://github.com/CocoaPods/CocoaPods/pull/10940)
61
+
62
+ * Add the ability to download pods in parallel
63
+ [Seth Friedman](https://github.com/sethfri)
64
+ [#11232](https://github.com/CocoaPods/CocoaPods/pull/11232)
65
+
66
+ * Include subprojects in the plugin post-install hook context
67
+ [Eric Amorde](https://github.com/amorde)
68
+ [#11224](https://github.com/CocoaPods/CocoaPods/pull/11224)
69
+
70
+ * Ensure the order of slices passed to the `install_xcframework` script (in the "Copy XCFrameworks" script build phase) is stable.
71
+ [Olivier Halligon](https://github.com/AliSoftware)
72
+ [#11707](https://github.com/CocoaPods/CocoaPods/pull/11707)
73
+
74
+ ##### Bug Fixes
75
+
76
+ * Fix incremental installation when a development pod is deleted.
77
+ [John Szumski](https://github.com/jszumski)
78
+ [#11438](https://github.com/CocoaPods/CocoaPods/pull/11681)
79
+
80
+ * Clean sandbox when a pod switches from remote to local.
81
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
82
+ [#11213](https://github.com/CocoaPods/CocoaPods/pull/11213)
83
+
84
+ * Run post install hooks when "skip Pods.xcodeproj generation" option is set
85
+ [Elton Gao](https://github.com/gyfelton)
86
+ [#11073](https://github.com/CocoaPods/CocoaPods/pull/11073)
87
+
88
+ * Change minimal required version of ruby-macho to 2.3.0.
89
+ [xuzhongping](https://github.com/xuzhongping)
90
+ [#10390](https://github.com/CocoaPods/CocoaPods/issues/10390)
91
+
92
+ * Add .gitignores to the banana and snake fixtures
93
+ [Seth Friedman](https://github.com/sethfri)
94
+ [#11235](https://github.com/CocoaPods/CocoaPods/pull/11235)
95
+
96
+ * Fix publishing podspecs with watchOS support on Xcode 14
97
+ [Justin Martin](https://github.com/justinseanmartin)
98
+ [#11660](https://github.com/CocoaPods/CocoaPods/pull/11660)
99
+
7
100
  ## 1.11.3 (2022-03-16)
8
101
 
9
102
  ##### Enhancements
@@ -7564,7 +7657,7 @@ that can be added to a settings bundle for an iOS application.
7564
7657
  You don't need to do anything for this to happen, it should just work.
7565
7658
 
7566
7659
  If you're not happy with the default boilerplate text generated for the title, header
7567
- and footnotes in the files, it's possible to customise these by overriding the methods
7660
+ and footnotes in the files, it's possible to customize these by overriding the methods
7568
7661
  that generate the text in your `Podfile` like this:
7569
7662
 
7570
7663
  ```ruby
@@ -7575,7 +7668,7 @@ class ::Pod::Generator::Acknowledgements
7575
7668
  end
7576
7669
  ```
7577
7670
 
7578
- You can even go one step further and customise the text on a per target basis by
7671
+ You can even go one step further and customize the text on a per target basis by
7579
7672
  checking against the target name, like this:
7580
7673
 
7581
7674
  ```ruby
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ### CocoaPods: The Cocoa dependency manager
4
4
 
5
- [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/CocoaPods/Specs)](https://github.com/CocoaPods/CocoaPods/actions)
5
+ [![Build Status](https://github.com/CocoaPods/CocoaPods/workflows/Specs/badge.svg)](https://github.com/CocoaPods/CocoaPods/actions/workflows/Specs.yml)
6
6
  [![Gem Version](https://img.shields.io/gem/v/cocoapods)](https://rubygems.org/gems/cocoapods)
7
7
  [![Maintainability](https://api.codeclimate.com/v1/badges/8f0fe544baf2ae1acc2b/maintainability)](https://codeclimate.com/github/CocoaPods/CocoaPods/maintainability)
8
8
  [![Test Coverage](https://api.codeclimate.com/v1/badges/8f0fe544baf2ae1acc2b/test_coverage)](https://codeclimate.com/github/CocoaPods/CocoaPods/test_coverage)
@@ -72,11 +72,10 @@ CocoaPods is composed of the following projects:
72
72
 
73
73
  | Status | Project | Description | Info |
74
74
  | :-------- | :------ | :--- | :--- |
75
- | [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/CocoaPods/Specs)](https://github.com/CocoaPods/CocoaPods/actions) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [guides](https://guides.cocoapods.org)
76
- | [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/Core/Specs)](https://github.com/CocoaPods/Core/actions) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](https://guides.cocoapods.org/contributing/components.html)
77
- | [![Build Status](https://img.shields.io/travis/CocoaPods/cocoapods-downloader/master.svg?style=flat)](https://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | Downloaders for various source types. | [docs](https://www.rubydoc.info/gems/cocoapods-downloader)
78
- | [![Build Status](https://img.shields.io/travis/CocoaPods/Xcodeproj/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](https://www.rubydoc.info/gems/xcodeproj)
79
- | [![Build Status](https://img.shields.io/travis/CocoaPods/CLAide/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](https://www.rubydoc.info/gems/claide)
80
- | [![Build Status](https://img.shields.io/travis/CocoaPods/Molinillo/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Molinillo) | [Molinillo](https://github.com/CocoaPods/Molinillo) | A powerful generic dependency resolver. | [docs](https://www.rubydoc.info/gems/molinillo)
81
- | [![Build Status](https://img.shields.io/travis/CocoaPods/CocoaPods-app/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CocoaPods-app) | [CocoaPods.app](https://github.com/CocoaPods/CocoaPods-app) | A full-featured and standalone installation of CocoaPods. | [info](https://cocoapods.org/app)
75
+ | [![Build Status](https://github.com/CocoaPods/CocoaPods/workflows/Specs/badge.svg)](https://github.com/CocoaPods/CocoaPods/actions/workflows/Specs.yml) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [guides](https://guides.cocoapods.org)
76
+ | [![Build Status](https://github.com/CocoaPods/Core/workflows/Specs/badge.svg)](https://github.com/CocoaPods/Core/actions/workflows/Specs.yml) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](https://guides.cocoapods.org/contributing/components.html)
77
+ | [![Build Status](https://github.com/CocoaPods/cocoapods-downloader/workflows/Specs/badge.svg)](https://github.com/CocoaPods/cocoapods-downloader/actions/workflows/Specs.yml) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | Downloaders for various source types. | [docs](https://www.rubydoc.info/gems/cocoapods-downloader)
78
+ | [![Build Status](https://github.com/CocoaPods/Xcodeproj/workflows/Specs/badge.svg)](https://github.com/CocoaPods/Xcodeproj/actions/workflows/Specs.yml) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](https://www.rubydoc.info/gems/xcodeproj)
79
+ | [![Build Status](https://github.com/CocoaPods/CLAide/workflows/ci/badge.svg)](https://github.com/CocoaPods/CLAide/actions/workflows/ci.yml) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](https://www.rubydoc.info/gems/claide)
80
+ | [![Build Status](https://github.com/CocoaPods/Molinillo/workflows/test/badge.svg)](https://github.com/CocoaPods/Molinillo/actions/workflows/test.yml) | [Molinillo](https://github.com/CocoaPods/Molinillo) | A powerful generic dependency resolver. | [docs](https://www.rubydoc.info/gems/molinillo)
82
81
  | | [Master Repo ](https://github.com/CocoaPods/Specs) | Master repository of specifications. | [guides](https://guides.cocoapods.org/making/specs-and-specs-repo.html)
@@ -38,6 +38,7 @@ module Pod
38
38
  ['--test-specs=test-spec1,test-spec2,etc', 'List of test specs to run'],
39
39
  ['--analyze', 'Validate with the Xcode Static Analysis tool'],
40
40
  ['--configuration=CONFIGURATION', 'Build using the given configuration (defaults to Release)'],
41
+ ['--validation-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
41
42
  ].concat(super)
42
43
  end
43
44
 
@@ -63,6 +64,7 @@ module Pod
63
64
  @analyze = argv.flag?('analyze', false)
64
65
  @podspecs_paths = argv.arguments!
65
66
  @configuration = argv.option('configuration', nil)
67
+ @validation_dir = argv.option('validation-dir', nil)
66
68
  super
67
69
  end
68
70
 
@@ -93,6 +95,7 @@ module Pod
93
95
  validator.include_podspecs = @include_podspecs
94
96
  validator.external_podspecs = @external_podspecs
95
97
  validator.configuration = @configuration
98
+ validator.validation_dir = @validation_dir
96
99
  validator.validate
97
100
 
98
101
  unless @clean
@@ -38,6 +38,7 @@ module Pod
38
38
  'This takes precedence over the Swift versions specified by the spec or a `.swift-version` file'],
39
39
  ['--no-overwrite', 'Disallow pushing that would overwrite an existing spec'],
40
40
  ['--update-sources', 'Make sure sources are up-to-date before a push'],
41
+ ['--validation-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
41
42
  ].concat(super)
42
43
  end
43
44
 
@@ -59,6 +60,7 @@ module Pod
59
60
  @skip_import_validation = argv.flag?('skip-import-validation', false)
60
61
  @skip_tests = argv.flag?('skip-tests', false)
61
62
  @allow_overwrite = argv.flag?('overwrite', true)
63
+ @validation_dir = argv.option('validation-dir', nil)
62
64
  super
63
65
  end
64
66
 
@@ -144,6 +146,7 @@ module Pod
144
146
  validator.swift_version = @swift_version
145
147
  validator.skip_import_validation = @skip_import_validation
146
148
  validator.skip_tests = @skip_tests
149
+ validator.validation_dir = @validation_dir
147
150
  begin
148
151
  validator.validate
149
152
  rescue => e
@@ -3,10 +3,10 @@ require 'fileutils'
3
3
  module Pod
4
4
  class Command
5
5
  class Setup < Command
6
- self.summary = 'Setup the CocoaPods environment'
6
+ self.summary = 'Set up the CocoaPods environment'
7
7
 
8
8
  self.description = <<-DESC
9
- Setup the CocoaPods environment
9
+ Set up the CocoaPods environment
10
10
  DESC
11
11
 
12
12
  def run
@@ -37,6 +37,7 @@ module Pod
37
37
  ['--test-specs=test-spec1,test-spec2,etc', 'List of test specs to run'],
38
38
  ['--analyze', 'Validate with the Xcode Static Analysis tool'],
39
39
  ['--configuration=CONFIGURATION', 'Build using the given configuration (defaults to Release)'],
40
+ ['--validation-dir', 'The directory to use for validation. If none is specified a temporary directory will be used.'],
40
41
  ].concat(super)
41
42
  end
42
43
 
@@ -60,6 +61,7 @@ module Pod
60
61
  @analyze = argv.flag?('analyze', false)
61
62
  @podspecs_paths = argv.arguments!
62
63
  @configuration = argv.option('configuration', nil)
64
+ @validation_dir = argv.option('validation-dir', nil)
63
65
  super
64
66
  end
65
67
 
@@ -84,6 +86,7 @@ module Pod
84
86
  validator.test_specs = @test_specs
85
87
  validator.analyze = @analyze
86
88
  validator.configuration = @configuration
89
+ validator.validation_dir = @validation_dir
87
90
  validator.validate
88
91
  failure_reasons << validator.failure_reason
89
92
 
@@ -49,23 +49,23 @@ module Pod
49
49
 
50
50
  # @!group UI
51
51
 
52
- # @return [Bool] Whether CocoaPods should provide detailed output about the
52
+ # @return [Boolean] Whether CocoaPods should provide detailed output about the
53
53
  # performed actions.
54
54
  #
55
55
  attr_accessor :verbose
56
56
  alias_method :verbose?, :verbose
57
57
 
58
- # @return [Bool] Whether CocoaPods should produce not output.
58
+ # @return [Boolean] Whether CocoaPods should produce not output.
59
59
  #
60
60
  attr_accessor :silent
61
61
  alias_method :silent?, :silent
62
62
 
63
- # @return [Bool] Whether CocoaPods is allowed to run as root.
63
+ # @return [Boolean] Whether CocoaPods is allowed to run as root.
64
64
  #
65
65
  attr_accessor :allow_root
66
66
  alias_method :allow_root?, :allow_root
67
67
 
68
- # @return [Bool] Whether a message should be printed when a new version of
68
+ # @return [Boolean] Whether a message should be printed when a new version of
69
69
  # CocoaPods is available.
70
70
  #
71
71
  attr_accessor :new_version_message
@@ -75,7 +75,7 @@ module Pod
75
75
 
76
76
  # @!group Installation
77
77
 
78
- # @return [Bool] Whether the installer should skip the download cache.
78
+ # @return [Boolean] Whether the installer should skip the download cache.
79
79
  #
80
80
  attr_accessor :skip_download_cache
81
81
  alias_method :skip_download_cache?, :skip_download_cache
@@ -36,7 +36,7 @@ module Pod
36
36
  # @param [Array<#to_s>] command
37
37
  # The command to send to the binary.
38
38
  #
39
- # @param [Bool] raise_on_failure
39
+ # @param [Boolean] raise_on_failure
40
40
  # Whether it should raise if the command fails.
41
41
  #
42
42
  # @raise If the executable could not be located.
@@ -36,7 +36,7 @@ module Pod
36
36
  @can_cache = can_cache
37
37
  end
38
38
 
39
- # @return [Bool] whether an external source source is equal to another
39
+ # @return [Boolean] whether an external source source is equal to another
40
40
  # according to the {#name} and to the {#params}.
41
41
  #
42
42
  def ==(other)
@@ -45,7 +45,7 @@ module Pod
45
45
  path.exist? ? path : Pathname("#{path}.json")
46
46
  end
47
47
 
48
- # @return [Bool]
48
+ # @return [Boolean]
49
49
  #
50
50
  def absolute?(path)
51
51
  Pathname(path).absolute? || path.to_s.start_with?('~')
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.11.3'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.12.1'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -84,10 +84,22 @@ module Pod
84
84
  elsif license_file = file_accessor(spec).license
85
85
  text = IO.read(license_file)
86
86
  end
87
+ text = format_license(text)
87
88
  end
88
89
  text
89
90
  end
90
91
 
92
+ # Convenience method for users to format licenses
93
+ #
94
+ # @param [String] text
95
+ # Unformatted license text
96
+ #
97
+ # @return [String] Formatted license text
98
+ #
99
+ def format_license(text)
100
+ text
101
+ end
102
+
91
103
  protected
92
104
 
93
105
  # Returns the file accessor for the given spec.
@@ -203,7 +203,7 @@ module Pod
203
203
  f << "@import Foundation;\n"
204
204
  f << "@import UIKit;\n" if platform == :ios || platform == :tvos
205
205
  f << "@import Cocoa;\n" if platform == :osx
206
- f << "#{import_statement}int main() {}\n"
206
+ f << "#{import_statement}int main(void) {}\n"
207
207
  end
208
208
  end
209
209
  source_file
@@ -59,7 +59,7 @@ module Pod
59
59
  :tvos => Version.new('9.0'),
60
60
  }
61
61
 
62
- # @return [Bool] Whether the external strings file is supported by the
62
+ # @return [Boolean] Whether the external strings file is supported by the
63
63
  # `ibtool` according to the deployment target of the platform.
64
64
  #
65
65
  def use_external_strings_file?
@@ -83,7 +83,7 @@ install_framework()
83
83
 
84
84
  if [ -L "${source}" ]; then
85
85
  echo "Symlinked..."
86
- source="$(readlink "${source}")"
86
+ source="$(readlink -f "${source}")"
87
87
  fi
88
88
 
89
89
  if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
@@ -112,7 +112,7 @@ module Pod
112
112
  'CFBundleSignature' => '????',
113
113
  'CFBundleVersion' => '${CURRENT_PROJECT_VERSION}',
114
114
  'NSPrincipalClass' => '',
115
- 'CFBundleDevelopmentRegion' => 'en',
115
+ 'CFBundleDevelopmentRegion' => '${PODS_DEVELOPMENT_LANGUAGE}',
116
116
  }
117
117
 
118
118
  info['CFBundleExecutable'] = '${EXECUTABLE_NAME}' if bundle_package_type != :bndl
@@ -59,14 +59,14 @@ module Pod
59
59
  end
60
60
  end
61
61
 
62
- # @return [Bool] Whether an installation should be performed or this
62
+ # @return [Boolean] Whether an installation should be performed or this
63
63
  # CocoaPods project is already up to date.
64
64
  #
65
65
  def needs_install?
66
66
  podfile_needs_install? || sandbox_needs_install?
67
67
  end
68
68
 
69
- # @return [Bool] Whether the podfile has changes respect to the lockfile.
69
+ # @return [Boolean] Whether the podfile has changes respect to the lockfile.
70
70
  #
71
71
  def podfile_needs_install?
72
72
  state = podfile_state
@@ -74,7 +74,7 @@ module Pod
74
74
  needing_install > 0
75
75
  end
76
76
 
77
- # @return [Bool] Whether the sandbox is in synch with the lockfile.
77
+ # @return [Boolean] Whether the sandbox is in synch with the lockfile.
78
78
  #
79
79
  def sandbox_needs_install?
80
80
  state = sandbox_state
@@ -56,7 +56,7 @@ module Pod
56
56
  # @note Non library specs are intentionally not included as part of the equality for pod variants since a pod
57
57
  # variant should not be affected by the number of test nor app specs included.
58
58
  #
59
- # @return [Bool] whether the {PodVariant} is equal to another taking all all their attributes into account
59
+ # @return [Boolean] whether the {PodVariant} is equal to another taking all all their attributes into account
60
60
  #
61
61
  def ==(other)
62
62
  self.class == other.class &&
@@ -40,7 +40,7 @@ module Pod
40
40
  #
41
41
  attr_reader :specs
42
42
 
43
- # @return [Bool] Whether the installation is performed in update mode.
43
+ # @return [Boolean] Whether the installation is performed in update mode.
44
44
  #
45
45
  attr_reader :update_mode
46
46
 
@@ -51,7 +51,7 @@ module Pod
51
51
  # @param [Sandbox] sandbox @see sandbox
52
52
  # @param [Podfile] podfile @see podfile
53
53
  # @param [Array<Specifications>] specs @see specs
54
- # @param [Bool] update_mode @see update_mode
54
+ # @param [Boolean] update_mode @see update_mode
55
55
  #
56
56
  def initialize(sandbox, podfile, specs, update_mode)
57
57
  @sandbox = sandbox
@@ -92,8 +92,8 @@ module Pod
92
92
  # @return [Symbol] The state
93
93
  #
94
94
  def pod_state(pod)
95
- return :added if pod_added?(pod)
96
95
  return :deleted if pod_deleted?(pod)
96
+ return :added if pod_added?(pod)
97
97
  return :changed if pod_changed?(pod)
98
98
  :unchanged
99
99
  end
@@ -105,7 +105,7 @@ module Pod
105
105
  # @param [String] pod
106
106
  # the name of the Pod.
107
107
  #
108
- # @return [Bool] Whether the Pod is added.
108
+ # @return [Boolean] Whether the Pod is added.
109
109
  #
110
110
  def pod_added?(pod)
111
111
  return true if resolved_pods.include?(pod) && !sandbox_pods.include?(pod)
@@ -119,7 +119,7 @@ module Pod
119
119
  # @param [String] pod
120
120
  # the name of the Pod.
121
121
  #
122
- # @return [Bool] Whether the Pod is deleted.
122
+ # @return [Boolean] Whether the Pod is deleted.
123
123
  #
124
124
  def pod_deleted?(pod)
125
125
  return true if !resolved_pods.include?(pod) && sandbox_pods.include?(pod)
@@ -138,7 +138,7 @@ module Pod
138
138
  # @param [String] pod
139
139
  # the name of the Pod.
140
140
  #
141
- # @return [Bool] Whether the Pod is changed.
141
+ # @return [Boolean] Whether the Pod is changed.
142
142
  #
143
143
  def pod_changed?(pod)
144
144
  spec = root_spec(pod)
@@ -43,7 +43,7 @@ module Pod
43
43
  #
44
44
  attr_reader :plugin_sources
45
45
 
46
- # @return [Bool] Whether the analysis has dependencies and thus sources must be configured.
46
+ # @return [Boolean] Whether the analysis has dependencies and thus sources must be configured.
47
47
  #
48
48
  # @note This is used by the `pod lib lint` command to prevent update of specs when not needed.
49
49
  #
@@ -84,6 +84,7 @@ module Pod
84
84
  @installation_options = podfile.installation_options
85
85
  @podfile_dependency_cache = PodfileDependencyCache.from_podfile(podfile)
86
86
  @sources_manager = sources_manager
87
+ @path_lists = {}
87
88
  @result = nil
88
89
  end
89
90
 
@@ -93,7 +94,7 @@ module Pod
93
94
  # compute which specification should be installed. The manifest of the
94
95
  # sandbox returns which specifications are installed.
95
96
  #
96
- # @param [Bool] allow_fetches
97
+ # @param [Boolean] allow_fetches
97
98
  # whether external sources may be fetched
98
99
  #
99
100
  # @return [AnalysisResult]
@@ -193,7 +194,7 @@ module Pod
193
194
 
194
195
  # @!group Configuration
195
196
 
196
- # @return [Bool] Whether the version of the dependencies which did not
197
+ # @return [Boolean] Whether the version of the dependencies which did not
197
198
  # change in the Podfile should be locked.
198
199
  #
199
200
  def update_mode?
@@ -830,7 +831,10 @@ module Pod
830
831
  def create_file_accessors(specs, platform)
831
832
  name = specs.first.name
832
833
  pod_root = sandbox.pod_dir(name)
833
- path_list = Sandbox::PathList.new(pod_root)
834
+ path_list = @path_lists.fetch(pod_root) do |root|
835
+ path_list = Sandbox::PathList.new(root)
836
+ @path_lists[root] = path_list
837
+ end
834
838
  specs.map do |spec|
835
839
  Sandbox::FileAccessor.new(path_list, spec.consumer(platform))
836
840
  end
@@ -16,6 +16,10 @@ module Pod
16
16
  #
17
17
  attr_reader :pods_project
18
18
 
19
+ # @return [Array<Pod::Project>] the subprojects nested under pods_project.
20
+ #
21
+ attr_reader :pod_target_subprojects
22
+
19
23
  # @return [Array<UmbrellaTargetDescription>] The list of
20
24
  # the CocoaPods umbrella targets generated by the installer.
21
25
  #
@@ -26,12 +30,14 @@ module Pod
26
30
  # @param [Sandbox] sandbox see #sandbox
27
31
  # @param [String] sandbox_root see #sandbox_root
28
32
  # @param [Xcodeproj::Project] pods_project see #pods_project
33
+ # @param [Array<Xcodeproj::Project>] pod_target_subprojects see #pod_target_subprojects
29
34
  # @param [Array<UmbrellaTargetDescription>] umbrella_targets see #umbrella_targets
30
35
  #
31
- def initialize(sandbox, sandbox_root, pods_project, umbrella_targets)
36
+ def initialize(sandbox, sandbox_root, pods_project, pod_target_subprojects, umbrella_targets)
32
37
  @sandbox = sandbox
33
38
  @sandbox_root = sandbox_root
34
39
  @pods_project = pods_project
40
+ @pod_target_subprojects = pod_target_subprojects
35
41
  @umbrella_targets = umbrella_targets
36
42
  end
37
43
 
@@ -43,6 +49,9 @@ module Pod
43
49
  # @param [Project] pods_project
44
50
  # The pods project.
45
51
  #
52
+ # @param [Project] pod_target_subprojects
53
+ # The subprojects nested under pods_project.
54
+ #
46
55
  # @param [Array<AggregateTarget>] aggregate_targets
47
56
  # The aggregate targets, which will been presented by an adequate
48
57
  # {UmbrellaTargetDescription} in the generated context.
@@ -50,7 +59,7 @@ module Pod
50
59
  # @return [HooksContext] Convenience class method to generate the
51
60
  # static context.
52
61
  #
53
- def self.generate(sandbox, pods_project, aggregate_targets)
62
+ def self.generate(sandbox, pods_project, pod_target_subprojects, aggregate_targets)
54
63
  umbrella_targets_descriptions = aggregate_targets.map do |umbrella|
55
64
  user_project = umbrella.user_project
56
65
  user_targets = umbrella.user_targets
@@ -61,7 +70,13 @@ module Pod
61
70
  UmbrellaTargetDescription.new(user_project, user_targets, specs, platform_name, platform_deployment_target, cocoapods_target_label)
62
71
  end
63
72
 
64
- new(sandbox, sandbox.root.to_s, pods_project, umbrella_targets_descriptions)
73
+ new(sandbox, sandbox.root.to_s, pods_project, pod_target_subprojects, umbrella_targets_descriptions)
74
+ end
75
+
76
+ # @return [Array<Pod::Project>] all projects generated during installation
77
+ #
78
+ def generated_projects
79
+ [pods_project] + pod_target_subprojects
65
80
  end
66
81
 
67
82
  # Pure data class which describes an umbrella target.
@@ -190,6 +190,17 @@ module Pod
190
190
  # Whether to skip generating the `Pods.xcodeproj` and perform only dependency resolution and downloading.
191
191
  #
192
192
  option :skip_pods_project_generation, false
193
+
194
+ # Whether to download pods in parallel before beginning the installation process
195
+ #
196
+ option :parallel_pod_downloads, false
197
+
198
+ # The size of the thread pool to use when downloading pods in parallel. Only takes effect when
199
+ # `parallel_pod_downloads` is `true`.
200
+ #
201
+ # Default: 40
202
+ #
203
+ option(:parallel_pod_download_thread_pool_size, 40, :boolean => false)
193
204
  end
194
205
  end
195
206
  end