Ich benutze fastlane für meine iOS-Anwendung. In diesem Fall habe ich ein xcode-Projekt mit mehreren Zielen. Daher möchte ich einige andere Variablen in fastlane verwenden. Die Variablen werden jedoch nicht initialisiert.Fastlane Umgebungsvariablen nicht initialisieren --env
Ich habe benutzerdefinierte .env-Dateien für jedes Ziel eingerichtet. Zum Beispiel der .env Datei von Target1:
ENV_TARGET_NAME=MyAppName
ENV_TARGET_NAME_SHORT=MyAppNameShort
Die .env Datei wird .env.Target1 genannt und ist in dem fastlane Ordner festgelegt. Ich habe bereits versucht zu sehen, ob dies funktioniert, indem ich die Datei in den Stammordner meines Projekts platziere.
Meine fastlane Dateien sieht wie folgt aus:
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 */
- Aktualisieren
Optionen mit [: target_name] wird, um den Zielnamen zu bekommen. Ich sende dies jedoch an eine .sh-Datei, um zum ipa in den richtigen Ordner zu wechseln.
sh "sh ./scripts/ipa_deployment.sh #{version_number} #{target_name}
Als ich die target_name wie „MyAppName“ fest einprogrammiert gesetzt werde ich die Variable innerhalb der .sh-Datei. Wenn ich es jedoch über die Optionen [: Zielname] einstelle, ist die Variable leer. Jemand eine Idee, warum das passiert?
Ich verstehe nicht wirklich, was Ihr Ziel ist, aber es scheint mir, dass Sie die Spur ': QA' mit den gewünschten Optionen aufrufen sollten. Zum Beispiel 'Spur: QA_all tun QA {target_name: Target1} QA {target_name: Target2} QA {target_name: ziel3} Ende Spur: QA tun | Optionen | setzt "mach was du willst mit # {options [: target_name}" end' –
Mein Ziel ist es, den Zielnamen aus der Anwendung zu verwenden, um die .ipa in einen Ordner zu schreiben, abhängig von diesem Wert. Daher legt jedes Ziel die .ipa-Datei in einem Ordner mit dem Namen target ab. Mein Code funktioniert, wenn ich target_name hartcodierte, aber nicht den Wert aus der Umgebungsdatei abruft. Wie ich verstehe Es wäre möglich, etwas wie '# {options [: target_name}' zu verwenden, um den Zielnamen zu erhalten? Ich werde es ausprobieren und kommentieren Sie hier wieder – Maurice
BTW, ich falsch eingegeben, wie dies zu tun, um die Option im Code zu bekommen, benötigen Sie nur 'Optionen [: Zielname]'. Die '# {options [: target_name]}' soll es in die Ruby-Zeichenfolge bekommen. –