Cordova: Сборка Android приложения на MacOS
Оказалось, что это не для слабого ума.
Нужно это для того, чтобы из cordova можно было собирать приложения под андроид.
Ставим Android SDK
Процесс состоит из большого числа шагов, пойдем один за другим:
JavaSDK
Идем на сайт Oracle и устанавливаем JavaSDK:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
В списке - нам нужна версия для MacOS (она на момент написания - там одна). Чтобы скачать - нужно иметь учетную запись Oracle, если ее еще нет - нужно зарегистрироваться.
Скачиваем обычный .dmg файл, запускаем, устанавливаем для всех пользователей.
Чтобы проверить, что все поставилось корректно запускаем терминал и в нем:
java -version
Android command line tools
После этого нам надо поставить Android command line tools, для этого идем по ссылке:
https://developer.android.com/studio/index.html#command-tools
Скачиваем zip файл для MacOS
Дальше магия.
Надо распаковать архив, внутри его будет папочка cmdline-tools
Содержимое папки надо положить в папку:
/Users/{username}/android/cmdline-tools/tools
Где {username} - это имя вашего пользователя Mac
После этого в терминале запускаем:
cd ~/android/cmdline-tools/tools/bin ./sdkmanager "build-tools;25.0.3" "emulator" "platforms;android-25" "platform-tools" "system-images;android-25;google_apis;x86" --verbose ./avdmanager -v create avd -n x86 -k "system-images;android-25;google_apis;x86" -g "google_apis"
когда будет спрашивать - соглашаемся, чтобы продолжать
Если положить command-line tool в любую другую папку, то будет ошибка
Error: Could not determine SDK root.
Устанавливаем Gradle
Android SDK использует Gradle для того, чтобы собирать приложения Android
Переходим на страничку релизов:
https://gradle.org/releases/
Там для каждого релиза - есть блок описания, в котором есть примерно вот такая строка:
Download: binary-only or complete
Нам нужен binary-only
После скачивания распаковываем архив, переименовываем папку в gradle кладем ее в
/Users/{username}/android
После этого в файле:
~/.bash_profile
Добавляем вот эти строки:
export ANDROID_HOME=$HOME/android export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/gradle/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin
Сохраняем изменения в файле, чтобы они применились:
source ~/.bash_profile
Как проверить, что все настроено корректно - запустить терминал и в нем:
adb version
и
gradle -v
Если ошибок не выдало - все ок, у вас всё установлено.
Что еще надо проверить, чтобы все работало как надо
Прописать JAVA_HOME в ~/.bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v {version}`
где {version} - это версия, которая возвращается в результате выполнения команды java -version
в консоли, например для
java version "1.8.0_291"
надо указать
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
Надо указать путь до ANDROID SDK, в нашем случае это будет:
export ANDROID_SDK_ROOT=/Users/{username}/android
export PATH=${PATH}:/Users/{username}/android/platform-tools:/Users/{username}/android/tools
{username} - имя пользователя в MacOS
Дополнительно надо установить:
export ORG_GRADLE_PROJECT_cdvMinSdkVersion=20
где 20 - это минимальная версия Android SDK, чтобы понять какая версия что значит - можно посмотреть табличку тут