Используйте питание Fastlane с dotenv

Контекст и пример конфигурации

Чтобы настроить fastlane в первый раз в проекте, я определяю разные файлы .env, которые я хотел бы использовать с dotenv, как описано в в FAQ по Fastlane.

Пример файла .env.dev:

JSON_KEY_FILE="/home/sam/.keys/googleplay/magnet.json"

В моем файле приложения я ссылаюсь на него с помощью ENV, как предлагается в этом и this Stack Overflow отвечает:

# Path to Google Developer Console key
json_key_file ENV["JSON_KEY_FILE"]

# Package name of the project. If not included in the environment, default value is used.
package_name ENV["PACKAGE_NAME"] || cl.magnet.androidfastlanetest


Моя проблема

Я не могу пройти мимо "Загрузите ваше приложение метаданные "на этапе настройки Fastlane, так как я получаю сообщение об ошибке при запуске fastlane supply init с параметром --env:

~/repos/android-fastlane-test|master⚡ ⇒ fastlane supply init --env dev
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x005560049ed220>
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x005560049e2eb0>
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x005560055588f8>
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x005560055368c0>
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x0055600551a698>
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x005560054fe6f0>
undefined local variable or method `cl' for #<CredentialsManager::AppfileConfig:0x005560054e6b18>
invalid option: --env


Что я делаю не так? Учитывая, что мне нужно сохранить путь к JSON_KEY_FILE не в Appconfig, а в отдельном файле, что мне делать?


person Sam    schedule 05.07.2017    source источник
comment
Где вы определили объект cl, на который ссылаетесь в своем Appfile?   -  person KrauseFx    schedule 06.07.2017
comment
@KrauseFx, мой файл приложения состоит только из двух строк, указанных в вопросе. Ссылка cl находится в строке имени пакета: package_name ENV["PACKAGE_NAME"] || cl.magnet.androidfastlanetest   -  person Sam    schedule 06.07.2017
comment
undefined local variable.. был просто отсутствием кавычек в названии пакета, но проблема осталась invalid option: --env.   -  person Sam    schedule 07.07.2017
comment
Закройте этот вопрос или ответьте на него автоматически.   -  person Sulfkain    schedule 08.11.2017


Ответы (1)


Действия Fastlane не поддерживают переменную --env, как полосы.

Чтобы обойти проблему, просто создайте файл env перед запуском команды действия:

source fastlane/.env.custom; bundle exec fastlane supply init

Чтобы это сработало, вам нужно указать свою переменную env следующим образом (в файле env):

export FLAVOR=Dev
person Gomino    schedule 10.11.2019