Збірка та підписання білдів для Meta Quest Store

Складання та підписання білдів для Meta Quest Store часто перетворюється на низку несподіваних помилок — від невідповідності keystore до пропущених дозволів у маніфесті. Ми беремо на себе весь цикл: налаштовуємо релізні збірки, перевіряємо entitlements і маніфест, підписуємо APK/AAB. Наша команда реалізує проєкт під ключ — від генерації keystore до фінальної підтримки під час сабміту, щоб ви пройшли модерацію без сюрпризів.
Часті запитання

Збірка та підписання білдів для Meta Quest Store

Ми інтегруємо та налаштовуємо релізні збірки для Meta Quest Store — від генерації keystore до фінального підпису APK/AAB. Жодних сюрпризів при сабміті: всі entitlement, маніфест та налаштування пакета перевіряються до відправки. Якщо ви вже стикалися з помилкою INVALID_CREDENTIALS після переходу на релізний keystore — ймовірно, fingerprint не збігається. Опишемо типові проблеми та процес їх вирішення.

Де конкретно ламається ланцюжок підпису

Найчастіша проблема — невідповідність keystore між debug та release збірками. Розробник тестував додаток місяцями з debug keystore, все працювало. При переході на релізний keystore з іншим SHA-1 перестають працювати entitlements, прив'язані до додатку в Horizon Developer Dashboard. Користувач встановлює додаток, відкриває — отримує помилку авторизації в Platform SDK, тому що OVRPlatform.Initialize() повертає INVALID_CREDENTIALS.

Другий клас проблем — AndroidManifest.xml. Meta вимагає набір специфічних permissions та intent-filter: com.oculus.permission.HAND_TRACKING, com.oculus.permission.EYE_TRACKING, com.oculus.intent.category.VR. Якщо додаток використовує passthrough, потрібно явно прописати com.oculus.permission.USE_SCENE та horizonos.permission.USE_ANCHOR_API для просторових якорів. Пропустив один — функція мовчки не працює, без помилок у логах, тільки якщо увімкнути verbose в adb logcat.

Окремо варто quest_categories в manifest.json пакета Horizon Store. Неправильна категорія або відсутній supported_input_devices — і додаток не пройде автоматичну перевірку. Meta перевіряє відповідність маніфесту заявленим функціям додатку.

Процес збірки релізного білда

Працюємо через Oculus Developer Hub або безпосередньо через командний рядок з adb та apksigner з Android SDK Build Tools. Для Unity-проєктів — Gradle wrapper, налаштування в launcherTemplate.gradle та mainTemplate.gradle.

Ключові кроки для коректного release-білда:

  • Keystore генерується через keytool з параметрами -keyalg RSA -keysize 2048 -validity 10000. Зберігається окремо від репозиторію, SHA-1 та SHA-256 зберігаються в захищеному сховищі проєкту. В Unity — Player Settings → Publishing Settings → Use Custom Keystore.
  • target-api-level має бути 32 або вище для нових сабмітів (актуальне значення уточнюється в документації Horizon OS — Meta періодично підвищує мінімальний поріг).
  • Для перевірки підпису перед сабмітом: apksigner verify --verbose --print-certs app-release.apk. Переконуємося, що ланцюжок сертифікатів коректний та fingerprint збігається із зареєстрованим в Dashboard.
  • Тестування підписаного білда на пристрої — через adb install -r app-release.apk. Перед тестом видаляємо debug-версію повністю, інакше система може підхопити старі credentials.

Специфіка для різних каналів дистрибуції

Meta Quest Store передбачає кілька каналів: App Lab (для ранніх тестерів без повного рев'ю), Horizon Store (публічна публікація з повним рев'ю), та Side Quest / sideloading для внутрішнього тестування.

Для App Lab та Horizon Store вимоги до підпису ідентичні — різниця лише в процесі рев'ю. Для sideloading можна використовувати debug keystore, але тільки для внутрішніх тестів — це не релізний флоу.

Якщо в проєкті використовується Passthrough API або Mixed Reality Utility Kit (MRUK), в manifest.json додається секція required_feature з PASSTHROUGH. Без цього додаток не запуститься на пристроях з вимкненим passthrough.

Тип збірки Keystore Target API Перевірка entitlements
Debug / Dev Mode Debug keystore Будь-який Опціонально
App Lab Release keystore ≥ 32 Обов'язково
Horizon Store Release keystore ≥ 32 Обов'язково + рев'ю Meta

Як влаштований процес роботи

Отримуємо доступ до Horizon Developer Dashboard організації або працюємо через наданий app ID. Проводимо аудит поточного маніфесту та Gradle-конфігурації. Налаштовуємо keystore-інфраструктуру, якщо її немає. Потім збірка, підписання, тест на пристрої, підготовка пакета для сабміту.

Якщо проєкт вже був опублікований і потребує оновлення — перевіряємо сумісність версії keystore та versionCode (Meta не приймає пакет з versionCode ≤ попередньому).

Що входить в роботу

  • Аудит існуючого маніфесту та конфігурації збірки
  • Генерація та налаштування релізного keystore (з захистом та бекапом)
  • Налаштування маєсту (AndroidManifest.xml) та manifest.json під вимоги Meta
  • Збірка, підписання та перевірка на пристрої
  • Підготовка пакета для сабміту (App Lab / Horizon Store)
  • Документація щодо процесу та доступи
  • Підтримка при відхиленні рев'ю (одна ітерація)

Чому варто довірити збірку нам?

Маємо понад 7 років досвіду у VR/AR-проєктах на Unity та Unreal Engine. Випустили більше 15 додатків у Meta Quest Store — 95% з них пройшли рев'ю з першого разу. Знаємо всі типові помилки: від пропущених entitlement до невірної категорії в manifest.json. Наше налаштування зменшує ризик відхилення в 3 рази порівняно із самостійною збіркою. Ми гарантуємо, що підписаний APK пройде автоматичну перевірку Meta за умови коректного маніфесту з вашого боку.

Терміни: налаштування з нуля — 1-2 робочих дні. Якщо є готовий проєкт з існуючим маніфестом і потрібне лише виправлення та сабміт — кілька годин. Ітерація при відхиленні Meta — залежить від причини.

Вартість послуг: від 200$ за базове налаштування (аудит, підпис, тест) до 800$ за повний супровід з нуля до сабміту. Точну ціну називаємо після оцінки вашого проєкту.

Як виправити помилку INVALID_CREDENTIALS?

Якщо ви отримали цю помилку після переходу на release keystore, перш за все перевірте відповідність SHA-1 та SHA-256 в Dashboard та у підписаному пакеті. Виконайте apksigner verify --print-certs app-release.apk і порівняйте з тим, що зареєстровано. Якщо не збігається — оновіть fingerprint у Dashboard. Якщо збігається, проблема може бути в тому, що додаток не ініціалізував Platform SDK з правильним App ID. Переконайтеся, що використовується релізний App ID (не debug).

Оцінимо ваш проєкт — напишіть нам, і ми підготуємо план робіт та точну вартість. Під ключ з гарантією проходження рев'ю.

Наші компетенції

Останні роботи

  • Розробка гри для компанії Mortal Motors
    Розробка гри для компанії Mortal Motors
    1709
  • Покрокова стратегія у фентезі сеттингу With Fire And Sword
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    1181
  • Розробка ігри для компанії Second term
    Розробка ігри для компанії Second term
    808
  • 3D-анімація – тизер для гри phoenix 2.
    3D-анімація – тизер для гри phoenix 2.
    899
  • Навчальна вікторина для дітей «Покупки в магазині»
    Навчальна вікторина для дітей «Покупки в магазині»
    402

Інші послуги студії

VR/AR/MR застосунки на замовлення

Вражайте клієнтів і навчайте команду у віртуальній реальності

Розробка ігор на Unity

Від ідеї до релізу — ігри, які запам'ятовуються

3D-моделювання та анімація

Оживимо ваш продукт в об'ємній графіці та анімації

VR-тренажери промислового обладнання

Тренуємо операторів на техніці без ризику і простою

AR-інструкції для виробництва

Покрокові підказки прямо на обладнанні — без паперу

Safety-тренажери

Відпрацювання НС і техніки безпеки без виходу на об'єкт

VR/AR-тренінги

Навчаємо персонал сервісу, адаптації та soft skills у VR

Навчальні вікторини

Перевірка знань у форматі гри — легко і без стресу

Корпоративні відеоінструкції

Зрозумілі ролики для навчання співробітників і клієнтів

Гейміфікація бізнес-процесів

Мотивуємо команду через ігрові механіки в KPI та HR

Застосунки для інфокіосків

Інтерактивні екрани для магазинів, стендів і офісів

VR/AR-інсталяції

Wow-ефект для брендів на виставках, івентах і в шоу-румах

Віртуальні виставки та музеї

Ваша експозиція доступна з будь-якої точки світу — 24/7

Event-квести та брендовані ігри

Незабутні ігри для конференцій та клієнтських івентів