Skip to content

HTTPS clone URL

Subversion checkout URL

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