cocoapods 1.5.2 → 1.6.1

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