はじめに
この記事は、CocoaPodsからCarthageに移行したい人向けの記事です。
ビルドツールが何もない状態からCarthageを利用する方法は、調べればすぐに出てきます。しかし、CocoaPodsからCarthageに移行する方法は見つからなかったので、ここにまとめます。
前提
利用ライブラリ:RealmSwift, Alamofire
Xcodeプロジェクト名:NaniTaberu
XcodeプロジェクトからCocoaPodsを削除する
プロジェクトからCocoaPodsを完全削除を参考にXcodeプロジェクトからCocoaPodsを削除します。具体的には次の通りです。
- Xcodeプロジェクトのフォルダから、以下のファイル・フォルダを削除する。
- Podfile
- Podfile.lock
- NaniTaberu.xcworkspace
- Pods
- NaniTaberu.xcodeprojを開き、Project NavigatorでPodsフォルダとFrameworks/Pods_*.frameworkを削除する
3. Project Navigatorで、NaniTaberu>TARGETS:NaniTaberu>BuildPhasesで、CocoaPods関連の以下のRunScriptを削除する。
- [CP] Check Pods Manifest.lock
- [CP] Embed Pods Frameworks
Carthageをインストールする
ここからは、Carthageを使ってビルド時間を短縮しようを参考に、Carthageをインストールし、設定していきます。
1.HomebrewでCarthageをinstallします。
$ brew install carthage
2.Cartfileを作成します。
$ cd ~/work/NaniTaberu # Xcodeプロジェクトのフォルダに移動
$ vi Cartfile
3.以下の内容を記載して保存します。
github "Alamofire/Alamofire"
github "realm/realm-cocoa"
4.ライブラリをビルドします。(iOS用なので、platformオプションを指定しています。)
carthage update --platform iOS
5.NaniTaberu.xcodeprojを開き、Project Navigator「NaniTaberu」> TARGETS「NaniTaberu」>General>Linked Framework and Library > "+" > Add otherをクリックし、NaniTaberu/Carthage/Build/iOS/から、以下を選択します。
- Realm.framework
- RealmSwift.framework
- Alamofire.framework
6.Project Navigator「NaniTaberu」> TARGETS「NaniTaberu」> Build Phases>"+">New Run Script PhaseでRun Script Phaseを作成します。
7.作成したRun Script Phaseに以下のように設定します。
シェルスクリプト:
/usr/local/bin/carthage copy-frameworks
InputFiles:
$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
$(SRCROOT)/Carthage/Build/iOS/Realm.framework
$(SRCROOT)/Carthage/Build/iOS/RealmSwift.framework
以上