iOSのライブラリ管理(CocoaPods)

  • 29
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

iOSのライブラリ管理

検証環境

  • Mac OS X El Capitan 10.11
  • XCode 7.0
  • Cocoa Pods 0.38.2

iOSのライブラリ管理で有名なものとして以下の2つのツールがあります。

  • CocoaPods
  • Carthage(カルタゴ/カッセージ)

Cocoapods

デファクトスタンダードなCocoaのライブラリ管理ツールとしてかなり使われているようです。

動作に必要な環境

  • Ruby
  • Command Line Tools(XCode)

インストール方法

gemコマンドでインストールします

gem install cocoapods

ライブラリの追加方法

Swiftのライブラリを利用する場合と、Objective-Cのライブラリを利用する場合で変わりますが、以下の手順はいずれも以下のとおりです。

1.初期化処理

最初に初期化処理を行います。
初期化処理を行うためにはiOSのプロジェクトディレクトリに移動して以下のコマンドを入力します。

pod init

ターゲット毎の設定が記述されたPodfileが生成されます。

Swiftのライブラリを利用する場合の注意点

以下の条件が揃えばSwiftに対応できるようです。
- Deployment Target が 8.0 以上
- Podfile に use_frameworks! の記述を加える

2.Podfileへの追記

ライブラリをインストールするためには初期化処理で作成したPodfileにインストールしたいライブラリの名前を記述します。

以下の例はネットワークライブラリのAlamofireを追加した例です。

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

use_frameworks!

target 'CocoaPodsApp' do
  pod 'Alamofire'
end

以下のようにライブラリのバージョン指定も可能です。

target 'CocoaPodsApp' do
  pod 'Alamofire', '3.0.0'
end
記号 説明
'0.1' バージョン0.1のみ
'> 0.1' バージョン0.1より高い
'>= 0.1' バージョン0.1以上
'< 0.1' バージョン0.1より低い
'<= 0.1' バージョン0.1以下
'~> 0.1.2' 0.1.xの最新バージョン

3.インストールコマンドの実行

Podfileに追加した後は以下のコマンドを入力してライブラリをインストールします。

pod install

pod installで生成されるファイルについて

pod installを実行すると、以下のファイルが作成されます。

  • {$projectname}.xcworkspace
    • CocoaPodsでインストールされたライブラリが組み込まれた状態のワークスペースファイルで、プロジェクトを開くときはこのファイルから開く必要があります。
  • Podfile.lock
    • インストールされた時点のバージョンが記述されたファイルで、環境が違っても同じバージョンのライブラリがインストール出来るようになります。
  • Pods
    • ライブラリ本体が格納されるディレクトリです。

Podfileuse_frameworks!の記述を追加しないで実行すると以下の様なエラーメッセージが表示されます。

[!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt into using it. The Swift Pod being used is: Alamofire

このメッセージをみる限り、Swiftで書かれたライブラリをCocoaPodsのフレームワークとして統合する機能はまだベータ版のようです。

CocoaPodsでインストール可能なライブラリ名は以下のサイトで検索することができます。

https://cocoapods.org/

4.{$projectname}.xcworkspaceから開く

pod installを実行するとワークスペースが作られるので、そちらからプロジェクトを開くようにします。
元からあったxcodeprojから開くとビルド時に以下のようなエラーが出ます。

linker command failed with exit code 1 (use -v to see invocation)

5.Importして使う

これで使いたいところで以下のようにインポートして使う事ができるようになります。

import Alamofire