R.Swift をSwift Package Manager で導入する手順

以前、常駐先で R.Swift を利用することがあり、とても便利だなと感じていたので SwiftUI の個人開発でも導入してみることにしました。

現場では、CocoaPods を使ってインストールしていましたが、今回はXcode 11から利用できるようになった Swift Package Manager を使って導入する手順について紹介します。

R.Swift をSwift Package Manager で導入する手順

Homebrew のインストール

次項で rswift コマンドをインストールするのですが、その為には brew コマンドが必要になります。(既にインストール済みの方は読み飛ばして頂いて結構です)。

Homebrew は yum 等と同様のパッケージマネージャーの一種で、MacOS 専用のコマンドツールになります

Homebrew のトップページにあるように以下のコマンドをそのまま実行します。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

これで brew コマンド利用できるようになります。

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

続いて brew install を使って rswift コマンドをインストールします。

brew install rswift

次項でこの rswift コマンドをXcodeプロジェクトのビルド時に実行するように設定を行います。

Run Script の設定

次に、rswift コマンドを使用して、R.generated.swift を生成するスクリプトをXcodeプロジェクトに登録します。プロジェクトの [TARGETS] > [Build Phases] を開き、+マークから、[New Run Script Phase] をクリックし Run Script 追加します

追加された Run Script を展開し、Shell・Input Files・Output Files にそれぞれキャプチャのように入力します。

  • 【Shell】rswift generate “$SRCROOT/generated/R.generated.swift”
  • 【Input Files】$TEMP_DIR/rswift-lastrun
  • 【Output Files】$SRCROOT/generated/R.generated.swift

そして、この Run Script を必ず Compile Sources の前に移動させます

ビルドの順番の都合上これを行わないと循環参照のようなことを起こり、ビルドエラーとなってしまいます。

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

最後に、Swift Package Manager から R.swift.Libray をインストールします。

[Files] > [Swift Packages] > [Add Packages Dependency…] と進み、

R.swift.Library の Gitリポジトリ からダウンロードURL(https://github.com/mac-cain13/R.swift.Library.git)を以下のように貼り付けます。

インストールバージョンは特に理由が無いのであれば、デフォルトの最新バージョンで選んでおきましょう。

Next を押すと、Rswift と RswiftDynamic を選択する画面が出てきますが、今回は Rswift だけを選択して Finish します。

この時点で一度ビルドすると generated フォルダとその中に R.generated.swift が生成されるはずです。

このフォルダごと [Files] > [Add Files to プロジェクト名] からXcodeプロジェクトに追加しましょう。

もう一度ビルドしてエラーが出なければ導入は完了です。

Strings ファイルを追加する

最後に、Stringsファイルを作成し何か文字列を定義し、ビルドしたのち R.*** と打ち込んで使えるどうか試してみましょう。

[Files] > [New] > [File] から Strings File を選択します。

ファイル名を指定し作成します。

適当に文字列を定義しビルドします。

以下のように R.string.*** と打ち込んでエラーにならなければOKです。

以上、Swift Package Manager を利用した R.Swift の導入手順を紹介しました。

Swift Package Manager の利用手順については以下の記事でも紹介していますのでご参考ください。