🛠️
M1 Mac: Build PhasesのRun ScriptでMintを使ってR.swiftを実行する
CocoaPodsをやめてSwift Package Managerに移行作業中、R.swiftをMintで実行するようにするのに躓いたのでメモしておきます。
- Build PhasesのRun ScriptではHomebrewで入れたコマンドのパスが解決できないためmintが見つからない。
-
mint run R.swift rswift
はmacOS上で実行するもののため、build destinationがiOSになっていると失敗することがある。 - ソースの
import Rswift
でモジュールが見つからないと言われる。
対応
-
Swift Package Managerでプロジェクトに
R.swift.Library
を追加する
https://github.com/mac-cain13/R.swift.Library
-
Build PhaseにRun Scriptを追加する
# M1 Macの場合はHomebrewのパスを追加する if [ $(uname -m) = "arm64" ]; then export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:${PATH+:$PATH}"; fi # Mintでrswiftを実行 if which mint >/dev/null; then xcrun --sdk macosx mint run R.swift rswift generate "${SRCROOT}/R.generated.swift" else echo "warning: Mint not installed" fi
- Based on dependency analysis のチェックマークを外す
- OutputFilesに
$(SRCROOT)/R.generated.swift
を追加する
Discussion