Apk файл или набор android app bundle содержит значок в недопустимом формате

Обновлено: 04.07.2024

С августа 2021 года все новые приложения должны публиковаться в Google Play в формате набора Android App Bundle. Кроме того, во всех новых приложениях размером более 150 МБ должны использоваться технологии Play Asset Delivery или Play Feature Delivery.

Чтобы узнать больше, прочитайте эту запись в блоге для разработчиков Android.

Благодаря внутреннему доступу к приложениям вы можете быстро поделиться набором App Bundle или APK-файлом со своей командой и тестировщиками, загрузив его на специальную страницу и создав ссылку. Вы можете разрешить скачивать файлы всем, у кого есть ссылка, или только пользователям из списка.

Прежде чем начать

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

  • Если у вас есть разрешение на выпуск версий для тестирования приложения, вы по умолчанию можете загружать APK-файлы для внутреннего доступа.
  • Существующие номера версий наборов App Bundle и APK-файлов можно использовать повторно.
  • Вы можете загружать APK-файлы, доступные для отладки, и делиться ими.
  • Загруженные для внутреннего доступа объекты не видны в App Bundle Explorer, и их нельзя включить в выпуски тестовых или рабочих версий.
  • Их можно подписать любым ключом, не только ключом загрузки или регистрации. После этого они будут повторно подписаны с помощью ключа для внутреннего доступа к приложению. Этот ключ создается Google.
  • Вы можете поделиться ссылкой на внутренний доступ к приложению с любым количеством пользователей, но скачать его по этой ссылке смогут только 100 из них.
  • Ссылки для скачивания становятся недействительными через 60 дней после загрузки файлов.

Загрузка приложений и совместный доступ

Добавление авторизованных пользователей и тестировщиков

Вариант 1. Создание нового списка пользователей с разрешением на загрузку

  1. Откройте Play Console.
  2. Выберите приложение.
  3. В меню слева нажмите Версия > Внутреннее тестирование > Внутренний доступ к приложениям.
  4. На вкладке Пользователи с правами загрузки и тестировщики найдите раздел "Управление пользователями с правами загрузки" и выберите Создать список рассылки.
  5. Укажите название списка.
    • В дальнейшем этот список можно будет использовать для тестирования любых ваших приложений.
  6. Добавьте адреса электронной почты участников через запятую или нажмите Загрузить CSV-файл. В CSV-файле каждый адрес электронной почты должен находиться в отдельной строке. Между адресами не должно быть запятых.
    • Если вы загрузите CSV-файл после того, как ввели адреса электронной почты, все добавленные вручную адреса будут удалены, а вместо них будет использован загруженный список.
    • Пользователи с разрешением на загрузку не обязательно должны иметь доступ к вашему аккаунту Play Console.
  7. Нажмите Сохранить изменения.
  8. Установите флажки рядом с названиями списков, которые вы хотите использовать.

Примечание. Созданный список адресов электронной почты можно использовать повторно, чтобы в аккаунте разработчика Google Play добавить пользователей с разрешением на загрузку, скачивание или тестирование версий.

Вариант 2. Применение существующего списка пользователей с разрешением на загрузку

  1. Откройте Play Console.
  2. Выберите приложение.
  3. В меню слева нажмите Версия > Внутреннее тестирование > Внутренний доступ к приложениям.
  4. На вкладке Пользователи с правами загрузки и тестировщики найдите раздел "Управление пользователями с правами загрузки" и установите флажки рядом с названиями нужных списков.

Важно! Предоставьте авторизованным тестировщикам инструкции о том, как включить внутренний доступ к приложениям.

Вариант 1. Открытие доступа к приложению по ссылке

  1. Откройте Play Console.
  2. Выберите приложение.
  3. В меню слева нажмите Версия > Внутреннее тестирование > Внутренний доступ к приложениям.
  4. На вкладке Пользователи с правами загрузки и тестировщики найдите раздел "Управление пользователями с правами загрузки" и убедитесь, что выбран вариант "Любой пользователь, которому вы дали эту ссылку, сможет скачать файлы" (этот вариант выбран по умолчанию).

Вариант 2. Создание нового списка авторизованных тестировщиков

  1. Войдите в Play Console.
  2. Выберите приложение.
  3. В меню слева выберите Инструменты разработчика > Внутренний совместный доступ.
  4. Перейдите на вкладку "Авторизованные тестировщики".
  5. В разделе "Доступность ссылки" выберите Списки рассылки.
  6. Нажмите Создать список.
  7. Укажите название списка. В дальнейшем этот список можно будет использовать для тестирования любых ваших приложений.
  8. Добавьте адреса электронной почты участников через запятую или нажмите Загрузить новый CSV-файл. В CSV-файле каждый адрес электронной почты должен находиться в отдельной строке. Между адресами не должно быть запятых.
    • Примечание. Если вы загрузите CSV-файл после того, как ввели адреса электронной почты, все добавленные вручную адреса будут удалены, а вместо них будет использован загруженный список.
  9. Нажмите Сохранить.
  10. Установите флажки рядом с названиями списков, которые вы хотите использовать.

Примечание. Созданный список адресов электронной почты можно использовать повторно, чтобы в аккаунте разработчика Google Play добавить пользователей с разрешением на загрузку, скачивание или тестирование версий.

  1. Откройте Play Console.
  2. Выберите приложение.
  3. В меню слева нажмите Версия > Внутреннее тестирование > Внутренний доступ к приложениям.
  4. Выберите вкладку Списки рассылки.
  5. В разделе "Пользователи с разрешением на скачивание" нажмите Создать список рассылки.
  6. Укажите название списка.
    • В дальнейшем этот список можно будет использовать для тестирования любых ваших приложений.
  7. Добавьте адреса электронной почты участников через запятую или нажмите Загрузить CSV-файл. В CSV-файле каждый адрес электронной почты должен находиться в отдельной строке. Между адресами не должно быть запятых.
    • Если вы загрузите CSV-файл после того, как ввели адреса электронной почты, все добавленные вручную адреса будут удалены, а вместо них будет использован загруженный список.
    • Пользователи с разрешением на загрузку не обязательно должны иметь доступ к вашему аккаунту Play Console.
  8. Нажмите Сохранить изменения.
  9. Установите флажки рядом с названиями списков, которые вы хотите использовать.

Примечание. Созданный список адресов электронной почты можно использовать повторно, чтобы в аккаунте разработчика Google Play добавить пользователей с разрешением на загрузку, скачивание или тестирование версий.

Вариант 3. Применение существующего списка авторизованных тестировщиков

  1. Откройте Play Console.
  2. Выберите приложение.
  3. В меню слева нажмите Версия > Внутреннее тестирование > Внутренний доступ к приложениям.
  4. Выберите вкладку Списки рассылки.
  5. В разделе "Пользователи с разрешением на скачивание" установите флажок рядом с названиями нужных списков.

Включение внутреннего доступа к приложениям авторизованными тестировщиками

Прежде чем авторизованные тестировщики смогут скачать приложения, им необходимо включить внутренний доступ в приложении "Play Маркет".

  1. Откройте Play Маркет .
  2. Нажмите на значок меню > Настройки.
  3. В разделе "О приложении" коснитесь пункта "Версия Play Маркета" семь раз.
  4. Когда появятся настройки внутреннего совместного доступа к приложениям, включите доступ, нажав на переключатель.
  5. Нажмите Включить.

Скачивание сертификатов

Некоторые поставщики API запрашивают сертификат, чтобы связать его с названием пакета приложения. Когда вы впервые добавляете APK-файл на страницу загрузки для внутреннего доступа, Play Console создает сертификат, который используется для каждой загрузки этого приложения. Все APK-файлы повторно подписываются этим тестовым сертификатом независимо от того, какой сертификат изначально использовался для подписания приложения.

Чтобы скачать тестовый сертификат:

Как устранить неполадки

Ниже описываются способы устранения проблем, возникающих при использовании внутреннего доступа к приложениям.

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

Приложение нельзя скачать для внутреннего тестирования, если оно недоступно пользователю в Google Play. Чтобы тестировщики могли скачать внутреннюю версию приложения, им нужен доступ к странице приложения в Google Play.

Вот несколько причин, почему внутренняя версия приложения может быть недоступна для пользователя:

  • Приложение не распространяется в стране пользователя.
  • Не опубликована рабочая версия приложения или опубликована тестовая, к которой у пользователя нет доступа.

Если вы поделились ссылкой для внутреннего доступа к приложению с большим количеством пользователей, вероятно, лимит скачиваний по этой ссылке будет исчерпан (он составляет 100 пользователей).

Чтобы увеличить количество пользователей, которые могут скачать приложение по ссылке, загрузите тот же APK-файл или набор App Bundle, и вы получите новую ссылку. По каждой уникальной ссылке приложение могут скачать не более 100 пользователей.

Если срок действия ссылки для внутреннего доступа к приложению истек, повторно загрузите тот же APK-файл или набор App Bundle, чтобы получить новую ссылку.


Традиционно приложения Android были доступны в формате APK, но все стало меняться с появлением Android App Bundle и различных дополнительных расширений, таких как APKM, XAPK или файлы ZIP с несколькими APK.

Android App Bundles - это официальный формат для публикации приложений в Google Play, хотя он несколько загадочнее, чем APK всей жизни. Здесь мы увидим, что такое Android App Bundle, какие у них есть преимущества и чем они отличаются от APK.

Что такое Android App Bundle (.aab)

В наборах приложений для Android нет ничего нового. Google представил их нам на Google I/O в 2018 году как новый формат публикации, который уменьшит размер загрузок для пользователей, что, согласно исследованиям Google, приводит к большему количеству загрузок и меньшему количеству удалений.

По сути, App Bundle содержит все ресурсы приложения, хотя его нельзя установить непосредственно на мобильный телефон. То есть включены база и остальная часть рекурсора, такая как графика, макеты и тексты для всех возможных конфигураций.


При таком большом количестве вещей внутри возникает вопрос: как может быть одно из преимуществ App Bundle в том, что они занимают меньше? Ответ заключается в том, что App Bundle, который создает разработчик, занимает больше, чем APK. Наименьший размер - это скачиваемый APK, который доходит до пользователей и который Google Play генерирует из указанного App Bundle.

То же приложение, опубликованное в App Bundle, занимает больше, чем в APK, но не файл, который пользователи будут скачивать в Google Play.

На самом деле это намного проще, чем кажется. Если разработчик создает приложение и публикует его в формате APK, это нормально, что включены все ресурсы, например графика на 30 языках, поддерживаемых приложением. Для простоты, если размер каждого изображения составляет 100 КБ, в указанном APK-файле будет 3000 КБ.

Пакет приложений в формате .AAB включает в себя абсолютно все, но серверы Google анализируют его содержимое и генерируют файлы APK со всеми возможными конфигурациями, включая только ресурсы указанной конфигурации. То есть пользователь загружает APK, который вместо графики для 30 языков включает только те, которые настроены на мобильном устройстве. Вместо 3000 КБ это 100 или 200 КБ.

Что, если пользователь позже изменит язык мобильного телефона? К счастью, все предусмотрено. В таком случае Google Play загружает дополнительные языковые файлы из вашего магазина. То же самое относится к модульным дополнительным функциям, которые включены в приложение и которые могут быть загружены позже, но не включены в первоначальную загрузку.

Как видим, уменьшение размера загрузки - главное преимущество этого формата по сравнению с традиционной публикацией в APK, хотя и не единственное преимущество. В прошлом Google выделял 16 веских причин для разработчиков использовать App Bundle вместо APK: меньшее время разработки, дополнительная информация в консоли Google Play, более короткое время компиляции, модульные функции .

Чем APK отличается от Android App Bundle (.aab)?

До сих пор мы много говорили о App Bundle с точки зрения разработчиков приложений, но как пользователь, чем один отличается от другого? Вопрос действительно сложный, потому что как пользователь вы не должны сталкиваться с App Bundles: это пакет для разработчиков, которые публикуют свои приложения в Google Play. Как пользователь, вы ничего не можете с этим поделать, по крайней мере, без необходимых инструментов и знаний.

И все же мы находим их в конкретном случае: когда мы хотим установить приложения из-за пределов Google Play (на сторонних сайтах), и они доступны не в APK, а в App Bundle. То, что мы здесь загружаем, на самом деле не является оригинальным пакетом приложений, а представляет собой набор APK-файлов, созданных Google для различных конфигураций.

APKM, XAPK и другие форматы - это ZIP-файлы со строкой APK внутри, которые необходимо установить одновременно.


То есть App Bundle является заменой APK при публикации приложения в Google Play, но не при его установке. Файлы APK продолжают устанавливаться на мобильный телефон, хотя и не один, а несколько, включая только то, что необходимо для его работы на вашем мобильном телефоне.

С помощью App Bundle, который загружает разработчик, Google генерирует бесчисленное количество пользовательских APK-файлов, которые позволяют ускорить загрузку приложений. App Bundle и APK не противоположны, а дополняют друг друга. Это хорошее изобретение, хотя, несомненно, усложняет установку приложений из внешних источников.

Отличие Android App Bundle (.aab) от APK файла

Отличие Android App Bundle (.aab) от APK файла Reviewed by Admin on июля 05, 2021 Rating: 5

На недавно прошедшей Google I/O 2018, среди множества нововведений, объявили также о добавлении нового формата приложений.

Этот формат получил название Android App Bundle и представляет собой улучшенный способ сборки вашего приложения. С его помощью можно легко оптимизировать размер приложения, при этом не нужно будет вносить какие-либо изменения в код. Android App Bundle включает весь скомпилированный код и ресурсы, отсеивая затем то, что не нужно конкретному устройству.

Важно! На данный момент Android App Bundle работает только в preview-версии Android Studio. Последняя версия Android Studio 3.2 Canary доступна здесь.

Android App Bundle представляет собой файл (с расширением .aab), который загружается в Google. Каждый бандл включает скомпилированный код и ресурсы для всех модулей приложения и поддерживаемых конфигураций устройств.

Проще говоря, бандлы это подписанные ZIP-файлы, которые упорядочивают код и ресурсы приложения в модули.


Из этих модулей Google Play генерирует различные APK, которые предоставляются пользователям, такие как: базовые APK, dynamic feature APK, конфигурационные APK и (для устройств, которые не поддерживают разделённые APK) мульти-APK. Каталоги, окрашенные в синий цвет, представляют собой код и ресурсы, которые Google Play использует для создания конфигурационного APK для каждого модуля.

Примечание: бандл нужно создавать для каждого уникального приложения или applicationID. То есть, если вы используете несколько product flavor в своём приложении для создания различных APK, и каждая из этих веток использует уникальный applicationID, то вам нужно будет создать отдельный бандл для каждой ветки.

Код и ресурсы для каждого модуля организованы аналогично стандартным APK, и это логично, поскольку каждый из этих модулей может быть сгенерирован как отдельный APK. Ниже можно увидеть более подробное описание некоторых файлов и каталогов Android App Bundle:

  • base/, feature1/, feature2/. Каждый из этих каталогов представляет собой модуль приложения. Базовый модуль приложения всегда содержится в базовом каталоге бандла. Директории же с дополнительными особенностями, каждой из которых присваивается специальное имя, находятся отдельно.
  • файлы Protocol Buffer (.pb). Эти файлы содержат метаданные, которые помогают описать содержимое бандла в магазинах приложений. Например, BundleConfig.pb, находящийся в корневом каталоге бандла, предоставляет информацию о самом бандле, например, какая версия build tools используется для сборки. Другие файлы, такие как recourse.pb и native.pb, описывают, как определённый код и ресурсы должны использоваться для различных конфигураций устройств. Google Play использует эту информацию для генерации APK, оптимизированного для устройства пользователя.
  • manifest/. В отличие от APK, бандлы хранят файл AndroidManifest.xml каждого модуля в отдельном каталоге.
  • dex/. В отличие от APK, бандлы хранят DEX-файлы каждого модуля в отдельном каталоге.
  • root/. Этот каталог хранит файлы, которые позже перемещаются в директорию root любого APK, который включает в себя модуль, в котором находится этот каталог. Например, каталог base/root/ бандла может включать ресурсы Java, которые загружаются приложением с помощью использования Class.getResources(). Эти файлы позже перемещаются в директорию root APK приложения и каждого мульти-APK, которые генерирует Google Play. Пути в этом каталоге также сохраняются, то есть, подкаталоги тоже перемещаются вместе с root.
    Примечание: если содержимое этого каталога конфликтует с другими файлами и каталогами в корне APK, Play Console отклонит загрузку бандла. Например, вы не сможете включить каталог root/lib/, поскольку он будет конфликтовать с каталогом lib, уже находящимся в APK.
  • res/, lib/, assets/. Эти каталоги идентичны тем, что используются в стандартном APK. При загрузке приложения, Google Play проверяет в этих каталогах и пакетах только те файлы, которые соответствуют конфигурации целевого устройства.


Если создаётся бандл для debug-версии приложения, Android Studio автоматически подпишет бандл с помощью отладочного ключа подписи. Для загрузки бандла в Google Play он должен быть подписан.

После того, как Android Studio завершит создание подписанного бандла, его можно будет открыть и проанализировать. Анализ бандла позволяет проверить содержимое и работает аналогично APK Analyzer.

Для создания App Bundle IDE использует тот же инструмент с открытыми исходным кодом, называемый bundletool, который Google Play использует для последующего преобразования бандла в подписанные APK.

Прежде чем загрузить бандл в консоль Google Play, его нужно подписать. Чтобы создать подписанный App Bundle, нужно выполнить следующие действия:

После того, как Android Studio завершит создание подписанного бандла, его можно будет найти и проанализировать, выбрав соответствующую опцию во всплывающем уведомлении. Если был выбран экспорт ключа подписи, то к нему можно будет быстро перейти, щёлкнув по стрелке вниз в правом нижнем углу всплывающего уведомления, чтобы развернуть его, и затем выбрав Show Exported Key File.


После того, как бандл создан, его можно загрузить в Google Play для проверки, тестирования или публикации приложения. Прежде чем приступить к работе, следует соблюсти следующие условия:

  1. Зарегистрироваться в программе Google Play App Signing.
  2. Если приложение включает dynamic feature modules, то его можно загружать и тестировать через внутренний тестовый трек консоли Google Play. Однако чтобы опубликовать приложение, нужно принять программу Dynamic Feature, которая на данный момент находится в стадии бета-версии.
  3. Google Play поддерживает загрузку приложений размером не более 100 МБ.

Анализ APK с помощью проводника

Когда бандл загружен, Google Play автоматически генерирует разделённые APK и мульти-APK для всех конфигураций устройств, поддерживаемых приложением. В Play Console можно можно использовать App Bundle Explorer для просмотра всех вариантов APK, сгенерированных Google Play; анализа данных, таких как поддерживаемые устройства и экономия размера APK; загрузки созданных APK для тестирования.

Обновление приложения

После загрузки приложения в Play Console, для обновления приложения достаточно повысить код версии, а также создать и загрузить новый бандл. Затем Google Play сгенерирует обновлённые APK с новым кодом версии и будет предоставлять их по мере необходимости.


Кроме того, Google на данный момент тестирует дополнение к App Bundle, Dynamic feature modules, с помощью которого можно разбивать базовый APK на части, которые будут докачиваться при необходимости, пока что эта технология находится в бета-версии.

Возможно, единственным недостатком банлдов на данный момент назвать необходимость использовать preview-версию Android Studio, однако эта проблема временная.

Наверное, все знают, что APK – это формат, в котором приложения для Android размещаются в Google Play и на сторонних платформах. Но если при загрузке из официального каталога установка происходит автоматически, и пользователь никак не взаимодействует с установочным файлом, то при использовании альтернативных площадок, всё происходит несколько иначе. Сначала вы скачиваете сам APK-файл и уже вручную его устанавливаете. Но некоторое время назад на альтернативных платформах, помимо привычных APK-файлов, стали появляться какие-то Android App Bundles. Разбираемся, что это и зачем вообще нужно.


Android App Bundle – это новый, так называемый «пакетный», формат приложений для Android. В отличие от APK, которые для успешной установки должны соответствовать параметрам смартфона, на который их устанавливают, AAB – это универсальный формат, который уже содержит в себе сведения обо всех устройствах и разных сочетаниях железа сразу.

Как установить Android App Bundle


Посмотрите, сколько APK-файлов у Instagram. Их все заменяет один пакет AAB

Android App Bundle представлены только в единственном экземпляре. Потому что они изначально созданы универсальными и совместимыми с различными устройствами, независимо от сочетаний их аппаратного обеспечения и технических характеристик. При установке пакет сам выдаст смартфону подходящий установочный файл, и тот его установит.

Что такое Camera2 API, зачем это нужно и как узнать, поддерживает ли её ваш смартфон

Поскольку Android App Bundle – это пакет различных компонентов, то они поставляются не в виде целостного файла, а в виде ZIP-архива. Это несёт как минимум одно существенное ограничение – AAB нельзя установить так же просто, как обычные APK-файлы просто по нажатию. С AAB это не прокатывает. Поэтому для их установки необходим специальный клиент, который всё распакует и установит вам на устройство.

Я для этой цели пользуюсь клиентом APKMirror. С ним установка Android App Bundle выглядит вот так:

  • Скачайте установщик APKMirror по этой ссылке (один раз);
  • Найдите и скачайте приложение в формате Android App Bundle;

Android App Bundle

Установить AAB как обычный APK-файл нельзя

  • Нажмите на архив и откройте его с помощью APKMirror;
  • Следуйте инструкциям, которые установщик выведет на экран.

Чем Android App Bundle лучше APK

Несмотря на то что что пакет AAB содержит базовый APK-файл, даже распаковав архив вручную, вы всё равно не сможете его установить. Дело в том, что пакет обычно включает в себя ещё ряд дополнительных компонентов, которые необходимы приложению для нормальной установки. Поэтому тут строго обязательно нужно-приложение установщик, которое работает со сторонними AAB. Так что Google Play для этой роли точно не годится.

Google I/O

В августе 2021 года Google полностью переходит на формат AAB

Может показаться, что всё это слишком сложно и запоминать всю последовательность действий, описанных выше, не имеет смысла. Однако это большое заблуждение, потому что уже в августе 2021 года Google откажется от использования классических APK. То есть все новые приложения и те, которые обновятся к тому времени, уже не будут иметь выделенных APK, а будут представлены на сторонних площадках только в виде AAB.

Google настаивает на использовании Android App Bundle, потому что они, несмотря на универсальность, более легковесны, чем классические APK, и их легче поддерживать. Формат AAB позволяет разработчикам создать только одну сборку приложения, которую будет проще обновлять, контролировать и совершенствовать. Так что учитесь работать с «бандлами», иначе останетесь без стороннего ПО.

Свободное общение и обсуждение материалов



Мы часто рассказываем о современных технологиях и о том, как они на нас влияют. Иногда влияние положительное, иногда - не очень. Во всяком случае, наше поведение и привычки сильно изменились за последние годы, ведь появилось множество разных возможностей, а в некоторых ситуациях мы активно их используем. Думаю, не стоит говорить о том, хорошо это или плохо - это решать исключительно вам. Всегда попытайтесь посмотреть на это со стороны, чтобы понять, как это выглядит. Выбрали несколько привычек в использовании технологий, от которых, кажется, пора уже и отказаться.


С тех пор, как в смартфонах начали появляться сторонние приложения, они вышли на новый уровень и перестали быть готовым продуктом, который мы покупали раньше. Теперь это просто средство для того, чтобы пользоваться приложениями, которые загружаются из фирменных магазинов или сторонних источников. Разработчики постоянно стараются делать свои приложения более удобными и ”юзабельными”, так как им надо выдерживать конкуренцию. Но не отстают и представители платформ, для которых пишутся эти приложения. Они едва ли не больше разработчиков заинтересованы в том, чтобы пользователи были довольны. Вот и очередная инициатива Google в этом направлении подоспела.

Читайте также: