不初始化环境变量的快车道 --env



我正在为我的iOS应用程序使用fastlane。在这种情况下,我有一个具有多个目标的 xcode 项目。因此,我想在快车道中使用一些不同的变量。但是,变量不会初始化。

我已经为每个目标设置了自定义的 .env 文件。例如,Target1 的 .env 文件:

ENV_TARGET_NAME=MyAppName
ENV_TARGET_NAME_SHORT=MyAppNameShort

.env 文件称为 .env。目标 1 并在快车道文件夹中设置。我已经尝试通过将文件放在项目的根文件夹中来查看这是否有效。

我的快车道文件如下所示:

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}

当我将target_name设置为硬编码(如"MyAppName"(时,我将在.sh文件中看到变量。但是,当我从选项[:target_name]设置它时,变量为空。有人知道为什么会这样吗?

你做错了。正如文档所说 https://docs.fastlane.tools/advanced/#environment-variables它首先加载.env然后加载您的.env.myTarget

但是看看你在做什么,你的跑步fastlane QA_all(f.ex.(这个快车道的实例根本没有env!这就是您有一个空字符串的原因。

甚至,当你做sh ...这将在另一个,我不确定,进程?¿?上运行时,输出将与你启动快速通道的输出不同。

如果您想为 3 个不同的目标运行 3 个构建/部署脚本(我理解的应用程序(。对于调用 3 个快速通道配置的脚本,您应该做得更好。

我没有尝试过,但应该在脚本上序列化,启动您的第一个快车道 Target1,完成后,运行 2 等等......但最好测试一下。

我希望这对你;)有所帮助。

相关内容

  • 没有找到相关文章

最新更新