ライブラリの導入と、Alamofireの導入手順


はじめに...

初心者からすると触りにくいライブラリの導入について、自分が一番簡単だと思っている手順を紹介します。
自分がすごく壁を感じてたところだったので、初めての人にわかりやすいように書けたらなと思ってます。。

開発環境は xcode Version10.1です。

それでは最初にライブラリの導入の種類を簡単に紹介します。

ライブラリの導入の方法の種類の説明

1.CocoaPods

ライブラリの設定が手軽で、多くの人はこのやり方をしているんじゃないでしょうか。
しかし、実は面倒な作業が発生するし、柔軟性がないためあまり推奨はしていません。(特にチーム開発)
Cocoapodsでは配布時に必要となるPodSpecをプロジェクトに追加しなければなりません。
しかし、ここに追加する情報は、XcodeとGitHubに既に存在している情報なので,結果情報が重複していることになるのです。

2.swift Package Manager

ついにswiftの公式Packageが出ましたが、以前からあった他の二つのやり方に比べて、難しいし使い勝手もまだ悪いです。

3.Carthage

正直、projectとCartfileを結びつつけるのはめんどくさいとも言われています。
でも一度覚えてしまったら難しいことではないので大丈夫です。
いい点としては、brewにインストールするので簡単ですし、ライブラリを最初にインストールしてしまうことで、buildが他の方法より早くなります。
Carthageが好まれるのはこの点ではないでしょうか。

私はCarthage推奨派なので、今回このやり方で進めさせていただこうと思ってます。

プロジェクト作成からライブラリの導入まで

Homebrewの導入

(Homebrewとはパッケージ管理システムの一つです。)
この処理はPC内で一度してしまえば,それ以降する必要はありません。
下のコマンドでHomebrewがインストールできます。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Carthageの導入

さっきインストール経由してCarthageをインストールする。
下のコマンドでインストール。

brew install carthage

これも一度PCでしてしまえばそれ以降する必要はありません。
ここまででCarthageを用いる準備ができました。

ライブラリの導入

最初にライブラリを導入したいプロジェクト(今回Qiita_Viewerで作っています)のところまで移動。

cd ~/Desktop/Qiita_Viewer

その後、

touch Cartfile // Cartfileを作成
vim Cartfile // Cartfileを編集

ここで作ったCarfileのなかに下のコードを書き込んでください。

github "Alamofire/Alamofire"
github "SwiftyJSON/SwiftyJSON"

編集方法はこうです。
iを押して入力モードescで入力モードから抜ける。
その状態で:wqで保存して終了。
保存したくない場合は、:q!で保存せず終了できます。

carthage update --platform iOS

結構時間がかかりますが、完了すると以下のような状態になります。

これでライブラリの導入は完了!

次に実際にプロジェクト内でライブラリを追加する作業を行います。

プロジェクト内にライブラリを追加

まず、新しいプロジェクトファイルをSingleViewAppから立ち上げてください。

まずプロジェクトファイルのGeneralタブから、
Linked Frameworks and Libraryにある+ボタンを押します。

FrameWorksを選択する画面になるので、Add Other..を選択。

プロジェクトのディレクトリ内から、Carthage/Build/iOSと移動し、
ライブラリのAlamofire.frameworkとSwiftyJSON.frameworkを選択します。

ライブラリが追加できたら、Build Phasesタブに移動し、
+ボタンから、「New Run Script Phase」を選択します。

その後、shellの部分に

/usr/local/bin/carthage copy-frameworks

そして次に「input Files」にて+ボタンを押し、以下のようにframeworkの情報を記述します。

$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
$(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework

これでライブラリの追加は完了です!