LoginSignup
6
2

More than 3 years have passed since last update.

[iOS]R.swiftをSPMで導入

Last updated at Posted at 2020-05-02

私はiOSアプリではほとんどR.swiftを使用しています。今まではCocoapodsによる導入がほとんどでした。Xcode11からSPM(Swift Package Manager)でR.swiftを導入することが増えてきました。

R.swiftとは?

多くの記事で書かれていますので、割愛します。
https://github.com/mac-cain13/R.swift

R.swiftの導入方法

大きく分けて3つのパートになります。

  1. rswiftコマンドのインストール
  2. R.generated.swiftの生成
  3. R.swift.Libraryのインストール

rswiftコマンドのインストール

rswiftコマンドはR.generated.swiftファイルを生成するためのCLIです。インストールするためには、HomebrewとMintの2通りがあります。

  • Homebrewで:簡単だが、バージョン指定が出来ない
  • Mint:バージョン指定ができるが、ビルド時間がかかり、特にCI環境で影響があります。

Homebrewでインストール

Homebrewで最新版のrswiftをインストールするためには

$ brew install rswift

だけです。簡単ですね。しかし、バージョンの指定は出来ないことに注意します。

Mintでインストール

Mintでバージョンを指定してインストールするためには、

$ mint install mac-cain13/R.swift@5.2.2

です。最新版をインストールする場合は、@以降を省略します。もし、Mintfileを使用してインストールしているのであれば、"mac-cain13/R.swift"をファイルに追加します。

R.generated.swiftの生成

次にR.generated.swiftを生成するためのスクリプトを書きます。Xcodeプロジェクト>Targets>[Target Name]>Build Phase>+ボタンで"New Run Script"を選択します。スクリプト名は"R.swift"、場所は"Dependencies"の直後にします。

if which rswift >/dev/null; then
rswift generate "$SRCROOT/generated/R.generated.swift"
else
echo "warning: rswift not installed"
fi

また、Input Filesには$TEMP_DIR/rswift-lastrun、Output Filesには$SRCROOT/generated/R.generated.swiftを指定します。R.generated.swiftの書き出し先は変更可能です。

ここまでの設定で一度ビルドすると、R.generated.swiftが生成されていることがわかります。このファイルをプロジェクトに追加します。

R.generated.swiftはgitignoreでコミットしないようにします。

R.swift.Libraryのインストール

最後にR.generated.swiftを使うためのR.swift.LibraryをSPMで導入します。

上部メニュー>File>Swift Packages>Add Package Dependencyを選択し、
https://github.com/mac-cain13/R.swift.Library
と入力してNextを選択します。バージョンはそのままでNextを選択します。"Rswift"と"RswiftDyamic"が選択できますが、"Rswift"を選択してFinishを押します。

もう一度ビルドを行い、"Build Succesed"となることを確認します。これで導入が完了です。

6
2
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
6
2