Збірка та підписання білдів ігор для App Store

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Збірка та підписання білдів ігор для App Store
Середня
~1 робочий день
Часті питання

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

Які етапи розробки гри?

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

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    533

Підписання білдів ігор для App Store

Xcode Organizer показує «Upload Successful» — і App Store Connect відправляє лист: «Missing required icon», хоча іконки є в Assets.xcassets. Або білд прийнятий, але TestFlight-білд падає при старті з SIGABRT тому що в Release конфігурації не встановлений флаг Enable Bitcode = NO для одного з плагінів. iOS-сборка для App Store — це управління процесом з дюжиною точок відмови.

Що ломається без правильно вистроєного пайплайна

Code signing хаос. У середнього Unity-проекту з 15+ плагінами — кілька provisioning profile'ів, ручне управління сертифікатами Developer та Distribution, запутані Capabilities (Push Notifications, In-App Purchase, Game Center, Sign in with Apple). При сборці на CI-машині без Keychain з потрібними сертифікатами отримуємо No signing certificate "iOS Distribution" found. Fastlane Match вирішує це систематично: сертифікати та профілі зберігаються в git-репозиторії (зашифровані), CI забирає їх через match(type: "appstore") — ніякого ручного експорту .p12.

Entitlements. Unity генерує Unity-iPhone.entitlements при експорті Xcode-проекту. Якщо Automatically Sign включена в неправильний момент — Xcode перезаписує entitlements, убираючи вручну додані capabilities. PBXProject API в Unity (через UnityEditor.iOS.Xcode) дозволяє програмно додавати entitlements в post-build скрипті — це надійніше ручного редагування.

Incrementing build number. App Store Connect не приймає білд з тим же CFBundleVersion, що і попередній — навіть якщо CFBundleShortVersionString змінився. При ручній сборці про це забувають приблизно в 30% випадків. Автоматизація через Fastlane: increment_build_number(build_number: latest_testflight_build_number + 1).

Як ми будуємо процес сборки

Базовий інструмент — Fastlane з Gymfile під iOS. Unity-специфіка: перед викликом gym потрібен крок сборки Unity через командний рядок:

Unity.exe -batchmode -executeMethod BuildScript.BuildiOS -projectPath . -logFile build.log -quit

BuildScript.BuildiOS через BuildPlayerOptions встановлює BuildTarget.iOS, BuildOptions.Il2CPP, настроює PlayerSettings під конкретний білд (bundle ID, версію, іконки).

Після експорту Xcode-проекту — post-build обробка через PostProcessBuild-атрибут: додаємо потрібні frameworks, чиним Info.plist (NSPhotoLibraryUsageDescription, Privacy manifest для iOS 17), настроюємо linker flags для плагінів з Objective-C categories.

Підписання та архівування через xcodebuild archive, потім xcodebuild -exportArchive з .plist конфігурацією ExportOptions (метод підписі app-store, правильний provisioning profile по bundle ID, включення bitcode при необхідності).

Завантаження в App Store Connect через xcrun altool --upload-app або Fastlane deliver/pilot. pilot для TestFlight дозволяє відразу призначити групи тестувальників та встановити release notes.

Автоматизація на CI/CD

Для ігрових студій оптимально — GameCI (GitHub Actions + Unity). Workflow: тригер на push в release ветку → сборка Unity → Fastlane signing → завантаження в TestFlight → Slack-повідомлення.

Секрети (сертифікати, Apple ID credentials, App Store Connect API key) зберігаються в GitHub Secrets або Vault. Apple рекомендує переходити з username/password на App Store Connect API Key (JWT) — надійніше та не вимагає двохфакторної аутентифікації в CI.

Терміни

Задача Термін
Разова сборка та завантаження в TestFlight 0.5–1 день
Настройка Fastlane Match + первинна настройка signing 1–2 дні
Повний CI/CD пайплайн (GameCI + Fastlane + TestFlight) 3–7 днів

Вартість визначається після аудиту поточної інфраструктури CI та стану сертифікатів/профілів.