LoginSignup
3
4

More than 3 years have passed since last update.

CocoaPodsからCarthageに移行する

Last updated at Posted at 2019-09-16

はじめに

この記事は、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

以上

参考資料

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4