XcodeからRunScriptを呼ぶ時に、SRCROOT
などのビルド実行時によみこまれる環境変数ってありますよね?
あれをRunScript以外のスクリプトからも読み込みむための方法です。
この投稿のタイトルにはRubyとしていますが、Shellプロセスを起動することの出来るプログラミング言語であれば同じことが出来るはずです。
Xcodeへの環境変数の参照方法
方法はこちらの投稿に記載されている通り。
Xcodeの環境変数 $(PROJECT_DIR)や$(SRCROOT) などを確認する方法
BuildSchemeやBuildConfig別に設定値を変えているなら、それぞれ、-scheme [scheme name]
、-configuration [configuration name]
オプションを指定してあげればそれぞれの設定値を読み込むことが出来ます。
例
xcodebuild -showBuildSettings -scheme [scheme name] -configuration [configuration name]
ちなみに、BuildSchemeやBuildConfigは以下のコマンドで確認することが出来ます。
xcodebuild -list
Rubyで環境変数を読み込む
Xcodeプロジェクトの開発中、少なからずRunScript以外のスクリプトからもビルド環境変数を参照したい時があると思います。
先程紹介したコマンドをRubyから読み込むことで、ビルド環境変数へアクセスすることが出来るようになります。
# Xcodeプロジェクトのルートディレクトリ(*.xcprojeディレクトリの置いてある場所)
PROJECT_ROOT = File.join("path", "to", "root").freeze
# ビルド環境変数を読み込むコマンド
BUILD_SETTINGS_LOAD_CMD = "xcodebuild -showBuildSettings".freeze
# ビルド環境変数をRubyの環境変数に設定
Dir.chdir PROJECT_ROOT do
`#{BUILD_SETTINGS_LOAD_CMD}`.split("\n").each do |line|
k, v = line.split(" = ")
ENV[k.strip] = v
end
end