猿でも解るCocoaPodsの使い方!movajeでインストールできない場合の原因や対処方法も!

CocoaPodsとは、SwiftとObjective-CによるCocoaプロジェクトで使用可能な、自分の作ろうとしているアプリケーションで、外部ライブラリ(Pod)を利用する際に必要な依存性の解決を自動的に行ってくれるソフトウェアです。

わかりやすい例で例えると、ある料理を作ろうとしているときに、プロの料理人が料理器具の準備から食材の下ごしらえまでを全部やってくれる、といった感じでしょうか。あくまでもメインで料理を行うのはあなた自身です。CocoaPodsを使ったからと言って簡単にアプリが完成するわけではありませんが、アプリの基盤を整える時短には良い方法だと考えています。

iOSやOSXアプリケーション向けであるため、WindowsやLinuxでは使用できません。

CocoaPodsをお手持ちのmacにインストールすることから始めましょう。手順を示します。https://cocoapods.org本家サイトには最新の情報がありますので、必ず確認をしてください。

目次

CocoaPodsのインストール

ターミナルからCocoaPodsをインストール(エラー回避も)

ターミナルを起動しましょう。「アプリケーション>ユーティリティ>ターミナル」にあります。ターミナルとは、1行毎に命令を打っていくコマンドラインツールを使用するための端末(ターミナル)プログラムです。

Windowsで言うところのコマンドプロンプト(cmd.exe)に当たります。CocoaPodsを使用する際には必ずターミナルを使うことになると思いますので、このようにDockへ追加しておくと起動が楽ですよ。

Dockへ追加するためには、アプリのアイコンを「control + クリック」(右クリックもしくは副ボタンのクリックとも呼ぶ)し、「オプション」>「Dockへ追加」にて追加することが出来ます。

ドックへ追加されたターミナル

このターミナルで下記のコマンドを打ちます。※$の後から打ちます。

$ sudo gem install cocoapods -n /usr/local/bin

コマンドの最後にはenterキーを押してください。

※追記 macOS High sierra以降では「-n /usr/local/bin」の追加が必要になります。

追加していない場合、エラーになりますので注意してくださいね!

gem install -nの-nオプションはバイナリファイルを置く場所を指定するということ。

 

そしてパスワードを聞かれますので、現在のログインパスワードを入力しenterキーを押すと暫くしてインストールが完了します。(管理者権限を持っているアカウントでログインしている必要があります)

ターミナルにてCocoaPodsをインストール
ターミナルにてCocoaPodsをインストール

以上にてCocoaPodsをお使いのMacにインストールできました。次はXcodeで使うための設定ファイルであるPodfileの準備をしましょう。

Podfileの準備

CocoaPodsはPodfileと呼ばれるテキストファイルに入れたいPodの情報を記載することで使うことが出来ます。まずはPodfileを用意しましょう。ファイル名は「Podfile」です。拡張子は不要です。ファイルの配置場所はXcodeプロジェクトファイルのルートフォルダ(hogehoge.xcodeprojファイルがある場所)です。

Podfileの中身

Podfileの中身はこのようなテキストファイルになっています。

platform :ios, '8.0'
use_frameworks!

target 'MyApp' do
  pod 'AFNetworking', '~> 2.6'
  pod 'ORStackView', '~> 3.0'
  pod 'SwiftyJSON', '~> 2.3'
end

Xcodeで新規emptyファイルから作成し、0から全て手で記述してもよいのですが、より簡便で確実な方法を取りましょう。

Pod initコマンドで自動的にPodfileを生成する

ターミナルでXcodeプロジェクトのあるフォルダに移動します。ターミナルに「cd」と打ち込んだあと、1つだけスペースをいれ、目的のフォルダをドラッグアンドドロップする事でパスが入力されます。ちなみにcdとはchange directoryの略で、コマンドラインでディレクトリ(フォルダ)を移動する際に使うコマンドです。「cd 目的ディレクトリ」というように使用します。

Xcodeプロジェクトのディレクトリに移動します。

ドラッグアンドドロップでそのフォルダ(ディレクトリ)までのパスが自動的に入力されます。

ディレクトリまでのパスが入力された。

ここでenterを押すとそのフォルダに移動します。

$ ls

とタイプしenterを押すとディレクトリの中身が表示されます。

$ pod init

とタイプすることでXcodeプロジェクトから自動的にPodfileが生成されます。生成されたPodfileの中身はこのようになっています。

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

target 'ChozaiCalcLegacy' do
 # Comment this line if you're not using Swift and don't want to use dynamic frameworks
 use_frameworks!

 # Pods for ChozaiCalcLegacy

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

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

end

このファイルの中にはターゲット毎にPodfileを指定できる状態になっています。この内部の9行目にある# Pods for 〜〜〜の行の直下にインストールしたいPodsを書いていきます。

記載後の部分を抜粋します。

# Pods for ChozaiCalcLegacy

 pod 'AFNetworking', '~> 2.6'
 pod 'ORStackView', '~> 3.0'
 pod 'SwiftyJSON', '~> 2.3'

ここでは3つのPodsをインストールするように設定しています。なお、どのようなPodsが存在するかを調べるには、CocoaPodsの公式サイトを使いましょう。この記事の下部で紹介いたします。

pod installコマンドでPodfileを元にpodをインストール

Podfileを記述した後はインストール作業になります。そのまま続けてコマンドを打ちます。

$ pod install

このコマンドにてXcodeプロジェクトフォルダに対して変更が加えられ、Podがインストールされます。

ターミナルでのPodfileの作成とインストール手順

これでCocoaPodsによるPodのプロジェクトへのインストールが完了しました。各Podの動作に必要なframewrokなどをプロジェクトに追加してくれています。

なお、Podのバージョンが上がった時などにPodをアップデートしたい場合はpod updateと打つことでプロジェクト内部のPodのバージョンアップを行うことが出来ます。ただし、必ずプロジェクトのバックアップを取ってから行うようにしてください。Podのアップデートが原因でバグを起こすことがあります。

プロジェクト名.xcworkspaceファイルから起動する

プロジェクト名.xcworkspaceという白いアイコンのファイルからプロジェクトを開くことが出来ます。xcworkspaceからプロジェクトを開くことでPodを使うことが出来たり、Podfileを編集したり出来ます。導入されたPodで有れば使うことが出来るようになります。

#import <Reachability/Reachability.h>

と.mファイルに書けばすぐにReachabilityが使えるようになります。

XcodeでPodsファイルを編集する

 

CocoaPods自体が存在していなかったときは、必要なライブラリ(frameworkなど)を自分でプロジェクトに使いする必要がありました。多数の外部ライブラリを導入する際には骨が折れる作業だったと思います。

ただ、CocoaPodsも万能ではないので、プロジェクトや自分の技量に応じて導入の可否を検討してください。

スポンサーリンク

Podをプロジェクトから削除する場合

何らかの理由でプロジェクトからPodを削除したい場合、下記のサイトを参考とすると、このような手順で削除することが出来ます。

http://qiita.com/satoshi_imanishi/items/3aabf6919cd2a4a05307

ディレクトリから関連ファイルを削除

プロジェクトのディレクトリから、
該当のファイルとフォルダを全て削除します。

Podfile
Podfile.lock
/Pods
xcworkspace

CocoaPodsのバージョン自体が変わったのか、上記のリンク先手順とはframeworkから削除するファイルが異なっています。プロジェクト名.xcodeprojファイルを開きましょう。

ターゲット>Build phasesで関連設定を削除

Xcodeプロジェクトファイル内のCocoaPodsに関連する設定も削除する必要があります。

ターゲット>Build phases内

下記項目をターゲット毎に削除しましょう。右側の「×」ボタンをクリックすることで削除できます。

  • [CP] Check Pods Manifest.lock
  • [CP] Embed Pods Frameworks
  • [CP] Copy Pods Resources

Build Phasesの中の設定を変更する

ターゲット>Build phases>Link Binary With Libraries内

同様にして下記項目をターゲット毎に削除します。

  • Pods_ターゲット名.framework

を削除してください。左下の「ー」ボタンを押すことで削除することができます。

Build Phasesの中の設定を変更する

プロジェクト>Info内にあるConfigurationsを確認

プロジェクト>Info内にあるConfigurationsの項目を確認しましょう。DebugおよびRelease共にターゲット毎にBased on Configuration Fileが設定されていますので、Podsから始まるターゲット以外(ここではNone)を指定します。

Xcodeプロジェクト内の設定を編集する

Cleanしてビルドするとエラーは出ずにビルドできました。これにてプロジェクトからPodを削除することが出来ました。

お疲れさまでした。

スポンサーリンク

CocoaPods公式サイトでPodを検索しよう

CocoaPods公式サイトではPodを検索することが出来ます。

https://cocoapods.org

スポンサーリンク

まとめ

CocoaPodsは外部ライブラリを非常に手軽にXcodeプロジェクトに導入できるツールです。GoogleのAdsenseやFirebaseなどのライブラリもCocoaPods経由で配付されているため、簡単にインストールし使用することができます。

しかしながら中の仕組みが解らなくても使えてしまうその簡便性ゆえにCocoaPodsに起因するバグなどの対処を行うにはさらに勉強する必要があります。

CocoaPodsに限りませんが、ツールに使われてしまっては本末転倒なので、計画的に利用していきましょう。記事始めの例ですと、プロの料理人が用意した「そば切り包丁」で魚を切るようなものでしょうか。適材適所です。

 

最後までお読みいただきありがとうございました。

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事