2015-09-03 1 views
2

У меня есть KEY_STRING как системная переменная в Mac OSX и Windows. Который имеет абсолютный путь к моему хранилищу ключей.Углубление студии OSX Android не может читать переменную окружения .bash_profile

~/запись .bash_profile будет

export KEY_STRING =~/config/release-signing.keystore 

же установкой пути в каждом из моих товарищей по команде машин [Windows/OSX/Linux].

Мой Gradle скрипт для доступа к этой переменной будет

def keystorePath = System.getenv("KEY_STRING"); 
println keystorePath; 

Этот сценарий отлично работает в Windows, и в консоли и андроида студии.

Моя проблема связана с mac android studio.

Если я запустил встроенный терминал, который работает нормально и считывает переменную env.

Но когда я выполняю синхронизацию градиента или настройку конфигурации запуска [Задача градиента], она не может разрешить переменную.

Я также сообщил об этом issue.

Опять вот краткое резюме:

  • Настройка переменной среды в ~/.bash_profile
  • Почитайте где-нибудь в build.gradle

    Защиту keystorePath = System.getenv ("key_string «); println keystorePath;

  • Добавить задачу градации в конфигурации. Adding custom gradle task to android studio

  • Он не читает переменную окружения.
+0

Совсем нет. Это характерно для градиента студии Android. Он не может прочитать переменную. –

+1

... потому что приложение OSX не имеет доступа к переменным окружения, установленным в '.bash_profile'. – trojanfoe

+0

Есть ли способ обхода этой переменной env? Я не хотел испортить свой сборщик. –

ответ

4

Нет приложений OSX может считывать переменную окружения.

В соответствии с этим ответом https://stackoverflow.com/a/14285335/981555

решение моей проблемы было бы

launchctl setenv KEY_STRING ~/config/release-signing.keystore 

Это должно быть установлено перед запуском Android студии.

+2

Чтобы добавить к этому ответу, мне действительно удалось получить переменные окружения, автоматически установленные в OSX Login, используя комбинацию AppleScript, сохраненную как приложение, начатое на элементах входа в пользователях и группах, и используя этот синтаксис: 'make shell script ' startctl setenv ANDROID_HOME/users/$ (whoami)/Библиотека/Android/sdk ". Это запускает startctl setenv, когда пользователь входит в систему, а затем приложения и терминал могут видеть переменные среды –