なんだこれは

はてなダイアリーから移転しました。

はじめてのcocoapods

周回おくれもいいところだけれども、CocoaPodsがあついらしいので、試してみる。

  • Cocoapodsのインストール
  • XcodeでダミーのCocoaPodsSampleを作成して、それに AFNetworkingをいれる

環境は、Mac Elcapitan 10.11.5 です。

cocoapods をインストール

Cocoapods をインストールしてセットアップする。
Cocoapods にはrubyが必要らしいがMacにはデフォルトで含まれているはず。

インストール
sudo gem install cocoapods

これでできるはず、と思うが、意外と時間がかかった。
依存関係をチェックしてダウンロードしているのだろうか?

Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: activesupport-4.2.6.gem (100%)
Successfully installed activesupport-4.2.6
Fetching: nap-1.1.0.gem (100%)
Successfully installed nap-1.1.0
Fetching: fuzzy_match-2.0.4.gem (100%)
Successfully installed fuzzy_match-2.0.4
Fetching: cocoapods-core-1.0.1.gem (100%)
Successfully installed cocoapods-core-1.0.1
Fetching: claide-1.0.0.gem (100%)
Successfully installed claide-1.0.0
Fetching: cocoapods-deintegrate-1.0.0.gem (100%)
Successfully installed cocoapods-deintegrate-1.0.0
Fetching: cocoapods-downloader-1.0.0.gem (100%)
Successfully installed cocoapods-downloader-1.0.0
Fetching: cocoapods-plugins-1.0.0.gem (100%)
Successfully installed cocoapods-plugins-1.0.0
Fetching: cocoapods-search-1.0.0.gem (100%)
Successfully installed cocoapods-search-1.0.0
Fetching: cocoapods-stats-1.0.0.gem (100%)
Successfully installed cocoapods-stats-1.0.0
Fetching: netrc-0.7.8.gem (100%)
Successfully installed netrc-0.7.8
Fetching: cocoapods-trunk-1.0.0.gem (100%)
Successfully installed cocoapods-trunk-1.0.0
Fetching: cocoapods-try-1.0.0.gem (100%)
Successfully installed cocoapods-try-1.0.0
Fetching: molinillo-0.4.5.gem (100%)
Successfully installed molinillo-0.4.5
Fetching: colored-1.2.gem (100%)
Successfully installed colored-1.2
Fetching: xcodeproj-1.1.0.gem (100%)
Successfully installed xcodeproj-1.1.0
Fetching: escape-0.0.4.gem (100%)
Successfully installed escape-0.0.4
Fetching: fourflusher-0.3.1.gem (100%)
Successfully installed fourflusher-0.3.1
Fetching: cocoapods-1.0.1.gem (100%)
Successfully installed cocoapods-1.0.1
Parsing documentation for i18n-0.7.0
Installing ri documentation for i18n-0.7.0
Parsing documentation for thread_safe-0.3.5
Installing ri documentation for thread_safe-0.3.5
Parsing documentation for tzinfo-1.2.2
Installing ri documentation for tzinfo-1.2.2
Parsing documentation for minitest-5.9.0
Installing ri documentation for minitest-5.9.0
Parsing documentation for activesupport-4.2.6
unable to convert "\x84" from ASCII-8BIT to UTF-8 for lib/active_support/values/unicode_tables.dat, skipping
Installing ri documentation for activesupport-4.2.6
Parsing documentation for nap-1.1.0
Installing ri documentation for nap-1.1.0
Parsing documentation for fuzzy_match-2.0.4
Installing ri documentation for fuzzy_match-2.0.4
Parsing documentation for cocoapods-core-1.0.1
Installing ri documentation for cocoapods-core-1.0.1
Parsing documentation for claide-1.0.0
Installing ri documentation for claide-1.0.0
Parsing documentation for cocoapods-deintegrate-1.0.0
Installing ri documentation for cocoapods-deintegrate-1.0.0
Parsing documentation for cocoapods-downloader-1.0.0
Installing ri documentation for cocoapods-downloader-1.0.0
Parsing documentation for cocoapods-plugins-1.0.0
Installing ri documentation for cocoapods-plugins-1.0.0
Parsing documentation for cocoapods-search-1.0.0
Installing ri documentation for cocoapods-search-1.0.0
Parsing documentation for cocoapods-stats-1.0.0
Installing ri documentation for cocoapods-stats-1.0.0
Parsing documentation for netrc-0.7.8
Installing ri documentation for netrc-0.7.8
Parsing documentation for cocoapods-trunk-1.0.0
Installing ri documentation for cocoapods-trunk-1.0.0
Parsing documentation for cocoapods-try-1.0.0
Installing ri documentation for cocoapods-try-1.0.0
Parsing documentation for molinillo-0.4.5
Installing ri documentation for molinillo-0.4.5
Parsing documentation for colored-1.2
Installing ri documentation for colored-1.2
Parsing documentation for xcodeproj-1.1.0
Installing ri documentation for xcodeproj-1.1.0
Parsing documentation for escape-0.0.4
Installing ri documentation for escape-0.0.4
Parsing documentation for fourflusher-0.3.1
Installing ri documentation for fourflusher-0.3.1
Parsing documentation for cocoapods-1.0.1
Installing ri documentation for cocoapods-1.0.1
23 gems installed

23もはいりましたか、rubyはじめてだからかな。

セットアップ

つぎに CocoaPodsのライブラリの情報の準備

pod setup

これも時間がかかるもよう。初回だからかもしれない。
とりあえず、iTunesで音楽でもかけてみよう

ps auxwwによると、バックグラウンドで gitを使用してファイルを取得しているみたい。

fu7mu4 83809 10.8 1.4 2566552 114716 s000 S+ 10:02AM 0:19.19 gi
t index-pack --stdin --fix-thin --keep=fetch-pack 83808 on cronos.local --check-
self-contained-and-connected --pack_header=2,709299
fu7mu4 83806 3.4 0.1 2505328 10524 s000 S+ 10:02AM 0:16.05 gi
t-remote-https origin https://github.com/CocoaPods/Specs.git
_coreaudiod 182 2.5 0.0 2500484 3312 ?? Ss 21 516 9:55.57 /u
sr/sbin/coreaudiod
fu7mu4 344 1.2 0.2 3739384 17196 ?? S 21 516 45:11.71 /A
pplications/Safari.app/Contents/MacOS/Safari -psn_0_45067

2 曲か3曲きいていたら終っていた。

Setting up CocoaPods master repo
Setup completed

Xcodeでプロジェクト作成

適当にXcodeでプロジェクトを作成する。
ここでプロジェクト名は CocoapodSample とした。
CocoaPodsはiOSMacの依存関係解決ツールだから、iOS用のApplecationとした。

Podfile作成

昔のCocoaPodsの記事だと、一から作成しているものが多いが、よくわからないエラーが発生する。

そこで、雛形を使用する方法をとる。

とりあえず、作成したプロジェクトのフォルダに移動

cd ~/Documents/CocoaPodsSample

Podfileの雛形作成する。

pod init

雛形のPodfileを編集する。

# Uncomment this line to define a global platform for your project
platform :ios, '9.0'

target 'CocoaPodsSample' do
# Uncomment this line if you're using Swift or would like to use dynamic frame
works
# use_frameworks!

# Pods for CocoaPodsSample
pod 'AFNetworking', '~> 2.0'

target 'CocoaPodsSampleTests' do
inherit! :search_paths
# Pods for testing
end

target 'CocoaPodsSampleUITests' do
inherit! :search_paths
# Pods for testing
end

end

Podfileによる、依存するライブラリの取得

それから 依存関係を解決する。

pod install

Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.6.3)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `CocoaPodsSample.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total
pod installed.

閉じろといわれているので、Xcodeを閉じる。
それからCocoaPodsSample.xcworkspace を開く(当然Xcodeが起動する。)

以降の開発はこちらを使用する。

open CocoaPodsSample.xcworkspace/

Podfileのターゲットがそのまま反映されて、CocoaPodsSampleはこんな風になる。(Project Navigater)

これ以降は、開発と依存関係のあるライブラリの更新をおこなう。

更新はつぎのように行う。

pod update