English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

IOS CocoaPodsの詳細な使用方法

一、CocoaPodsとは何ですか

1、なぜCocoaPodsが必要なのか
iOS開発を行う際には、SBJson、AFNetworking、Reachabilityなどの第三者のオープンソースライブラリを使用することは避けられません。これらのライブラリを使用する際には、通常以下が必要です:

オープンソースライブラリのソースコードをダウンロードし、プロジェクトに導入します。
プロジェクトにオープンソースライブラリを使用するためのフレームワークを追加します。
オープンソースライブラリとオープンソースライブラリ、およびオープンソースライブラリとプロジェクト間の依存関係を解決し、重複して追加されたフレームワークなどの問題をチェックします。
オープンソースライブラリが更新された場合、プロジェクトで使用しているオープンソースライブラリを削除し、前の3つのステップを再実行する必要があります。その結果、頭が痛くなります。。。
CocoaPodsが登場して以来、これらの複雑な作業は私たちが手作業で行う必要がなくなりました。私たちはわずかな設定を行うだけで、CocoaPodsがすべてを私たちのために処理します!

2、CocoaPodsとは何ですか
CocoaPodsは、私たちが第三者の依存ライブラリを管理するためのツールです。それはライブラリ間の依存関係を解決し、ライブラリのソースコードをダウンロードし、これらの第三者ライブラリと私たちのプロジェクトをXcodeのワークスペースを通じて結びつけ、開発に使用するために作成します。

CocoaPodsを使用するのは、自動化された、集中管理された、直感的な管理を通じて、第三者のオープンソースライブラリを管理するためです。

二、CocoaPodsのインストール

1、インストール
CocoaPodsはRubyで実装されています。それを使用するには、まずRubyの環境が必要です。幸いにもOS XシステムではデフォルトでRubyが動作しているため、以下のコマンドを実行するだけで十分です:

$ sudo gem install cocoapods 

CocoaPodsはRuby gemパッケージの形式でインストールされます。インストールプロセス中に、rakeを更新するかどうかを尋ねられることがあります。yと入力してください。これは、rake gemパッケージがインストール中に詳細なチェックを行い、新しいバージョンが利用可能であれば、先ほどのオプションが表示されるためです。
インストールプロセスが終了したとき、以下のコマンドを実行します:

$ pod setup

エラーが報告されない場合、すべてのインストールが成功したことを意味します!
2、インストール中に発生する可能性のある問題
①installコマンドを実行した後、何時間も反応がない場合
これはRubyのデフォルトのソースがcocoapods.orgを使用しているため、国内でのアクセスが時々問題があるため、オンラインで提案されている解決策の1つは、遠くを淘宝のものに置き換えることです。置き換え方法は以下の通りです:

$ gem sources --remove https://rubygems.org/ 
//反応がある後、以下のコマンドを入力します。 
$ gem sources -a http://ruby.taobao.org/ 

置き換えが成功したかどうかを確認するには、以下のコマンドを実行できます:

$ gem sources -l 

正常な出力は以下の通りです:

*** CURRENT SOURCES *** 
http://ruby.taobao.org/ 

②gemバージョンが古い
gemはRubyライブラリとプログラムを管理する標準のパッケージであり、そのバージョンが古い場合でもインストール失敗の原因になる可能性があります。解決策は自然にgemのアップグレードであり、以下のコマンドを実行します:

$ sudo gem update --system 

③インストールが完了した後にpod setupコマンドを実行するとエラーが発生します:

/ユーザー/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError)
	from /ユーザー/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'
	from /ユーザー/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'
	from /ユーザー/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'

これはパス設定の問題であり、以下のコマンドを実行することで解決できます:

$ rvm use ruby-1.9.3-p448 

この問題を解決します。
3、CocoaPodsのアップグレード
アップグレードは非常に簡単で、インストールコマンドを実行するだけでよいです:

$ sudo gem install cocoapods 

インストール時にsudoを使用した場合、アップグレード時も同様にそのキーワードを使用する必要があります。そうしないと、アップグレードが完了した後にパスが一致しない問題が再び発生します。


三、CocoaPodsの使用
前のすべての作業がスムーズに進んだ場合、次にCocoaPodsの驚異的な機能を体験することができます。以下の手順を経てください:

このプロセスを説明するために、CocoaPodsTestという名前のプロジェクトを作成しました。

1、Podfileの作成
CocoaPodsは、Podfileという名前のファイルから始まります。まずこのファイルを作成する必要があります。個人的にはコマンドラインを使用していますが、以下のように行います:

$ cd /ユーザー/wangzz/デスクトップ/CocoaPodsTest
$ touch Podfile

まず、工程のルートディレクトリに移動し、空のPodfileファイルを作成します。作成が完了したディレクトリ構造は以下の図の通りです:

(PS:Podfileファイルは工程のルートディレクトリに配置しなくても良いですが、少し面倒になります。次の記事で紹介しますので、ご期待ください。)

2、Podfileの編集
必要に応じて、Podfileファイルに使用するサードパーティライブラリを記述できます。SBJson、AFNetworking、Reachabilityの3つのライブラリを例に、私のPodfileの内容は以下の通りです:

platform :ios
pod 'Reachability', '~> 3.0.0'
pod 'SBJson', '~> 4.0.0'
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'

3、インポートコマンドを実行します
準備が完了したら、サードパーティライブラリの導入を開始します:

$ cd /ユーザー/wangzz/デスクトップ/CocoaPodsTest
$ pod install

まず、工程のルートディレクトリに移動し、pod installコマンドを実行します。その結果、CocoaPodsがソースコードのダウンロード、依存関係の設定、必要なフレームワークの導入などを一連の作業を行います。コマンドの実行結果は以下の通りです:

依存関係の解析
依存関係のダウンロード
AFNetworking (2.1.0)
JSONKit (1.5プレ
Reachability (3.0.0)
Podsプロジェクトの生成
クライアントプロジェクトの統合
[!] From now on use `CocoaPodsTest.xcworkspace`.

これにより、pod installコマンドが成功したことを示しています。さらに、工程のルートディレクトリの変更点を確認してみましょう、以下の図をご覧ください:

工程のルートディレクトリには、CocoaPodsTest.xcworkspace、Podfile.lockファイル、Podsディレクトリの3つが追加されました。

(PS:本文の範囲では限られていますが、Podfile.lockファイルは次のシリーズの記事で紹介しますので、ぜひご期待ください。)

pod installコマンドを実行した後、出力された内容の最終行を見てみましょう:

[!] From now on use `CocoaPodsTest.xcworkspace`.

ここから、私たちは`CocoaPodsTest.xcworkspace`ファイルを使用して開発する必要がありますと通知されます。
プロジェクトの変更についていくつか説明する必要があります:

サードパーティーライブラリは、実際のプロジェクトに使用するために静的ライブラリとしてコンパイルされます。


CocoaPodsはすべてのサードパーティーライブラリをターゲットとして組み立て、Podsという名前のプロジェクトを作成します。このプロジェクトは先ほど作成したPodsディレクトリに配置されます。すべてのサードパーティーライブラリプロジェクトは、libPods.aという名前の静的ライブラリとして生成され、私たちのCocoaPodsTestプロジェクトに使用されます。

私たちのプロジェクトとサードパーティーライブラリが配置されているプロジェクトは、新しいworkspaceで管理されます。
プロジェクトとサードパーティーライブラリの管理をより直感的に行うために、CocoaPodsTestプロジェクトとPodsプロジェクトはworkspaceの形式で組織および管理されます。つまり、先ほど見たCocoaPodsTest.xcworkspaceファイルです。

元のプロジェクトの設定が変更されたため、この時点で元のプロジェクトファイルを開いてコンパイルするとエラーが発生します。新しいworkspaceを使用してプロジェクト管理を行う必要があります。

CocoaPodsTest.xcworkspaceを開くと、以下のようになります:

プロジェクトのディレクトリ構造は非常に明確です。

先ほど追加したサードパーティーライブラリのヘッダーファイルをプロジェクトに参照し、コンパイル操作を実行すると、確かに成功しました!
ここまで、CocoaPodsの使用方法についての章は終わりにします。その後、CocoaPodsのより深い部分についてもう少し詳しく紹介する予定ですので、ぜひご期待ください。

第4章、参考文献

1、http://code4app.com/article/cocoapods-install-usage
2、http://cocoapods.org/

おすすめ