Codemagi c - Задать переменные среды Dynami c для аргументов сборки - PullRequest
1 голос
/ 20 апреля 2020

Я ищу способ управления динамическими c переменными среды в моих аргументах сборки.

enter image description here

Я могу заставить его работать, если Я определяю значения для TARGET_FILE и FLAVOR в разделе переменных среды в CodeMagi c. Но моя цель - получить значения, указанные в моем git хранилище. Так что я смогу изменить его и получить динамическую сборку c.

Я думал, что смогу установить env var в разделе перед сборкой.

enter image description here

Ниже приведен пример моего pre-build.sh файла

# in my case it’s `dev`, `qa` and `prod`
export FLAVOR='qa'

# major and minor part of app version e.g. 1.0
export VERSION_NUMBER='1.0.0'

# this is the entry point of the app e.g. main_dev.dart
export TARGET_FILE="lib/main_$FLAVOR.dart"

Моя сборка все еще не выполняется, поскольку TARGET_FILE например не указано

Target file "--flavor" not found.


Build failed :|
Failed to build for Android

Мне было интересно, сталкивался ли кто-нибудь с таким сценарием

1 Ответ

1 голос
/ 20 апреля 2020

Что касается настройки сборки из GitHub, вы можете использовать файл codemagic.yaml, который позволяет вам определить конфигурацию для сборки CodeMagi c, включая переменные env ( здесь это документы ).

Дополнительные примечания, просто предложение))

Я на самом деле не знаю, что происходит в ваших точках входа Flavors и Env, но вполне возможно, что вы действительно можете избавиться от обоих .

Например, вы можете использовать файл .env и пакет flutter_config для передачи переменных env Speci c на собственный уровень, включая plist и Gradle. Кроме того, вы можете загрузить этот файл .env в код Dart и использовать переменные из него. Кроме того, вы можете использовать этот пакет для генерации файла .env с помощью команды терминала (если вы не хотите создавать сценарии sh))). Наряду с файлом .env, он может генерировать класс Dart специально для кода Dart. Он также может генерировать файлы на основе глобальных переменных env .

Таким образом, вся конфигурация среды c будет определена один раз, вы нигде не будете раскрывать свои учетные данные prod, кроме инструмента сборки. и вам не нужно будет копировать / вставлять несколько точек входа.

...