我爲我的iOS應用程序使用了fastlane。在這種情況下,我有一個Xcode項目與多個目標。因此,我想在fastlane中使用一些不同的變量。但是變量不會被初始化。Fastlane不初始化環境變量--env
我已經爲每個目標設置了自定義的.env文件。例如目標1的.ENV文件:
ENV_TARGET_NAME=MyAppName
ENV_TARGET_NAME_SHORT=MyAppNameShort
的.ENV文件名爲.env.Target1並在FASTLANE文件夾設置。我已經嘗試通過將文件放在我的項目的根文件夾中來查看這是否正在工作。
我FASTLANE文件如下所示:
fastlane_version "1.109.0"
before_all do
ensure_git_status_clean
skip_docs
end
lane :QA_all do
sh "fastlane QA --env Target1"
sh "fastlane QA --env Target2"
sh "fastlane QA --env Target3"
end
lane :accept_all do
sh "fastlane QA --env Target1"
sh "fastlane QA --env Target2"
sh "fastlane QA --env Target3"
end
lane :live_all do
sh "fastlane QA --env Target1"
sh "fastlane QA --env Target2"
sh "fastlane QA --env Target3"
end
desc "Builing version with TEST environment"
lane :QA do |options|
target_name = ENV['ENV_TARGET_NAME']
/* Rest of the file */
- 更新
使用 選項[:TARGET_NAME] 越來越目標名稱。但是,我將此發送到一個.sh文件移動到IPA到正確的文件夾。
sh "sh ./scripts/ipa_deployment.sh #{version_number} #{target_name}
當我設置硬編碼,如「MyAppName」的TARGET_NAME我會看到.SH文件中的變量。但是,當我從選項[:target_name]中設置變量爲空時。有人知道爲什麼會發生這種情況?
我真的不明白你的目標是什麼,但在我看來,你應該只需要調用帶有你想要的選項的':QA'車道。例如, '道:QA_all做 QA {TARGET_NAME:目標1} QA {TARGET_NAME:目標2} QA {TARGET_NAME:Target3} 結束 道:QA做|選項| 將「使用#{options [:target_name}」做任何想做的事「 end' –
我的目標是使用應用程序中的目標名稱將.ipa文件寫入文件夾,具體取決於此值。因此,每個目標都將.ipa文件放在名爲目標的文件夾中。我的代碼在設置target_name硬編碼時工作,但沒有從環境文件中獲取值。 據我所知可以使用類似 '#{options [:target_name}'來獲得目標名稱? 我會嘗試一下,並在這裏再次評論 – Maurice
順便說一句,我錯誤的類型如何做到這一點,要獲得代碼中的選項,你只需要'options [:target_name]'。 '#{options [:target_name]}'是將它放入Ruby字符串中。 –