Как подписать приложение андроид
Защитите ключ подписи приложения от потери и взлома с помощью сервиса управления ключами безопасности Google.
Публикация в формате наборов Android App Bundle
Функция подписания приложений в Google Play необходима для публикации в рекомендуемом формате наборов Android App Bundle.
Защита ключа от потери и взлома
Чтобы обеспечить безопасность ключа подписи приложения, храните его в Google и используйте ключ загрузки для дополнительной защиты. Если ключ загрузки будет утерян или взломан, вы сможете сбросить его, подтвердив свою личность.
Усиление защиты ключа подписи приложения в Google Play
Вы можете обновить ключ подписи приложения для новых установок. В этом случае Google будет автоматически управлять новым и старым ключом.
Если ключ загрузки будет утерян или взломан, вы можете сбросить его, обратившись в службу поддержки разработчиков Google Play.
Чтобы усилить криптографическую защиту, обновите ключ подписи приложения для новых установок.
В целях безопасности создайте новый ключ подписи приложения в Google Play.
Начните пользоваться функцией подписания приложений в Google Play
Узнайте, как включить и использовать функцию подписания приложений в Google Play.
Документация для разработчиков
Узнайте больше о технических требованиях функции подписания приложений, а также о том, как включить ее и как подписать приложение перед выпуском с помощью Android Studio.
О наборах Android App Bundle
Узнайте, как наборы App Bundle упрощают выпуск, уменьшают размер приложения и позволяют использовать расширенные возможности развертывания.
Обзор функции подписания приложений в Google Play
Пройдите этот бесплатный курс и узнайте больше о функции подписания приложений в Google Play.
Хотите добиться долгосрочного успеха? Повышайте производительность приложения, а также качество контента, интерфейса и улучшайте функции.
App Bundle Explorer
Управляйте всеми своими наборами App Bundle и объектами на одной странице и получайте полезные метаданные, файлы и статистику по ресурсам Google Play с поддержкой Dynamic Delivery.
Обзор выпусков
Отслеживайте сборки и управляйте выпусками на всех этапах.
Отчеты о тестировании
Выявляйте проблемы в работе приложения до того, как они коснутся пользователей. Тестируйте приложение на разных устройствах Android и просматривайте данные о его стабильности, производительности, специальных возможностях и других потенциальных проблемах.
Android Vitals
Отслеживайте и повышайте производительность своего приложения или игры. На странице Android Vitals можно увидеть основные проблемы, которые затрагивают пользователей. Кроме того, эта функция помогает приоритизировать проблемы и выполнять отладку.
Дополнительные функции
Защитите ключ подписи приложения от утери или взлома с помощью сервиса управления ключами Google.
Функция подписания приложений в Google Play позволяет Google управлять ключом подписи вашего приложения, а также защищать этот ключ и использовать его для оптимизированных APK-файлов, которые предназначены для распространения и генерируются из наборов App Bundle. Ключ подписи хранится в надежной инфраструктуре Google, и его можно обновить для большей безопасности.
Чтобы использовать эту функцию, вы должны быть владельцем аккаунта или иметь права на выпуск рабочей версии, исключение устройств и использование функции подписания приложений в Google Play. Кроме того, необходимо принять Условия использования.
Как это работает
Когда у вас включена функция подписания приложений в Google Play, для хранения ваших ключей используется та же безопасная инфраструктура, что и для хранения ключей Google, а их защиту обеспечивает специальный сервис управления ключами. Подробную информацию об инфраструктуре Google можно найти в документации по безопасности в Google Cloud.
Приложения для Android подписываются закрытым ключом. С каждым таким ключом связан открытый сертификат, с помощью которого устройства и сервисы могут проверять источник обновлений. На устройства устанавливаются только те обновления, подпись которых соответствует подписи установленного приложения. Если вы позволите Google управлять ключом подписи приложения, этот процесс станет безопаснее.
Примечание. Для приложений, созданных до августа 2021 года, по-прежнему можно загружать APK-файлы, а не наборы Android App Bundle и управлять собственными ключами, вместо того чтобы использовать функцию подписания приложений в Google Play. Однако если вы потеряете доступ к хранилищу ключей или оно будет взломано, то вы не сможете обновить свое приложение и вам придется опубликовать его заново с другим названием пакета. В таких случаях мы рекомендуем использовать функцию подписания приложений в Google Play и наборы App Bundle.
Ключ, используемый в Google Play для подписания APK-файлов, доставляемых на устройство пользователя. С функцией подписания приложений в Google Play вы можете либо загрузить существующий ключ подписи, либо использовать ключ, сгенерированный Google.
Ключ подписи никому нельзя передавать, но при необходимости вы можете поделиться открытым сертификатом приложения.
Ключ, которым вы подписываете набор App Bundle перед загрузкой в Google Play. Этот ключ никому нельзя передавать, но при необходимости вы можете поделиться открытым сертификатом приложения. В целях безопасности для подписания и загрузки приложения рекомендуется использовать разные ключи.
Сгенерировать ключ загрузки можно двумя способами:
- Используйте ключ подписи приложения. Если вы разрешили Google сгенерировать ключ подписи приложения, ключом загрузки станет ключ, использованный вами для подписания первого выпуска.
- Используйте отдельный ключ загрузки. Если вы предоставили собственный ключ подписи приложения, то для безопасности можете сгенерировать новый ключ загрузки. Если вы не хотите этого делать, используйте ключ подписи приложения в качестве ключа загрузки для подписания выпусков.
Сертификат, который содержит открытый ключ и дополнительную информацию о его владельце. Сертификат открытого ключа позволяет кому угодно узнать, кто подписал набор App Bundle или APK-файл. Этим сертификатом можно делиться, так как он не включает закрытый ключ.
Чтобы зарегистрировать ключи у поставщиков API, вы можете скачать открытый сертификат для ключа подписи и ключа загрузки на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения) в Play Console. Сертификатом открытого ключа можно делиться со всеми, так как он не включает закрытый ключ.
Короткий и уникальный идентификатор сертификата. Цифровой отпечаток вместе с названием пакета часто запрашивают поставщики API для предоставления доступа к их услугам.
Цифровые отпечатки MD5, SHA-1 и SHA-256 сертификатов загрузки и подписи приложения можно найти на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения) в Play Console. Вы также можете получить цифровой отпечаток другого типа. Для этого скачайте оригинальный сертификат в формате DER на той же странице.
Инструмент для экспорта закрытых ключей из хранилища Java и их шифрования для передачи в Google Play.
Когда вы предоставите Google ключ подписи приложения, выберите экспорт и загрузку собственного ключа (и при необходимости – его открытого сертификата), а затем, следуя инструкциям, скачайте инструмент и воспользуйтесь им. Вы также можете скачать, посмотреть и использовать открытый исходный код инструмента PEPK.
Вот как это работает:
- Вы подписываете набор App Bundle и загружаете его в Play Console.
- Google оптимизирует APK-файлы из вашего набора, а затем подписывает их с помощью ключа подписи приложения.
- Google добавляет к манифесту приложения две метки ( com.android.stamp.source и com.android.stamp.type ), используя инструмент apksigner, а затем подписывает APK-файлы с помощью ключа подписи приложения. Метки, добавленные через apksigner, позволяют определить, кто подписал APK-файлы.
- Google доставляет подписанные APK-файлы пользователям.
Как настроить функцию подписания приложений в Google Play
Шаг 1. Создайте ключ загрузки
- Создайте ключ загрузки, следуя инструкциям.
- Подпишите свой набор App Bundle с помощью ключа загрузки.
Шаг 2. Подготовьте выпуск
-
, следуя инструкциям.
- После того как вы выберете тип версии, в разделе "Целостность приложения" появится статус функции подписания приложений в Google Play.
- Чтобы продолжить с ключом подписи приложения, сгенерированным Google, загрузите набор App Bundle. Вы также можете нажать Изменить ключ подписи приложения для доступа к следующим вариантам:
- Использовать ключ подписи приложения, сгенерированный Google. Более чем в 90 % новых приложений используются ключи подписи, созданные Google. Такие ключи нельзя скачать. Это обеспечивает защиту от потери или раскрытия. Если вы выберете этот вариант, то сможете скачать из App Bundle Explorer APK-файлы распространения, которые подписаны с помощью ключа, сгенерированного Google, для других каналов распространения или использовать для них другой ключ.
- Использовать другой ключ подписи приложения. Вы можете использовать ключ подписи другого приложения в вашем аккаунте разработчика (например, если оно предустановлено на некоторых устройствах) или создать локальную копию ключа. В случае взлома копии, хранящейся за пределами серверов Google, повышаются риски безопасности. Если вы хотите использовать другой ключ подписи, доступны следующие варианты:
- Использовать ключ подписи другого приложения из этого аккаунта разработчика.
- Экспортировать и загрузить ключ из Java Keystore.
- Экспортировать и загрузить ключ (не использовать Java Keystore).
- Выполните оставшиеся действия для подготовки и внедрения выпуска.
Примечание. Чтобы продолжить, нужно принять Условия использования и включить функцию подписания приложений.
Шаг 3. Зарегистрируйте ключ подписи приложения у поставщиков API
Как правило, если в приложении используются API, необходимо зарегистрировать ключ подписи у их поставщиков в целях аутентификации. Для этого нужен цифровой отпечаток сертификата. Вот как найти сертификат:
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Прокрутите страницу вниз до раздела "Сертификат для ключа подписи приложения" и скопируйте цифровые отпечатки (MD5, SHA-1 и SHA-256) сертификата подписания приложений.
- Если поставщик API требует другой тип цифрового отпечатка, вы можете скачать оригинальный сертификат в формате DER и преобразовать его с помощью необходимых инструментов.
Если вы решите использовать ключ, сгенерированный Google, для вас будет автоматически создан криптостойкий 4096-битный ключ RSA. Если вы хотите загрузить собственный ключ подписи приложения, используйте ключ RSA размером не менее 1024 бит.
Шаг 1. Настройте функцию подписания приложений в Google Play
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Если вы ещё этого не сделали, ознакомьтесь с Условиями использования функции подписания приложений в Google Play и нажмите Принять.
Шаг 2. Отправьте в Google копию оригинального ключа и создайте ключ загрузки
- Найдите оригинальный ключ подписи приложения.
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- Экспортируйте и загрузите ключ подписи приложения тем способом, который больше всего подходит для вашего процесса выпуска.
Шаг 3. Создайте ключ загрузки (необязательно, но рекомендуется)
-
и загрузите сертификат в Google Play.
- В качестве ключа загрузки можно также использовать ключ подписи приложения.
- Скопируйте цифровые отпечатки (MD5, SHA-1 и SHA-256) сертификата подписания приложений.
- Для проведения тестирования вам может потребоваться зарегистрировать у поставщика API сертификат ключа загрузки с помощью цифрового отпечатка сертификата и ключа подписи приложения.
Шаг 4. Подпишите следующее обновление своего приложения ключом загрузки
Выпускаемые обновления приложения нужно подписывать ключом загрузки.
- Если вы не сгенерировали новый ключ загрузки, продолжайте использовать для наборов App Bundle оригинальный ключ подписи приложения. Если вы потеряете этот ключ подписи, то сможете сгенерировать новый ключ загрузки и зарегистрировать его в Google, чтобы и дальше выпускать обновления.
- Если вы сгенерировали новый ключ загрузки, используйте его для подписания наборов App Bundle. Google использует ключ загрузки для проверки вашей личности. Если вы потеряете ключ загрузки, обратитесь в службу поддержки, чтобы его сбросить.
Как создать ключ загрузки и обновить хранилища ключей
В целях безопасности рекомендуем подписывать приложение новым ключом загрузки, а не ключом подписи приложения.
Вы можете создать ключ загрузки, когда будете включать функцию подписания приложений в Google Play, или сгенерировать его позже на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
Вот как создать ключ загрузки:
- Следуйте инструкциям на сайте для разработчиков Android. Храните ключ в безопасном месте.
- Экспортируйте сертификат для ключа загрузки в формате PEM. В следующем примере команды вместо аргументов, выделенных подчеркиванием, укажите свои значения:
- $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
Когда в процессе выпуска появится запрос, загрузите сертификат, чтобы зарегистрировать его в Google.
Если вы используете ключ загрузки:
- Ключ загрузки регистрируется в Google только для аутентификации личности создателя приложения.
- Ваша подпись удаляется из всех загруженных APK-файлов, прежде чем они попадают к пользователям.
- Ключом загрузки должен быть ключ RSA размером не менее 2048 бит.
Создав ключ загрузки, проверьте и при необходимости обновите следующие местоположения:
- локальная система;
- защищенный локальный сервер (с различными списками контроля доступа);
- облачная система (с различными списками контроля доступа);
- специальные сервисы по управлению ключами;
- репозитории Git.
Как обновить ключ подписи для новых установок приложения
В некоторых случаях вы можете запросить обновление ключа подписи приложения. Новый ключ будет использоваться для подписи новых установок и обновлений приложения, а устаревший – для обновлений подписанных им версий, которые уже установлены пользователями.
Для каждого приложения ключ подписи можно обновить только один раз. В маловероятном случае, когда вы используете один ключ подписи для нескольких приложений, чтобы запускать их в одном процессе, ключ нельзя обновить.
Запрашивать обновление ключа подписи приложения следует в таких случаях:
- Вам нужен более криптостойкий ключ.
- Ключ подписи приложения взломан.
Примечание. Запрос на обновление ключа подписи приложения в Play Console не связан с ротацией ключей в схеме подписания APK-файлов версии 3 для Android P и более поздних версий. В настоящее время такая ротация ключей не поддерживается Google Play.
Прежде чем запрашивать обновление ключа, важно понять, какие изменения это повлечет.
- Если вы применяете один ключ подписи для нескольких приложений, чтобы использовать в них одинаковые данные или код, обновите приложения. Тогда они смогут распознавать сертификаты как нового, так и устаревшего ключа.
- Если в приложении используются API, перед публикацией его обновления обязательно зарегистрируйте сертификаты для нового и устаревшего ключей подписи приложения у поставщиков API. Сертификаты доступны на странице Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения) в Play Console.
- Пользователи вашего приложения, которые скачивают обновления через файлообменные сети, смогут устанавливать только обновления, подписанные тем же ключом, что и версия приложения на их устройствах. Если приложения нельзя обновить, поскольку установленная версия подписана другим ключом, пользователи могут удалить и переустановить его, чтобы получать обновления.
- Откройте Play Console и перейдите на страницу Функция подписания приложений в Google Play (Выпуск > Настройка > Целостность приложения).
- В карте "Обновите ключ подписи для новых установок приложения" выберите Запросить обновление ключа.
- Выберите, что сделать с устройством.
- В зависимости от выбранного варианта, возможно, придется обратиться в службу поддержки, чтобы завершить запрос.
- Разрешите Google создать новый ключ подписи приложения (рекомендуется) или загрузите его.
- После обновления ключа подписи приложения, если он совпадал с ключом загрузки, вы можете и дальше использовать прежний ключ подписи приложения в качестве ключа загрузки или сгенерировать новый ключ загрузки.
- При необходимости зарегистрируйте новый ключ подписи приложения у поставщиков API.
Рекомендации
Что делать, если ключ загрузки утерян или взломан
Если вы потеряли доступ к закрытому ключу загрузки или он был взломан, создайте новый и попросите владельца вашего аккаунта обратиться в службу поддержки, чтобы сбросить ключ. При обращении в службу поддержки владелец аккаунта должен прикрепить файл upload_certificate.pem .
Когда команда службы поддержки зарегистрирует новый ключ загрузки, вы получите электронное письмо, а затем сможете обновить хранилища ключей и зарегистрировать ключ у поставщиков API.
Важно! Сброс ключа загрузки не затрагивает ключ подписи приложения, с помощью которого Google Play подписывает APK-файлы перед отправкой пользователям.
Схема подписи APK версии 4
Устройства с Android 11 и более поздними версиями поддерживают новую схему подписи APK версии 4. В рамках функции подписания приложений в Google Play будет выпущена подпись версии 4 для выбранных приложений. Благодаря этому в них можно будет использовать предстоящие функции повышения производительности, доступные на новых устройствах. Никаких действий со стороны разработчика не требуется, никакого влияния на пользователя не ожидается.
После создания приложения, его тестирования и отладки мы можем приступить к его публикации. Суть публикации заключается в создании файла с расширением .apk, которое будет представлять приложение, и его последующее размещение в Google Play Market или на других внешних сайтах. По умолчанию в процессе отладки и создания приложения файл apk уже создается, и мы можем его найти в папке проекта по пути Название_проекта\app\build\outputs\apk. По умолчанию файл называется app-debug.apk и представляет debug-версию.
Но для полноценно публикации данного файла может оказаться недостаточно. И нам еще дополнительно надо произвести некоторую подготовку проекта к релизу. Для это следует указать в файле манифеста у элемента <manifest> установлены атрибуты android:versionCode и android:versionName . Также в файле манифеста элемент <application> не должен содержать атрибута android:debuggable
Кроме того, на этом этапе можно установить иконку для приложения, которая будет отображаться на рабочем экране гаджета, название приложения (атрибут android:label у элемента), а также можно задать лицензионное соглашение.
В файле манифеста также следует определить название пакета (атрибут package элемента <manifest> ), которое будет использоваться для приложения в дальнейшем. По умолчанию при разработке в Android Studio пакеты приложений начинаются с com.example. Не стоит оставлять данное название, так как название пакета будет служить уникальным идентификатором вашего приложения. Например, ниже в моем случае названием пакета служит "com.maverics.eugene.telephonelist":
При этом если в файлах кода java название пакета в начале файла также должно соответствовать пакету приложения.
Установка требований
На этапе подготовки к релизу также можно установить требования к API. Например, наше приложение имеет определеную минимальную версию ОС Android, поэтому мы можем установить в файле манифеста соответствующие атрибуты у элемента <uses-sdk>
android:minSdkVersion — минимальная версия Android
android:targetSdkVersion — оптимальная версия API
android:maxSdkVersion — максимальная версия системы
Например, пусть минимальная версия Jelly Beans 4.1.2, а оптимальная KitKat 4.4.4:
Подпись приложения
Когда все уже готово, приложение для Android должно быть подписано сертификатом, благодаря которому можно идентифицировать автора приложения. Когда мы тестируем приложение, устанавливая его через Android Studio на устройство, то оно подписывается автоматически. Но для создания релиз-версии нам надо произвести дополнительно ряд действий.
При создании сертификата следует помнить, что при обновлении приложения система будет сравнивать сертификаты старой и новой версии. И обновление будет происходить, если сертификаты обоих версий совпадут. Но если новая версия будет подписана новым сертификатом, то приложение будет расцениваться как совершенно новое, никак не связанное со старой версией и представляющее совершенно другое приложение. В этом случае чтобы его установить, новая версия должна будет иметь другой название пакета, нежели старая.
Во-первых, в Android Studio выберем в меню пункт Build -> Generate Signed APK . После этого нам откроется окно мастера:
Нажмем на кнопку Create new. . После этого нам откроется окно создания ключа:
Введем в поле Key store path путь к файлу сетификата, который будет создан. Если указанной папки не существует, то ее надо создать или определить существующую папку.
В поле Password/Confirm указываем пароль.
В поле Alias указываем псевдоним. Можно поставить произвольное название.
В поле First and Last Name вписываем имя и фамилию. И далее пишим подразделение, организацию, город, страну и код страны.
В конце нажимаем OK.
После этого автоматически обновится первое окошко:
Далее нажмем на кнопку Next:
Финальное окно покажет нам путь к каталогу, где будет находиться подписанное приложение apk в release-версии. Нажмем на Finish.
Теперь по указанному пути можно будет найти подписанный apk, который будет иметь название app-release.apk:
Мы можем переименовать файл, сохранив его расширение и выложить в Play Market или на любой сайт или сразу загрузить на мобильное устройство. После загрузки на телефон/планшет достоточно нажать на него, и с помощью стандартного установщика пакетов приложение будет установлено. Правда, здесь также надо учитывать, что если мы устанавливаем приложение не из Play Market, то в настройках надо разрешить установку из других источниках - Безопасность->Неизвестные источники (Разрешить установку приложений из других источников)
Итак, вы трудились много дней (а может и ночей), и вот ваше первое гибридное мобильное приложение готово. Оно достаточно стабильно, большинство критичных багов закрыто. Остались мелкие, но помня о том, что перфекционизм — зло, вы принимаете волевое решение выложить приложение.
Необходимое условие для этого — наличие подписанного APK файла. Как подписать apk файл, вы узнаете из этой статьи.
Небольшое отступление
Когда мой pet project вплотную приблизился к релизу, я начал искать информацию о том, как быстро и без боли опубликовать приложение. Множество найденных инструкций выглядели простыми. Я выбрал инструкцию авторов фреймворка Ioniс, на котором и разработано приложение. Не все получилось с первого раза, есть несколько особенностей. Процесс подписывания описан в этой статье, важные моменты особо выделены.
Исходные данные
Я предполагаю, что у вас настроено все необходимое для разработки гибридных мобильных приложений с помощью Apache Cordova. Должно быть установлено:
- Apache Cordova
- Java Development Kit
- Android SDK Tools
Поехали
Для начала нужно создать релизный билд вашего приложения. Но перед этим, давайте убедимся, что все лишние плагины удалены. Например, нам не нужен плагин, который выводит отладочную информацию в консоль. Удалим его:
Для генерации релизной сборки под Андроид используем команду build с флагом --release:
Эта команда создаст неподписанный APK файл в каталоге:
Например, platforms/android/build/outputs/apk/android-release-unsigned.apk. Потом нам понадобится подписать этот файл и запустить утилиту zipalign для оптимизации и подготовки файла для Google Play.
Для подписывания файла нужен сертификат. Создадим его с помощью утилиты keytool, которая включена в JDK:
Значение параметра -alias необходимо запомнить, а лучше записать. В примере выше он равен lcf (по первым буквам названия приложения Loyal Client Free). Детали здесь приводить не буду, если будет интересно, напишите в комментарии, я расскажу подробнее.
Алиас используется каждый раз при подписывании* приложения. Чтобы было проще запомнить, в качестве алиаса используйте имя keystore файла, например:
* Подписывать приложение нужно при каждом выпуске обновлений
Утилита keytool задает ряд вопросов. Всего их будет 8. Чтобы заранее иметь представление о вопросах и примерных ответах, все они приведены далее, под спойлером.
1. Enter keystore password:
Здесь необходимо ввести пароль для файла (не менее 6 символов). Введенный пароль нужно записать в надежном месте, он нужен всякий раз при подписывании приложения.
2. Re-enter new password:
Повторный ввод пароля.
3. What is your first and last name?
[Unknown]: Ivan Petrov
Ваше имя и фамилия. Значение в квадратных скобках — это значение по умолчанию.
4. What is the name of your organizational unit?
[Unknown]: IT
Название подразделения вашей компании. Можно оставить пустым, я указываю IT.
5. What is the name of your organization?
[Unknown]: 2developers
Название вашей организации. Укажите, если есть.
6. What is the name of your City or Locality?
[Unknown]: Moscow
Название города
7. What is the name of your State or Province?
[Unknown]: MO
Название области
8. What is the two-letter country code for this unit?
[Unknown]: RU
Код страны. Я указываю RU.
Далее будет предложено проверить введенную информацию:
Is CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU correct?
Подтверждайте, если все верно или нажмите Enter, чтобы ввести еще раз.
В текущем каталоге будет создан файл lcf.keystore.
Созданный файл нужно сохранить в надежном месте. Если вы используете закрытый репозиторий, то файл можно закоммитить вместе с исходными кодами приложения. В общем случае, сертификаты лучше хранить отдельно. В случае утери сертификата вы не сможете выпускать обновления приложения.
Осталось два шага, и вы получите готовый к распространению APK файл. Переходим непосредственно к подписыванию.
Чтобы подписать ваш apk файл, используйте утилиту jarsigner, которая тоже включена в JDK.
Имя сертификата указывается после параметра -keystore, алиас — после имени файла.
Наконец, для оптимизации apk файла, воспользуемся утилитой zipalign:
Последний параметр — это имя файла, который вы будете загружать в Google Play.
Утилита zipalign это часть Android SDK Tools и может быть найдена здесь:
Читайте также: