May 6, 2021

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, чтобы понять какая версия что значит - можно посмотреть табличку тут