cocoapods 1.5.2 → 1.6.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 (81) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +365 -1
  3. data/bin/pod +1 -1
  4. data/lib/cocoapods/command/cache/clean.rb +1 -1
  5. data/lib/cocoapods/command/init.rb +4 -2
  6. data/lib/cocoapods/command/install.rb +7 -0
  7. data/lib/cocoapods/command/lib/lint.rb +8 -1
  8. data/lib/cocoapods/command/outdated.rb +4 -9
  9. data/lib/cocoapods/command/repo/add.rb +1 -1
  10. data/lib/cocoapods/command/repo/list.rb +1 -1
  11. data/lib/cocoapods/command/repo/push.rb +17 -12
  12. data/lib/cocoapods/command/repo/remove.rb +1 -1
  13. data/lib/cocoapods/command/repo/update.rb +1 -1
  14. data/lib/cocoapods/command/setup.rb +1 -1
  15. data/lib/cocoapods/command/spec/create.rb +39 -39
  16. data/lib/cocoapods/command/spec/lint.rb +8 -1
  17. data/lib/cocoapods/command.rb +3 -1
  18. data/lib/cocoapods/config.rb +13 -2
  19. data/lib/cocoapods/downloader/cache.rb +1 -1
  20. data/lib/cocoapods/executable.rb +3 -3
  21. data/lib/cocoapods/external_sources/abstract_external_source.rb +23 -13
  22. data/lib/cocoapods/external_sources.rb +7 -4
  23. data/lib/cocoapods/gem_version.rb +1 -1
  24. data/lib/cocoapods/generator/acknowledgements/markdown.rb +6 -0
  25. data/lib/cocoapods/generator/acknowledgements/plist.rb +13 -2
  26. data/lib/cocoapods/generator/app_target_helper.rb +141 -17
  27. data/lib/cocoapods/generator/copy_resources_script.rb +14 -3
  28. data/lib/cocoapods/generator/dummy_source.rb +14 -5
  29. data/lib/cocoapods/generator/embed_frameworks_script.rb +37 -20
  30. data/lib/cocoapods/generator/header.rb +1 -1
  31. data/lib/cocoapods/generator/info_plist_file.rb +12 -4
  32. data/lib/cocoapods/generator/prefix_header.rb +2 -2
  33. data/lib/cocoapods/hooks_manager.rb +28 -17
  34. data/lib/cocoapods/installer/analyzer/analysis_result.rb +52 -22
  35. data/lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb +14 -6
  36. data/lib/cocoapods/installer/analyzer/pod_variant.rb +4 -5
  37. data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +3 -14
  38. data/lib/cocoapods/installer/analyzer/specs_state.rb +28 -4
  39. data/lib/cocoapods/installer/analyzer/target_inspection_result.rb +27 -14
  40. data/lib/cocoapods/installer/analyzer/target_inspector.rb +17 -11
  41. data/lib/cocoapods/installer/analyzer.rb +391 -284
  42. data/lib/cocoapods/installer/installation_options.rb +2 -0
  43. data/lib/cocoapods/installer/pod_source_installer.rb +31 -43
  44. data/lib/cocoapods/installer/post_install_hooks_context.rb +72 -47
  45. data/lib/cocoapods/installer/pre_install_hooks_context.rb +22 -13
  46. data/lib/cocoapods/installer/source_provider_hooks_context.rb +3 -1
  47. data/lib/cocoapods/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +44 -11
  48. data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +69 -29
  49. data/lib/cocoapods/installer/user_project_integrator.rb +6 -4
  50. data/lib/cocoapods/installer/xcode/pods_project_generator/aggregate_target_installer.rb +25 -16
  51. data/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +104 -0
  52. data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +23 -50
  53. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +296 -177
  54. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_integrator.rb +51 -33
  55. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb +93 -0
  56. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +62 -69
  57. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer_helper.rb +72 -0
  58. data/lib/cocoapods/installer/xcode/pods_project_generator.rb +130 -122
  59. data/lib/cocoapods/installer/xcode/target_validator.rb +15 -9
  60. data/lib/cocoapods/installer.rb +140 -63
  61. data/lib/cocoapods/project.rb +16 -14
  62. data/lib/cocoapods/resolver/resolver_specification.rb +41 -0
  63. data/lib/cocoapods/resolver.rb +79 -98
  64. data/lib/cocoapods/sandbox/file_accessor.rb +11 -6
  65. data/lib/cocoapods/sandbox/headers_store.rb +9 -8
  66. data/lib/cocoapods/sandbox/path_list.rb +5 -8
  67. data/lib/cocoapods/sandbox.rb +31 -43
  68. data/lib/cocoapods/sources_manager.rb +1 -1
  69. data/lib/cocoapods/target/aggregate_target.rb +143 -85
  70. data/lib/cocoapods/target/build_settings.rb +1124 -0
  71. data/lib/cocoapods/target/framework_paths.rb +36 -0
  72. data/lib/cocoapods/target/pod_target.rb +198 -295
  73. data/lib/cocoapods/target.rb +92 -37
  74. data/lib/cocoapods/user_interface.rb +5 -0
  75. data/lib/cocoapods/validator.rb +149 -44
  76. data/lib/cocoapods.rb +0 -1
  77. metadata +31 -23
  78. data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +0 -260
  79. data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +0 -87
  80. data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +0 -558
  81. data/lib/cocoapods/generator/xcconfig.rb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: '0538f666ff652a383411cd5c3448e0ce028dc830ed2a159c008f6dacac3eb4d6'
4
- data.tar.gz: afc9d2c684bff3ca4b3a4b49d18a84f3ad8c8b45a72a01fdd62e883465f9dac2
2
+ SHA1:
3
+ metadata.gz: 4baf26d05e0c46b55d9cb9a3bbbfac22ce644ad6
4
+ data.tar.gz: 7b272c0880a797863ddedcb3a366e8caff81d9a2
5
5
  SHA512:
6
- metadata.gz: 5f7792c323359d4ac642397c39f1834bcac25271510a706e79bc148a492bf4afe81b6e1e13c6581baae9afe42939838adcd340b002670cd4865b59939468ecff
7
- data.tar.gz: 4c11e434c9d003eb26e339d44e8733314977d00c2637c3dcfbfd132836d3aaf6044aa0abae6f5fe3bc5a15daa272a54ba1b88db5d46b00fd9cfc2ce73d575703
6
+ metadata.gz: 925931a7175d72dc814560d5e667c5257dd84b338c0522e688f56bd5ae0885dc5cb93521be8d01e9be87bb837d486316ad2e485042ec0c583fe7faac9b0eefb1
7
+ data.tar.gz: d82a6a5edd79cd940b743a59ba4832eeb19bee0370ae3d16bc36725ab140f467e652d748cb42da5dfeb452af3119997f72e9fdc8ab6b66adbca9a2423149c275
data/CHANGELOG.md CHANGED
@@ -4,6 +4,371 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.6.1 (2019-02-21)
8
+
9
+ ##### Enhancements
10
+
11
+ * None.
12
+
13
+ ##### Bug Fixes
14
+
15
+ * Properly link system frameworks and weak frameworks into dynamic framework targets.
16
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
17
+ [#8493](https://github.com/CocoaPods/CocoaPods/issues/8493)
18
+
19
+
20
+ ## 1.6.0 (2019-02-07)
21
+
22
+ ##### Enhancements
23
+
24
+ * None.
25
+
26
+ ##### Bug Fixes
27
+
28
+ * None.
29
+
30
+
31
+ ## 1.6.0.rc.2 (2019-01-29)
32
+
33
+ ##### Enhancements
34
+
35
+ * None.
36
+
37
+ ##### Bug Fixes
38
+
39
+ * Fix linking of vendored libraries and frameworks in pod targets
40
+ [Wes Campaigne](https://github.com/Westacular)
41
+ [#8453](https://github.com/CocoaPods/CocoaPods/issues/8453)
42
+
43
+ ## 1.6.0.rc.1 (2019-01-25)
44
+
45
+ ##### Enhancements
46
+
47
+ * Generate Info.plist files for static frameworks
48
+ [Paul Beusterien](https://github.com/paulb777)
49
+ [#8287](https://github.com/CocoaPods/CocoaPods/issues/8287)
50
+
51
+ ##### Bug Fixes
52
+
53
+ * Do not force 64-bit architectures on Xcode 10
54
+ [Eric Amorde](https://github.com/amorde)
55
+ [#8242](https://github.com/CocoaPods/CocoaPods/issues/8242)
56
+
57
+ * Fix running test specs that support iOS 8.
58
+ [Jeff Kelley](https://github.com/SlaunchaMan)
59
+ [#8286](https://github.com/CocoaPods/CocoaPods/pull/8286)
60
+
61
+ * Remove linker flags that linked dynamic libraries & frameworks from the build
62
+ settings for pod targets.
63
+ [Samuel Giddins](https://github.com/segiddins)
64
+ [#8314](https://github.com/CocoaPods/CocoaPods/pull/8314)
65
+
66
+ ## 1.6.0.beta.2 (2018-10-17)
67
+
68
+ ##### Enhancements
69
+
70
+ * Remove contraction from docs to fix rendering on the website.
71
+ [stevemoser](https://github.com/stevemoser)
72
+ [#8131](https://github.com/CocoaPods/CocoaPods/pull/8131)
73
+
74
+ * Provide an installation option to preserve folder structure
75
+ [dacaiguoguogmail](https://github.com/dacaiguoguogmail)
76
+ [#8097](https://github.com/CocoaPods/CocoaPods/pull/8097)
77
+
78
+ * Nests test specs host apps inside that Pod's directory for cleaner project
79
+ navigators.
80
+ [Derek Ostrander](https://github.com/dostrander)
81
+
82
+ * mark_ruby_file_ref add indent width and tab width config
83
+ [dacaiguoguogmail](https://github.com/dacaiguoguogmail)
84
+
85
+ * Print an error that will show up in Xcode's issue navigator upon unexpected
86
+ failures in the copy resources and embed frameworks script phases.
87
+ [Samuel Giddins](https://github.com/segiddins)
88
+
89
+ * Validate that all generated `PBXNativeTarget`s contain source files to build,
90
+ so specs (including test specs) with no source files won't fail at runtime
91
+ due to the lack of a generated executable.
92
+ [Samuel Giddins](https://github.com/segiddins)
93
+
94
+ * Print better promote message when unable to find a specification.
95
+ [Xinyu Zhao](https://github.com/X140Yu)
96
+ [#8064](https://github.com/CocoaPods/CocoaPods/issues/8064)
97
+
98
+ * Silence warnings in headers for Pods with `inhibit_warnings => true`
99
+ [Guillaume Algis](https://github.com/guillaumealgis)
100
+ [#6401](https://github.com/CocoaPods/CocoaPods/pull/6401)
101
+
102
+ * When resolving a locked dependency, source the spec from the locked
103
+ specs repository.
104
+ [Samuel Giddins](https://github.com/segiddins)
105
+
106
+ * Slightly improve resolution speed for Podfiles that contain multiple targets
107
+ with the same dependencies.
108
+ [Samuel Giddins]
109
+
110
+ ##### Bug Fixes
111
+
112
+ * Don't generate unencrypted source warnings for localhost.
113
+ [Paul Beusterien](https://github.com/paulb777)
114
+ [#8156](https://github.com/CocoaPods/CocoaPods/issues/8156)
115
+
116
+ * Fix linting when armv7 is included but i386 isn't.
117
+ [Paul Beusterien](https://github.com/paulb777)
118
+ [#8129](https://github.com/CocoaPods/CocoaPods/issues/8129)
119
+
120
+ * Provide an installation option to disable usage of input/output paths.
121
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
122
+ [#8073](https://github.com/CocoaPods/CocoaPods/issues/8073)
123
+
124
+ * Scope prefix header setting to each test spec.
125
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
126
+ [#8046](https://github.com/CocoaPods/CocoaPods/pull/8046)
127
+
128
+ * Don't add incomplete subspec subset targets for extensions.
129
+ [Paul Beusterien](https://github.com/paulb777)
130
+ [#7850](https://github.com/CocoaPods/CocoaPods/issues/7850)
131
+
132
+ * Clear out `MACH_O_TYPE` for unit test bundles that use static frameworks.
133
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
134
+ [#8031](https://github.com/CocoaPods/CocoaPods/issues/8031)
135
+
136
+ * Fix `weak_frameworks` missing regression.
137
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
138
+ [#7872](https://github.com/CocoaPods/CocoaPods/issues/7872)
139
+
140
+ * Fix line spacing for Swift error message.
141
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
142
+ [#8024](https://github.com/CocoaPods/CocoaPods/pull/8024)
143
+
144
+ * Improve validation for test_specs on specific platforms
145
+ [icecrystal23](https://github.com/icecrystal23)
146
+ [#7009](https://github.com/CocoaPods/CocoaPods/issues/7009)
147
+
148
+ * Fix running `pod outdated` with externally-sourced pods.
149
+ [Samuel Giddins](https://github.com/segiddins)
150
+ [#8025](https://github.com/CocoaPods/CocoaPods/issues/8025)
151
+
152
+ * Remove codesign suppression
153
+ [Jaehong Kang](https://github.com/sinoru)
154
+ [#7606](https://github.com/CocoaPods/CocoaPods/issues/7606)
155
+
156
+
157
+ ## 1.6.0.beta.1 (2018-08-16)
158
+
159
+ ##### Enhancements
160
+
161
+ * Every test spec will have its own xctest bundle.
162
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
163
+ [Jenn Kaplan](https://github.com/jkap)
164
+ [#7908](https://github.com/CocoaPods/CocoaPods/pull/7908)
165
+
166
+ * Generate a separate app host per pod.
167
+ [Samuel Giddins](https://github.com/segiddins)
168
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
169
+ [#8005](https://github.com/CocoaPods/CocoaPods/pull/8005)
170
+
171
+ * Add default launch screen storyboard to test app hosts.
172
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
173
+ [#7971](https://github.com/CocoaPods/CocoaPods/pull/7971)
174
+
175
+ * Always display downloader error message.
176
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
177
+ [#7625](https://github.com/CocoaPods/CocoaPods/issues/7625)
178
+
179
+ * Warn instead of error when linting if `public_header_files` or
180
+ `private_header_files` do not match any files.
181
+ [Eric Amorde](https://github.com/amorde)
182
+ [#7427](https://github.com/CocoaPods/CocoaPods/issues/7427)
183
+
184
+ * Add `--platforms` parameter to `pod spec lint` and `pod lib lint` to specify
185
+ which platforms to lint.
186
+ [Eric Amorde](https://github.com/amorde)
187
+ [#7783](https://github.com/CocoaPods/CocoaPods/issues/7783)
188
+
189
+ * Warn if the `git://` protocol is used as the source of a pod.
190
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
191
+ [#7705](https://github.com/CocoaPods/CocoaPods/issues/7705)
192
+
193
+ * Remove all xcode project state from target objects,
194
+ improving project generation performance.
195
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
196
+ [#7610](https://github.com/CocoaPods/CocoaPods/pull/7610)
197
+
198
+ * Improve performance of Pods project generation by skipping native targets
199
+ for which dependent targets have already been added.
200
+ [Jacek Suliga](https://github.com/jmkk)
201
+
202
+ * Refactor build settings generation to perform much better on large projects.
203
+ [Samuel Giddins](https://github.com/segiddins)
204
+
205
+ * Make sure the temporary directory used to download a pod is removed,
206
+ even if an error is raised.
207
+ [augustorsouza](https://github.com/augustorsouza)
208
+
209
+ * Avoid unlocking sources on every `pod install` when there are no
210
+ plugin post-install hooks for performance reasons.
211
+ [Samuel Giddins](https://github.com/segiddins)
212
+
213
+ * Change shell script relative paths to use `${PODS_ROOT}` instead of
214
+ `${SRCROOT}/Pods`.
215
+ [Whirlwind](https://github.com/Whirlwind)
216
+ [#7878](https://github.com/CocoaPods/CocoaPods/pull/7878)
217
+
218
+ * Set the path of the Pods group in the user project.
219
+ [Whirlwind](https://github.com/Whirlwind)
220
+ [#7886](https://github.com/CocoaPods/CocoaPods/pull/7886)
221
+ [#6194](https://github.com/CocoaPods/CocoaPods/issues/6194)
222
+
223
+ * Add a `--deployment` flag to `pod install` that errors if there are any
224
+ changes to the Podfile or Lockfile.
225
+ [Samuel Giddins](https://github.com/segiddins)
226
+
227
+ * Add `--use-modular-headers` flag to the `pod spec lint`, `pod lib lint`,
228
+ and `pod repo push` commands.
229
+ [Eric Amorde](https://github.com/amorde)
230
+ [#7683](https://github.com/CocoaPods/CocoaPods/issues/7683)
231
+
232
+ ##### Bug Fixes
233
+
234
+ * Scope embedded pods to their host targets by their configuration.
235
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
236
+ [#8011](https://github.com/CocoaPods/CocoaPods/issues/8011)
237
+
238
+ * Set the `SWIFT_VERSION` on resource bundle targets that contain compiled
239
+ sources and use Swift.
240
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
241
+ [#7950](https://github.com/CocoaPods/CocoaPods/issues/7950)
242
+
243
+ * Do not ignore `--no-overwrite` parameter if a commit message is specified.
244
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
245
+ [#7926](https://github.com/CocoaPods/CocoaPods/issues/7926)
246
+
247
+ * Generate `-ObjC` in `OTHER_LDFLAGS` for apps with static frameworks.
248
+ [Paul Beusterien](https://github.com/paulb777)
249
+ [#7946](https://github.com/CocoaPods/CocoaPods/pull/7946)
250
+
251
+ * Do not display that a source was changed if it uses different casing.
252
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
253
+ [#7883](https://github.com/CocoaPods/CocoaPods/pull/7883)
254
+
255
+ * Set `CURRENT_PROJECT_VERSION` for generated app host targets.
256
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
257
+ [#7825](https://github.com/CocoaPods/CocoaPods/pull/7825)
258
+
259
+ * Properly follow symlinks within macOS universal frameworks.
260
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
261
+ [#7587](https://github.com/CocoaPods/CocoaPods/issues/7587)
262
+
263
+ * Validator adds a Swift file if any of the pod targets use Swift.
264
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
265
+ [#7738](https://github.com/CocoaPods/CocoaPods/issues/7738)
266
+
267
+ * Fix `INFOPLIST_FILE` being overridden when set in a podspec's `pod_target_xcconfig`.
268
+ [Eric Amorde](https://github.com/amorde)
269
+ [#7530](https://github.com/CocoaPods/CocoaPods/issues/7530)
270
+
271
+ * Raise an error if user target `SWIFT_VERSION` is missing.
272
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
273
+ [#7770](https://github.com/CocoaPods/CocoaPods/issues/7770)
274
+
275
+ * Fix the umbrella header import path when `header_dir` is specified in the
276
+ podspec and building a static library with modular headers enabled.
277
+ [chuganzy](https://github.com/chuganzy)
278
+ [#7724](https://github.com/CocoaPods/CocoaPods/pull/7724)
279
+
280
+ * Do not symlink headers that belong to test specs.
281
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
282
+ [#7762](https://github.com/CocoaPods/CocoaPods/pull/7762)
283
+
284
+ * Do not build pod target if it only contains script phases.
285
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
286
+ [#7746](https://github.com/CocoaPods/CocoaPods/issues/7746)
287
+
288
+ * Do not try to integrate uncreated test native targets.
289
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
290
+ [#7394](https://github.com/CocoaPods/CocoaPods/issues/7394)
291
+
292
+ * Attempt to parse `SWIFT_VERSION` from xcconfig during target inspection.
293
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
294
+ [#7731](https://github.com/CocoaPods/CocoaPods/issues/7731)
295
+
296
+ * Do not crash when creating build settings for a missing user build configuration.
297
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
298
+ [#7698](https://github.com/CocoaPods/CocoaPods/pull/7698)
299
+
300
+ * Do not overwrite App host info plist when using multiple test specs.
301
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
302
+ [#7695](https://github.com/CocoaPods/CocoaPods/pull/7695)
303
+
304
+ * Do not include test dependencies' input and output paths.
305
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
306
+ [#7688](https://github.com/CocoaPods/CocoaPods/pull/7688)
307
+
308
+ * Skip test file accessors for `uses_swift?` and `should_build?` methods.
309
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
310
+ [#7671](https://github.com/CocoaPods/CocoaPods/pull/7671)
311
+
312
+ * When integrating a vendored framework while building pods as static
313
+ libraries, public headers will be found via `FRAMEWORK_SEARCH_PATHS`
314
+ instead of via the sandbox headers store.
315
+ [Samuel Giddins](https://github.com/segiddins)
316
+
317
+ * Improve performance of grouping pods by configuration.
318
+ [Samuel Giddins](https://github.com/segiddins)
319
+
320
+ * Stop linking frameworks to static libraries to avoid warnings with the new build system.
321
+ [Samuel Giddins](https://github.com/segiddins)
322
+ [#7570](https://github.com/CocoaPods/CocoaPods/pull/7570)
323
+
324
+ * Allow `EXPANDED_CODE_SIGN_IDENTITY` to be unset.
325
+ [Keith Smiley](https://github.com/keith)
326
+ [#7708](https://github.com/CocoaPods/CocoaPods/issues/7708)
327
+
328
+ * Running `pod install` with static library modules no longer causes pods to
329
+ be recompiled.
330
+ [Samuel Giddins](https://github.com/segiddins)
331
+
332
+ * A pod built as a static library linked into multiple targets will only build
333
+ as a module when all of the targets it is linked into have opted into it.
334
+ [Samuel Giddins](https://github.com/segiddins)
335
+
336
+ * Use `CP_HOME_DIR` as the base for all default directories.
337
+ [mcfedr](https://github.com/mcfedr)
338
+ [#7917](https://github.com/CocoaPods/CocoaPods/pull/7917)
339
+
340
+ * Exclude 32-bit architectures from Pod targets when the deployment target is
341
+ iOS 11.0 or higher.
342
+ [Eric Amorde](https://github.com/amorde)
343
+ [#7148](https://github.com/CocoaPods/CocoaPods/issues/7148)
344
+
345
+ * Fail gracefully when the analyzer has dependencies to fetch, but has been
346
+ told not to fetch them.
347
+ [Samuel Giddins](https://github.com/segiddins)
348
+
349
+ * Don't generate framework or resource scripts if they will not be used.
350
+ [Eric Amorde](https://github.com/amorde)
351
+
352
+ * Fix a crash when loading the `macho` gem in certain environments.
353
+ [Eric Amorde](https://github.com/amorde)
354
+ [#7867](https://github.com/CocoaPods/CocoaPods/issues/7867)
355
+
356
+
357
+ ## 1.5.3 (2018-05-25)
358
+
359
+ ##### Enhancements
360
+
361
+ * None.
362
+
363
+ ##### Bug Fixes
364
+
365
+ * Fix compatibility with RubyGems 2.7.7.
366
+ [Samuel Giddins](https://github.com/segiddins)
367
+ [#7765](https://github.com/CocoaPods/CocoaPods/issues/7765)
368
+ [#7766](https://github.com/CocoaPods/CocoaPods/issues/7766)
369
+ [#7763](https://github.com/CocoaPods/CocoaPods/issues/7763)
370
+
371
+
7
372
  ## 1.5.2 (2018-05-09)
8
373
 
9
374
  ##### Enhancements
@@ -64,7 +429,6 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
64
429
  [Maxime Le Moine](https://github.com/MaximeLM)
65
430
  [#7590](https://github.com/CocoaPods/CocoaPods/issues/7590)
66
431
 
67
-
68
432
  ## 1.5.0 (2018-04-04)
69
433
 
70
434
  ##### Enhancements
data/bin/pod CHANGED
@@ -35,7 +35,7 @@ STDOUT.sync = true if ENV['CP_STDOUT_SYNC'] == 'TRUE'
35
35
 
36
36
  require 'cocoapods'
37
37
 
38
- if profile_filename = ENV['PROFILE']
38
+ if profile_filename = ENV['COCOAPODS_PROFILE']
39
39
  require 'ruby-prof'
40
40
  reporter =
41
41
  case (profile_extname = File.extname(profile_filename))
@@ -10,7 +10,7 @@ module Pod
10
10
  If there is multiple cache for various versions of the requested pod,
11
11
  you will be asked which one to clean. Use `--all` to clean them all.
12
12
 
13
- If you don't give a pod `NAME`, you need to specify the `--all`
13
+ If you do not give a pod `NAME`, you need to specify the `--all`
14
14
  flag (this is to avoid cleaning all the cache by mistake).
15
15
  DESC
16
16
 
@@ -14,7 +14,7 @@ module Pod
14
14
  It is possible to specify a list of dependencies which will be used by
15
15
  the template in the `Podfile.default` (normal targets) `Podfile.test`
16
16
  (test targets) files which should be stored in the
17
- `~/.cocoapods/templates` folder.
17
+ `#{Config.instance.templates_dir}` folder.
18
18
  DESC
19
19
  self.arguments = [
20
20
  CLAide::Argument.new('XCODEPROJ', :false),
@@ -84,7 +84,9 @@ module Pod
84
84
  def target_module(app, tests)
85
85
  target_module = "\ntarget '#{app.name.gsub(/'/, "\\\\\'")}' do\n"
86
86
 
87
- target_module << if app.resolved_build_setting('SWIFT_OPTIMIZATION_LEVEL').values.any?
87
+ app_uses_swift = app.source_build_phase.files_references.any? { |fr| File.extname(fr.path) == '.swift' }
88
+
89
+ target_module << if app_uses_swift
88
90
  <<-RUBY
89
91
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
90
92
  use_frameworks!
@@ -30,14 +30,21 @@ module Pod
30
30
  def self.options
31
31
  [
32
32
  ['--repo-update', 'Force running `pod repo update` before install'],
33
+ ['--deployment', 'Disallow any changes to the Podfile or the Podfile.lock during installation'],
33
34
  ].concat(super).reject { |(name, _)| name == '--no-repo-update' }
34
35
  end
35
36
 
37
+ def initialize(argv)
38
+ super
39
+ @deployment = argv.flag?('deployment', false)
40
+ end
41
+
36
42
  def run
37
43
  verify_podfile_exists!
38
44
  installer = installer_for_config
39
45
  installer.repo_update = repo_update?(:default => false)
40
46
  installer.update = false
47
+ installer.deployment = @deployment
41
48
  installer.install!
42
49
  end
43
50
  end
@@ -17,9 +17,13 @@ module Pod
17
17
  ['--no-clean', 'Lint leaves the build directory intact for inspection'],
18
18
  ['--fail-fast', 'Lint stops on the first failing platform or subspec'],
19
19
  ['--use-libraries', 'Lint uses static libraries to install the spec'],
20
+ ['--use-modular-headers', 'Lint uses modular headers during installation'],
20
21
  ['--sources=https://github.com/artsy/Specs,master', 'The sources from which to pull dependent pods ' \
21
22
  '(defaults to https://github.com/CocoaPods/Specs.git). ' \
22
23
  'Multiple sources must be comma-delimited.'],
24
+ ['--platforms=ios,macos', 'Lint against specific platforms' \
25
+ '(defaults to all platforms supported by the podspec).' \
26
+ 'Multiple platforms must be comma-delimited'],
23
27
  ['--private', 'Lint skips checks that apply only to public specs'],
24
28
  ['--swift-version=VERSION', 'The SWIFT_VERSION that should be used to lint the spec. ' \
25
29
  'This takes precedence over a .swift-version file.'],
@@ -36,7 +40,9 @@ module Pod
36
40
  @subspecs = argv.flag?('subspecs', true)
37
41
  @only_subspec = argv.option('subspec')
38
42
  @use_frameworks = !argv.flag?('use-libraries')
43
+ @use_modular_headers = argv.flag?('use-modular-headers')
39
44
  @source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
45
+ @platforms = argv.option('platforms', '').split(',')
40
46
  @private = argv.flag?('private', false)
41
47
  @swift_version = argv.option('swift-version', nil)
42
48
  @skip_import_validation = argv.flag?('skip-import-validation', false)
@@ -52,7 +58,7 @@ module Pod
52
58
  def run
53
59
  UI.puts
54
60
  podspecs_to_lint.each do |podspec|
55
- validator = Validator.new(podspec, @source_urls)
61
+ validator = Validator.new(podspec, @source_urls, @platforms)
56
62
  validator.local = true
57
63
  validator.quick = @quick
58
64
  validator.no_clean = !@clean
@@ -61,6 +67,7 @@ module Pod
61
67
  validator.no_subspecs = !@subspecs || @only_subspec
62
68
  validator.only_subspec = @only_subspec
63
69
  validator.use_frameworks = @use_frameworks
70
+ validator.use_modular_headers = @use_modular_headers
64
71
  validator.ignore_public_only_results = @private
65
72
  validator.swift_version = @swift_version
66
73
  validator.skip_import_validation = @skip_import_validation
@@ -13,21 +13,16 @@ module Pod
13
13
 
14
14
  # Run the command
15
15
  #
16
- # @todo the command reports new dependencies added to the Podfile as
17
- # updates.
18
- #
19
- # @todo fix.
20
- #
21
16
  def run
22
17
  if updates.empty?
23
18
  UI.puts 'No pod updates are available.'.yellow
24
19
  else
25
20
  UI.section 'The color indicates what happens when you run `pod update`' do
26
- UI.puts "#{'<green>'.green}\t\t - Will be updated to the newest version"
21
+ UI.puts "#{'<green>'.green}\t - Will be updated to the newest version"
27
22
  UI.puts "#{'<blue>'.blue}\t - Will be updated, but not to the newest version because of specified version in Podfile"
28
- UI.puts "#{'<red>'.red}\t\t - Will not be updated because of specified version in Podfile"
23
+ UI.puts "#{'<red>'.red}\t - Will not be updated because of specified version in Podfile"
29
24
  UI.puts ''
30
- end
25
+ end if ansi_output?
31
26
  UI.section 'The following pod updates are available:' do
32
27
  updates.each do |(name, from_version, matching_version, to_version)|
33
28
  color = :blue
@@ -90,7 +85,7 @@ module Pod
90
85
  pods = []
91
86
  UI.titled_section('Analyzing dependencies') do
92
87
  pods = Installer::Analyzer.new(config.sandbox, config.podfile).
93
- analyze(false).
88
+ analyze(:outdated).
94
89
  specs_by_target.values.flatten.uniq
95
90
  end
96
91
  pods
@@ -5,7 +5,7 @@ module Pod
5
5
  self.summary = 'Add a spec repo'
6
6
 
7
7
  self.description = <<-DESC
8
- Clones `URL` in the local spec-repos directory at `~/.cocoapods/repos/`. The
8
+ Clones `URL` in the local spec-repos directory at `#{Config.instance.repos_dir}`. The
9
9
  remote can later be referred to by `NAME`.
10
10
  DESC
11
11
 
@@ -5,7 +5,7 @@ module Pod
5
5
  self.summary = 'List repos'
6
6
 
7
7
  self.description = <<-DESC
8
- List the repos from the local spec-repos directory at `~/.cocoapods/repos/.`
8
+ List the repos from the local spec-repos directory at `#{Config.instance.repos_dir}`.
9
9
  DESC
10
10
 
11
11
  def self.options
@@ -11,7 +11,7 @@ module Pod
11
11
  self.description = <<-DESC
12
12
  Validates `NAME.podspec` or `*.podspec` in the current working dir,
13
13
  creates a directory and version folder for the pod in the local copy of
14
- `REPO` (~/.cocoapods/repos/[REPO]), copies the podspec file into the
14
+ `REPO` (#{Config.instance.repos_dir}/[REPO]), copies the podspec file into the
15
15
  version directory, and finally it pushes `REPO` to its remote.
16
16
  DESC
17
17
 
@@ -24,6 +24,7 @@ module Pod
24
24
  [
25
25
  ['--allow-warnings', 'Allows pushing even if there are warnings'],
26
26
  ['--use-libraries', 'Linter uses static libraries to install the spec'],
27
+ ['--use-modular-headers', 'Lint uses modular headers during installation'],
27
28
  ['--sources=https://github.com/artsy/Specs,master', 'The sources from which to pull dependent pods ' \
28
29
  '(defaults to all available repos). ' \
29
30
  'Multiple sources must be comma-delimited.'],
@@ -48,6 +49,7 @@ module Pod
48
49
  @source_urls = argv.option('sources', config.sources_manager.all.map(&:url).join(',')).split(',')
49
50
  @podspec = argv.shift_argument
50
51
  @use_frameworks = !argv.flag?('use-libraries')
52
+ @use_modular_headers = argv.flag?('use-modular-headers', false)
51
53
  @private = argv.flag?('private', true)
52
54
  @message = argv.option('commit-message')
53
55
  @commit_message = argv.flag?('commit-message', false)
@@ -131,6 +133,7 @@ module Pod
131
133
  validator = Validator.new(podspec, @source_urls)
132
134
  validator.allow_warnings = @allow_warnings
133
135
  validator.use_frameworks = @use_frameworks
136
+ validator.use_modular_headers = @use_modular_headers
134
137
  validator.ignore_public_only_results = @private
135
138
  validator.swift_version = @swift_version
136
139
  validator.skip_import_validation = @skip_import_validation
@@ -182,18 +185,20 @@ module Pod
182
185
  podspec_files.each do |spec_file|
183
186
  spec = Pod::Specification.from_file(spec_file)
184
187
  output_path = @source.pod_path(spec.name) + spec.version.to_s
185
- if @message && !@message.empty?
186
- message = @message
187
- elsif output_path.exist?
188
- unless @allow_overwrite
189
- raise Informative, "#{spec} already exists and overwriting has been disabled."
190
- end
191
- message = "[Fix] #{spec}"
192
- elsif output_path.dirname.directory?
193
- message = "[Update] #{spec}"
194
- else
195
- message = "[Add] #{spec}"
188
+ message = if @message && !@message.empty?
189
+ @message
190
+ elsif output_path.exist?
191
+ "[Fix] #{spec}"
192
+ elsif output_path.dirname.directory?
193
+ "[Update] #{spec}"
194
+ else
195
+ "[Add] #{spec}"
196
+ end
197
+
198
+ if output_path.exist? && !@allow_overwrite
199
+ raise Informative, "#{spec} already exists and overwriting has been disabled."
196
200
  end
201
+
197
202
  FileUtils.mkdir_p(output_path)
198
203
 
199
204
  if @use_json
@@ -5,7 +5,7 @@ module Pod
5
5
  self.summary = 'Remove a spec repo'
6
6
 
7
7
  self.description = <<-DESC
8
- Deletes the remote named `NAME` from the local spec-repos directory at `~/.cocoapods/repos/.`
8
+ Deletes the remote named `NAME` from the local spec-repos directory at `#{Config.instance.repos_dir}`.
9
9
  DESC
10
10
 
11
11
  self.arguments = [
@@ -6,7 +6,7 @@ module Pod
6
6
 
7
7
  self.description = <<-DESC
8
8
  Updates the local clone of the spec-repo `NAME`. If `NAME` is omitted
9
- this will update all spec-repos in `~/.cocoapods/repos`.
9
+ this will update all spec-repos in `#{Config.instance.repos_dir}`.
10
10
  DESC
11
11
 
12
12
  self.arguments = [
@@ -6,7 +6,7 @@ module Pod
6
6
  self.summary = 'Setup the CocoaPods environment'
7
7
 
8
8
  self.description = <<-DESC
9
- Creates a directory at `~/.cocoapods/repos` which will hold your spec-repos.
9
+ Creates a directory at `#{Config.instance.repos_dir}` which will hold your spec-repos.
10
10
  This is where it will create a clone of the public `master` spec-repo from:
11
11
 
12
12
  https://github.com/CocoaPods/Specs