Edited at

CocoaPodsからCarthageに移行する


はじめに

この記事は、CocoaPodsからCarthageに移行したい人向けの記事です。

ビルドツールが何もない状態からCarthageを利用する方法は、調べればすぐに出てきます。しかし、CocoaPodsからCarthageに移行する方法は見つからなかったので、ここにまとめます。


前提

利用ライブラリ:RealmSwift, Alamofire

Xcodeプロジェクト名:NaniTaberu


XcodeプロジェクトからCocoaPodsを削除する

プロジェクトからCocoaPodsを完全削除を参考にXcodeプロジェクトからCocoaPodsを削除します。具体的には次の通りです。


  1. Xcodeプロジェクトのフォルダから、以下のファイル・フォルダを削除する。


    • Podfile

    • Podfile.lock

    • NaniTaberu.xcworkspace

    • Pods



  2. NaniTaberu.xcodeprojを開き、Project NavigatorでPodsフォルダとFrameworks/Pods_*.frameworkを削除する

スクリーンショット 2019-09-16 11.10.48.png

3. Project Navigatorで、NaniTaberu>TARGETS:NaniTaberu>BuildPhasesで、CocoaPods関連の以下のRunScriptを削除する。

- [CP] Check Pods Manifest.lock

- [CP] Embed Pods Frameworks

スクリーンショット 2019-09-16 11.14.38.png


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

スクリーンショット 2019-09-16 11.31.29.png

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

スクリーンショット 2019-09-16 11.33.10.png

以上


参考資料