LoginSignup
14
16

More than 5 years have passed since last update.

【Swift】CarthageでRxSwiftをインポート

Last updated at Posted at 2018-09-24

はじめに

本記事では、ライブラリ管理ツールであるCarthageをMacにインストールし、RxSwiftをプロジェクトにインポートします。

環境

Mac OS 10.13.6(High Sierra)
Homebrew 1.7.5
Xcode 10.0
Swift 4.2

Homebrewのインストール

まずHomebrewをインストールしていきます。
スクリーンショット 2018-09-21 00.33.34.png

最初に書いてあるコマンドをターミナルにコピペします。

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

インストールが終了したら、バージョンの確認

brew -v

これでHomebrewのインストールは完了です。

carthageのインストール

続いてcarthageのインストールを行なっていきます。

carthageのREADMEに記載してある以下のコマンドをターミナルで実行します。

brew install carthage

carthageの導入

carthageを以下の手順で、プロジェクトに導入します。

  • Cartfileの生成
  • Cartfileの編集
  • ライブラリのインストール
  • Xcodeのプロジェクトにライブラリの導入

Cartfileの生成

導入するXcodeプロジェクトのディレクトリに移動して、Cartfileを生成します。

cd /YOUR_XCODE_PROJECT
touch Cartfile

これでCartfileの生成ができました。

Cartfileの編集

続いて生成したCartfileの編集を行います。

vi Cartfile

RxswiftのREADMEに記載されている以下をCartfileに追加します。

github "ReactiveX/RxSwift" ~> 4.0

ライブラリのインストール

Cartfileに追加したライブラリのインストールを行います。

carthage update

OSを指定したい場合は、以下のようにOSを指定してインストールします。

carthage update --platform ios

以下のようなエラーが発生する場合があります。

xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH

この場合は、Xcodeの設定で、Command Line Toolを設定する必要があります。

スクリーンショット 2018-09-22 15.55.25.png

スクリーンショット 2018-09-22 15.58.46.png

エラーが出た場合は、設定後に再度

carthage update --platform ios

行います。

プロジェクトのディレクトリ内にBuildディレクトリとファイルがインポートされれば成功です。

これでライブラリのインストールが完了しました。

Xcodeプロジェクトにインポート

ビルドしたライブラリをXcodeプロジェクトにインポートします。

プロジェクトファイル > General を選択します。
Linked Frameworks and Librariesのプラスボタンから、Carthage/Buildに入っているRxSwift.frameworkを追加します。

1.png

2.png

3.png

続いて、プロジェクトファイル > Build Phases
の左上のプラスボタンからNew Run Script Phaseを選択し、新しいRun Scriptを作成します。

4.png

以下のように新しいRun Scriptがつくられます。

スクリーンショット 2018-09-24 20.41.02.png

Run Scriptの

# Type a script or drag a script file from your workspace to insert its path.

に以下のスクリプトを追加します。

/usr/local/bin/carthage copy-frameworks

スクリーンショット 2018-09-24 20.43.43.png

続いて、該当のライブラリをInput Filesにプラスボタンから追加していきます。

5.png

プラスボタンを押すと、Input Filesに

$(SRCROOT)/newInputFile

が追加されます。こちらを変更します。

newInputFileをCarthage/Build/iOS/RxSwift.frameworkとライブラリを指定します。

スクリーンショット 2018-09-24 20.59.49.png

必要であれば、同じようにRxCocoaも追加します。

追記:
スクリーンショット 2019-01-29 22.46.30.png

コントローラーに追加

これでRxSwiftを使用することができるようになりました。
ViewControllerにインポートして使用します。

ViewController.Swift
import UIKit
import RxSwift
import RxCocoa

class ViewController: UIViewController {
    @IBOutlet weak private var button: UIButton!
    private let disposeBag = DisposeBag()

    override func viewDidLoad() {
        super.viewDidLoad()
        button.rx.tap
            .subscribe({ _ in
                // do something
            })
            .disposed(by: disposeBag)
    }
}

サンプルプロジェクト

こちらサンプルです。
https://github.com/hananao/Carthage_RxSwift_import

その他

間違っている点などありましたら、コメントをお願いします。

14
16
2

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
14
16