Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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