Skip to content
Newer
Older
100644 357 lines (252 sloc) 11.3 KB
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
1 ## 0.6.0
2
3 A full list of all the changes since 0.5.1 can be found [here][6].
4
5
a3f084b @alloy Add entry to the CHANGELOG regarding link_with.
alloy authored Mar 27, 2012
6 ### Link with specific targets
7
8 CocoaPods can now integrate all the targets specified in your `Podfile`.
9
10 To specify which target, in your Xcode project, a Pods target should be linked
11 with, use the `link_with` method like so:
12
13 ```ruby
14 platform :ios
15
5d756c8 @alloy Styling tweaks.
alloy authored Apr 13, 2012
16 workspace 'MyWorkspace'
a4cd834 @alloy Add notes about specifying the Xcode workspace and projects in a Podf…
alloy authored Apr 13, 2012
17
a3f084b @alloy Add entry to the CHANGELOG regarding link_with.
alloy authored Mar 27, 2012
18 link_with ['MyAppTarget', 'MyOtherAppTarget']
19 dependency 'JSONKit'
20
21 target :test, :exclusive => true do
81d3550 @alloy Actually add the user's build configurations to Pods.xcodeproj.
alloy authored May 6, 2012
22 xcodeproj 'TestProject', 'Test' => :debug
a3f084b @alloy Add entry to the CHANGELOG regarding link_with.
alloy authored Mar 27, 2012
23 link_with 'TestRunnerTarget'
24 dependency 'Kiwi'
25 end
26 ```
27
28 _NOTE: As you can see it can take either one target name, or an array of names._
29
5d756c8 @alloy Styling tweaks.
alloy authored Apr 13, 2012
30 * If no explicit Xcode workspace is specified and only **one** project exists in
a4cd834 @alloy Add notes about specifying the Xcode workspace and projects in a Podf…
alloy authored Apr 13, 2012
31 the same directory as the Podfile, then the name of that project is used as the
32 workspace’s name.
33
5d756c8 @alloy Styling tweaks.
alloy authored Apr 13, 2012
34 * If no explicit Xcode project is specified for a target, it will use the Xcode
a4cd834 @alloy Add notes about specifying the Xcode workspace and projects in a Podf…
alloy authored Apr 13, 2012
35 project of the parent target. If no target specifies an expicit Xcode project
36 and there is only **one** project in the same directory as the Podfile then that
37 project will be used.
38
5d756c8 @alloy Styling tweaks.
alloy authored Apr 13, 2012
39 * If no explicit target is specified, then the Pods target will be linked with
a3f084b @alloy Add entry to the CHANGELOG regarding link_with.
alloy authored Mar 27, 2012
40 the first target in your project. So if you only have one target you do not
41 need to specify the target to link with.
42
43 See [#76](https://github.com/CocoaPods/CocoaPods/issues/76) for more info.
44
81d3550 @alloy Actually add the user's build configurations to Pods.xcodeproj.
alloy authored May 6, 2012
45 Finally, CocoaPods will add build configurations to the Pods project for all
46 configurations in the other projects in the workspace. By default the
47 configurations are based on the `Release` configuration, to base them on the
48 `Debug` configuration you will have to explicitely specify them as can be seen
49 above in the following line:
50
51 ```ruby
52 xcodeproj 'TestProject', 'Test' => :debug
53 ```
54
a3f084b @alloy Add entry to the CHANGELOG regarding link_with.
alloy authored Mar 27, 2012
55
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
56 ### Documentation
57
58 CocoaPods will now generate documentation for every library with the
59 [`appledoc`][5] tool and install it into Xcode’s documentation viewer.
60
61 You can customize the settings used like so:
62
63 ```ruby
64 s.documentation = { :appledoc => ['--product-name', 'My awesome project!'] }
65 ```
66
67 Alternatively, you can specify a URL where an HTML version of the documentation
68 can be found:
69
70 ```ruby
71 s.documentation = { :html => 'http://example.com/docs/index.html' }
72 ```
73
c3bb9a1 @alloy Compare 0.5.1 to HEAD until we actually tag 0.6.0 and explicitely lin…
alloy authored Mar 18, 2012
74 See [#149](https://github.com/CocoaPods/CocoaPods/issues/149) and
a3f084b @alloy Add entry to the CHANGELOG regarding link_with.
alloy authored Mar 27, 2012
75 [#151](https://github.com/CocoaPods/CocoaPods/issues/151) for more info.
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
76
77
2837753 @goonzoid Updated CHANGELOG.md
goonzoid authored May 25, 2012
78 ### Licenses & Documentation
79
80 CocoaPods will now generate two 'Acknowledgements' files for each target specified
81 in your Podfile which contain the License details for each Pod used in that target
82 (assuming details have been specified in the Pod spec).
83
84 There is a markdown file, for general consumption, as well as a property list file
85 that can be added to a settings bundle for an iOS application.
86
87 You don't need to do anything for this to happen, it should just work.
88
89 If you're not happy with the default boilerplate text generated for the title, header
90 and footnotes in the files, it's possible to customise these by overriding the methods
91 that generate the text in your `Podfile` like this:
92
93 ```ruby
94 class ::Pod::Generator::Acknowledgements
95 def header_text
96 "My custom header text"
97 end
98 end
99 ```
100
101 You can even go one step further and customise the text on a per target basis by
102 checking against the target name, like this:
103
104 ```ruby
105 class ::Pod::Generator::Acknowledgements
106 def header_text
107 if @target_definition.label.end_with?("MyTargetName")
108 "Custom header text for MyTargetName"
109 else
110 "Custom header text for other targets"
111 end
112 end
113 end
114 ```
115
116 Finally, here's a list of the methods that are available to override:
117
118 ```ruby
119 header_title
120 header_text
121 footnote_title
122 footnote_text
123 ```
124
125
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
126 ### Introduced two new classes: LocalPod and Sandbox.
127
128 The Sandbox represents the entire contents of the `POD_ROOT` (normally
129 `SOURCE_ROOT/Pods`). A LocalPod represents a pod that has been installed within
130 the Sandbox.
131
132 These two classes can be used as better homes for various pieces of logic
133 currently spread throughout the installation process and provide a better API
134 for working with the contents of this directory.
135
136
bd07c85 @alloy Add note to CHANGELOG.md about Xcodeproj API changes.
alloy authored Mar 24, 2012
137 ### Xcodeproj API
138
139 All Xcodeproj APIs are now in `snake_case`, instead of `camelCase`. If you are
140 manipulating the project from your Podfile's `post_install` hook, or from a
141 podspec, then update these method calls.
142
143
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
144 ### Enhancements
145
3a53857 @fabiopelosin Updated for list command improvements
fabiopelosin authored Mar 26, 2012
146 * [#188](https://github.com/CocoaPods/CocoaPods/pull/188): `list` command now
147 displays the specifications introduced in the master repo if it is given as an
148 option the number of days to take into account.
149
150 * [#188](https://github.com/CocoaPods/CocoaPods/pull/188): Transferred search
151 layout improvements and options to `list` command.
152
0dd703f @fabiopelosin Updated changelog
fabiopelosin authored Mar 23, 2012
153 * [#166](https://github.com/CocoaPods/CocoaPods/issues/166): Added printing
154 of homepage and source to search results.
155
156 * [#177](https://github.com/CocoaPods/CocoaPods/issues/177): Added `--stat`
157 option to display watchers and forks for pods hosted on GitHub.
158
159 * [#177](https://github.com/CocoaPods/CocoaPods/issues/177): Introduced colors
160 and tuned layout of search.
161
162 * [#112](https://github.com/CocoaPods/CocoaPods/issues/112): Introduced `--push`
163 option to `$ pod setup`. It configures the master spec repository to use the private
164 push URL. The change is preserved in future calls to `$ pod setup`.
165
166 * [#153](https://github.com/CocoaPods/CocoaPods/issues/153): It is no longer
167 required to call `$ pod setup`.
168
c3bb9a1 @alloy Compare 0.5.1 to HEAD until we actually tag 0.6.0 and explicitely lin…
alloy authored Mar 18, 2012
169 * [#163](https://github.com/CocoaPods/CocoaPods/issues/163): Print a template
170 for a new ticket when an error occurs.
171
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
172 * Added a new Github-specific downloader that can download repositories as a
173 gzipped tarball.
c3bb9a1 @alloy Compare 0.5.1 to HEAD until we actually tag 0.6.0 and explicitely lin…
alloy authored Mar 18, 2012
174
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
175 * No more global state is kept during resolving of dependencies.
c3bb9a1 @alloy Compare 0.5.1 to HEAD until we actually tag 0.6.0 and explicitely lin…
alloy authored Mar 18, 2012
176
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
177 * Updated Xcodeproj to have a friendlier API.
178
179
180 ### Fixes
181
4c0b3f4 @lukeredpath Added note about set_arc_compatibility_flag to the CHANGELOG
lukeredpath authored Mar 26, 2012
182 * [#142](https://github.com/CocoaPods/CocoaPods/issues/142): Xcode 4.3.2 no longer
183 supports passing the -fobj-arc flag to the linker and will fail to build. The
184 addition of this flag was a workaround for a compiler bug in previous versions.
185 This flag is no longer included by default - to keep using this flag, you need to
186 add `set_arc_compatibility_flag!` to your Podfile.
187
0dd703f @fabiopelosin Updated changelog
fabiopelosin authored Mar 23, 2012
188 * [#183](https://github.com/CocoaPods/CocoaPods/issues/183): Fix for
189 `.DS_Store` file in `~/.cocoapods` prevents `$ pod install` from running.
c3bb9a1 @alloy Compare 0.5.1 to HEAD until we actually tag 0.6.0 and explicitely lin…
alloy authored Mar 18, 2012
190
191 * [#134](https://github.com/CocoaPods/CocoaPods/issues/134): Match
192 `IPHONEOS_DEPLOYMENT_TARGET` build setting with `deployment_target` option in
193 generated Pods project file.
194
195 * [#142](https://github.com/CocoaPods/CocoaPods/issues/): Add `-fobjc-arc` to
196 `OTHER_LD_FLAGS` if _any_ pods require ARC.
197
198 * [#148](https://github.com/CocoaPods/CocoaPods/issues/148): External encoding
199 set to UTF-8 on Ruby 1.9 to fix crash caused by non-ascii characters in pod
200 description.
201
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
202 * Ensure all header search paths are quoted in the xcconfig file.
c3bb9a1 @alloy Compare 0.5.1 to HEAD until we actually tag 0.6.0 and explicitely lin…
alloy authored Mar 18, 2012
203
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
204 * Added weak quoting to `ibtool` input paths.
205
206
207 ---------------------------------------
208
209 ## 0.5.0
210
211 No longer requires MacRuby. Runs on MRI 1.8.7 (OS X system version) and 1.9.3.
212
213 A full list of all the changes since 0.3.0 can be found [here][7].
214
215
216 ---------------------------------------
217
218 ## 0.4.0
219
220 Oops, accidentally skipped this version.
221
222
223 ---------------------------------------
224
7cb4ea0 @alloy Use a h2 for the version in CHANGELOG
alloy authored Nov 13, 2011
225 ## 0.3.0
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 13, 2011
226
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
227 ### Multiple targets
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
228
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
229 Add support for multiple static library targets in the Pods Xcode project with
230 different sets of depedencies. This means that you can create a separate
231 library which contains all dependencies, including extra ones that you only use
232 in, for instance, a debug or test build. [[docs][1]]
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
233
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
234 ```Ruby
235 # This Podfile will build three static libraries:
236 # * libPods.a
237 # * libPods-debug.a
238 # * libPods-test.a
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
239
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
240 # This dependency is included in the `default` target, which generates the
241 # `libPods.a` library, and all non-exclusive targets.
242 dependency 'SSCatalog'
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
243
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
244 target :debug do
245 # This dependency is only included in the `debug` target, which generates
246 # the `libPods-debug.a` library.
247 dependency 'CocoaLumberjack'
248 end
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
249
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
250 target :test, :exclusive => true do
251 # This dependency is *only* included in the `test` target, which generates
252 # the `libPods-test.a` library.
253 dependency 'Kiwi'
254 end
255 ```
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
256
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
257 ### Install libraries from anywhere
4f0d85d @alloy Add CHANGELOG.md
alloy authored Nov 12, 2011
258
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
259 A dependency can take a git url if the repo contains a podspec file in its
260 root, or a podspec can be loaded from a file or HTTP location. If no podspec is
261 available, a specification can be defined inline in the Podfile. [[docs][2]]
262
263 ```Ruby
264 # From a spec repo.
265 dependency 'SSToolkit'
266
267 # Directly from the Pod’s repo (if it contains a podspec).
268 dependency 'SSToolkit', :git => 'https://github.com/samsoffes/sstoolkit.git'
269
270 # Directly from the Pod’s repo (if it contains a podspec) with a specific commit (or tag).
271 dependency 'SSToolkit', :git => 'https://github.com/samsoffes/sstoolkit.git',
272 :commit => '2adcd0f81740d6b0cd4589af98790eee3bd1ae7b'
273
274 # From a podspec that's outside a spec repo _and_ the library’s repo. This can be a file or http url.
275 dependency 'SSToolkit', :podspec => 'https://raw.github.com/gist/1353347/ef1800da9c5f5d267a642b8d3950b41174f2a6d7/SSToolkit-0.1.1.podspec'
276
277 # If no podspec is available anywhere, you can define one right in your Podfile.
278 dependency do |s|
279 s.name = 'SSToolkit'
280 s.version = '0.1.3'
281 s.platform = :ios
282 s.source = { :git => 'https://github.com/samsoffes/sstoolkit.git', :commit => '2adcd0f81740d6b0cd4589af98790eee3bd1ae7b' }
283 s.resources = 'Resources'
284 s.source_files = 'SSToolkit/**/*.{h,m}'
285 s.frameworks = 'QuartzCore', 'CoreGraphics'
286
287 def s.post_install(target)
288 prefix_header = config.project_pods_root + target.prefix_header_filename
289 prefix_header.open('a') do |file|
290 file.puts(%{#ifdef __OBJC__\n#import "SSToolkitDefines.h"\n#endif})
291 end
292 end
293 end
294 ```
295
296 ### Add a `post_install` hook to the Podfile class
297
298 This allows the user to customize, for instance, the generated Xcode project
299 _before_ it’s written to disk. [[docs][3]]
300
301 ```Ruby
302 # Enable garbage collection support for MacRuby applications.
303 post_install do |installer|
304 installer.project.targets.each do |target|
6e4ee6e @lukeredpath Fixes for the latest version of xcodeproj
lukeredpath authored Mar 4, 2012
305 target.build_configurations.each do |config|
306 config.build_settings['GCC_ENABLE_OBJC_GC'] = 'supported'
6cf539a @alloy Include examples in CHANGELOG.
alloy authored Nov 13, 2011
307 end
308 end
309 end
310 ```
311
312 ### Manifest
313
314 Generate a Podfile.lock file next to the Podfile, which contains a manifest of
315 your application’s dependencies and their dependencies.
316
317 ```
318 PODS:
319 - JSONKit (1.4)
320 - LibComponentLogging-Core (1.1.4)
321 - LibComponentLogging-NSLog (1.0.2):
322 - LibComponentLogging-Core (>= 1.1.4)
323 - RestKit-JSON-JSONKit (0.9.3):
324 - JSONKit
325 - RestKit (= 0.9.3)
326 - RestKit-Network (0.9.3):
327 - LibComponentLogging-NSLog
328 - RestKit (= 0.9.3)
329 - RestKit-ObjectMapping (0.9.3):
330 - RestKit (= 0.9.3)
331 - RestKit-Network (= 0.9.3)
332
333 DOWNLOAD_ONLY:
334 - RestKit (0.9.3)
335
336 DEPENDENCIES:
337 - RestKit-JSON-JSONKit
338 - RestKit-ObjectMapping
339 ```
340
341 ### Generate Xcode projects from scratch
342
343 We no longer ship template projects with the gem, but instead generate them
344 programmatically. This code has moved out into its own [Xcodeproj gem][4],
345 allowing you to automate Xcode related tasks.
346
347
348
349
350 [1]: https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/podfile.rb#L151
351 [2]: https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/podfile.rb#L82
352 [3]: https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/podfile.rb#L185
353 [4]: https://github.com/CocoaPods/Xcodeproj
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
354 [5]: https://github.com/tomaz/appledoc
28da91a @alloy Update CHANGELOG to make comparison of all changes upto 0.6.0
alloy authored Jul 2, 2012
355 [6]: https://github.com/CocoaPods/CocoaPods/compare/0.5.1...0.6.0
311e6cc @alloy Update CHANGELOG with changes for 0.6.0 so far.
alloy authored Mar 18, 2012
356 [7]: https://github.com/CocoaPods/CocoaPods/compare/0.3.10...0.5.0
Something went wrong with that request. Please try again.