14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?