🛠️
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