Публікація iOS-додатка в App Store
Перша публікація займає значно більше часу, ніж сподіваються. Не через технічну складність — а через ланцюг кроків, кожен з яких можна виконати неправильно і отримати reject через 24–48 годин. Додаток, відправлений у review в п'ятницю з помилкою в метаданих, повернеться в понеділок з формальним відмовленням за Guideline 2.1 «Performance: App Completeness».
Підготовка до першої отправки
App Store Connect: створити запис додатка, указати Bundle ID (мусить совпадати з тим, що в Xcode), Primary Language, Category. Без створення запису Transporter та Xcode Organizer не можуть завантажити білд.
Скриншоти: мінімально обов'язкові розміри для публікації — 6.5" (iPhone 14 Pro Max або аналог) та 5.5" (iPhone 8 Plus). Якщо завантажити лише один розмір — Apple масштабує для інших, але це погіршує візуальну якість листингу. Для iPad — окремий набір, якщо додаток підтримує iPad.
Конфіденційність: з 2020 року обов'язкова посилання на Privacy Policy. Без неї — reject за Guideline 5.1.1. Також потрібно заповнити Privacy Nutrition Labels у App Store Connect — які дані збираються, з якою метою, прив'язані ли до особи.
Архівування та завантаження
# Через Fastlane
fastlane pilot upload --ipa ./build/App.ipa
# Або через xcodebuild + Transporter
xcodebuild archive \
-scheme MyApp \
-archivePath ./build/MyApp.xcarchive \
-configuration Release
xcodebuild -exportArchive \
-archivePath ./build/MyApp.xcarchive \
-exportPath ./build/export \
-exportOptionsPlist ExportOptions.plist
ExportOptions.plist — ключовий файл. Неправильний method (app-store vs ad-hoc vs development) — і білд створится, але не підійде для завантаження.
<!-- ExportOptions.plist для App Store -->
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>YOURTEAMID</string>
<key>uploadBitcode</key>
<false/>
<key>compileBitcode</key>
<false/>
</dict>
</plist>
Bitcode з Xcode 14 застарілий — Apple видалила його. Якщо в проекті старі налаштування з ENABLE_BITCODE = YES, виникнуть попередження при архівуванні.
Процес review
Review займає від кількох годин до 2–3 днів. Основні причини reject:
Guideline 2.1 — App Completeness: додаток крашується, демо-аккаунт не працює, кнопки ведуть в нікуди. Перед відправкою — протестувати на реальному пристрої, не тільки на симуляторі. Надати тестовий аккаунт у Notes to App Review.
Guideline 4.3 — Spam / Copycat: якщо додаток надто схожий на інший або має надто мало функціональності. Новий додаток від того ж розробника, який дублює уже опубліковане — також 4.3.
Guideline 5.1.2 — Data Use and Sharing: запитуєте NSCameraUsageDescription, але камеру реально не використовуєте — відмова. Опис в NSUsageDescription мусить відповідати реальному використанню.
In-App Purchase: якщо в додатку є якийсь платний контент або підписки — вони мусять використовувати IAP Apple, не сторонні платіжки. Спроба прийняти оплату через Stripe за цифровий контент — reject за Guideline 3.1.1.
Апеляція
Якщо reject несправедливий — можна подати апеляцію через Resolution Center прямо у App Store Connect. Apple Developer Relations відповідає протягом 1–3 днів. Апеляція працює: відмови за формальними поводами при коректному обґрунтуванні часто скасовуються.
Управління версіями та фазований релізу
Після одобрення — вибір: негайний релізу або Phased Release. Phased Release розкатує оновлення поступово: 1% → 2% → 5% → 10% → 20% → 50% → 100% користувачів протягом 7 днів. Дозволяє піймати критичні баги до масового оновлення.
Версію та build number потрібно збільшувати з кожною новою завантаженням. CFBundleShortVersionString (видима, наприклад 2.1.0) та CFBundleVersion (build number, тільки зростає). Один build number — Transporter відмовить при завантаженні.
Процес роботи
Підготовка App Store Connect: створення запису, Privacy Policy, Nutrition Labels, скриншоти.
Налаштування архівування: Signing Config, ExportOptions.plist, перевірка entitlements.
Завантаження білду через Transporter або Fastlane, заповнення метаданих.
Супровід через review: відповіді на питання ревьюерів, виправлення замічань.
Орієнтири по строкам
Підготовка та перша отправка готового додатка — 1–2 дні. З урахуванням review Apple (зазвичай 1–3 дні) — 3–5 робочих днів до публікації. При reject та необхідності доробок — добавити ще 1–3 дні.







