App Review — је процес провере апликација пре објављивања у App Store-у. Свака апликација пролази модерацију ради усаглашености са Apple правилима: безбедност, поверљивост, квалитет интерфејса и стабилност рада. Према подацима Apple Developer Guidelines, 2024, 48 сати — просечно време провере након подношења захтева. Познавање критеријума ревије помаже програмерима да прођу модерацију из првог покушаја.
Главно
App Review — је процес модерирања Apple апликација пре објављивања у App Store-у. Свака апликација, ажурирање или проширење пролази проверу усаглашености са App Store Review Guidelines — документом који се састоји из неколико секција које покривају безбедност, поверљивост, дизајн, правне норме и садржај.
Процедура је обавезна за све програмере у Apple екосистему. Без проласка App Review-а, апликација се не појављује у каталогу App Store-а, није доступна за преузимање и не може се дистрибуирати путем TestFlight-а. Изузетак — Enterprise сертификати за интерну корпоративну дистрибуцију.
Apple је увела App Review заједно са покретањем App Store-а 2008. године. У почетку је провера трајала 7–14 дана и била је мање формализована. Према истраживању CNBC-а (2023), Apple је за 15 година одбила преко 2 милиона апликација из различитих разлога. Године 2020, Apple је покренула програм убрзане провере за програмере са високим рејтингом поверења.
За разлику од Google Play-а, где је објављивање могуће без претходне модерације, App Store користи пре-модерацију — свака апликација се проверава пре објављивања. Google Play користи пост-модерацију и аутоматске скенере. Према анализи Appfigures-а (2024), просечно време одобравања у App Store-у износи 48 сати наспрам 4 сата у Google Play-у. Истовремено, стопа одбијања у App Store-у је већа за 35%.
Након отпремања билда путем App Store Connect-а, почиње вишефазна провера. Програмер шаље апликацију на ревију, бира верзију и попуњава метаподатке. Apple распоређује захтеве између тимова модератора у зависности од категорије апликације и региона.
Прва фаза се изводи аутоматски. Apple скенери проверавају бинарни код на присуство злонамерних фрејмворка, коришћење затворених API-ја и усаглашеност са форматом App Store-а. Систем анализира метаподатке: назив, опис, снимке екрана и узрасни рејтинг. Аутоматска провера траје од 5 до 30 минута.
import StoreKit
func checkReviewStatus() {
let url = URL("https://api.appstoreconnect.apple.com/v1/apps/<APP_ID>/reviewSubmissions")!
var request = URLRequest(url: url)
request.setValue("Bearer <JWT_TOKEN>", forHTTPHeaderField: "Authorization")
URLSession.shared.dataTask(with: request) { data, _, _ in
guard let data = data else { return }
let status = try? JSONDecoder().decode(ReviewStatus.self, from: data)
print("Статус ревизије: \(status?.attributes.state ?? \`"unknown\`")")
}.resume()
}
Након аутоматске провере, захтев стиже до људског модератора. Модератор проверава функционалност апликације, тестира кључне сценарије, процењује дизајн у складу са Human Interface Guidelines и проверава садржај. Према Apple извештају (2024), ручна модерација заузима 40–70% укупног времена провере.
App Store Review Guidelines — је скуп правила подељен у 6 главних категорија: безбедност, поверљивост, дизајн, правни захтеви, садржај и технички критеријуми. Свака категорија садржи од 5 до 30 подтачака са конкретним захтевима.
| Категорија | Основни захтеви | Guidelines |
|---|---|---|
| Безбедност | Нема злонамерног кода, заштита података | 1.0–1.5 |
| Поверљивост | Обрада личних података, захтев за дозволама | 2.0–2.5 |
| Дизајн | Усаглашеност са HIG, стабилност интерфејса | 3.0–3.4 |
| Правни | Узрасни рејтинг, коцкање, садржај | 4.0–4.9 |
| Садржај | Без увреда, ауторска права | 5.0–5.6 |
Apple строго проверава коришћење Privacy Manifests-а и опис циљева прикупљања података. Од 2024. године, свака апликација мора да наведе API-је који се користе за прикупљање података и оправда њихову неопходност. Недостатак Privacy Manifest-а — један од честих разлога одбијања.
Апликација мора да следи Human Interface Guidelines. Apple одбија апликације са нерадним елементима, поквареним линковима, неправилним приказом на различитим уређајима и нечитљивим текстом. Посебна пажња се посвећује прилагођавању за Dynamic Type и VoiceOver.
Припрема за App Review почиње у фази развоја. Већина одбијања није узрокована грешкама у коду, већ кршењем формалних захтева: недостатак тест налога, непотпун метаподаци или нетачан узрасни рејтинг. Испод је контролна листа за припрему пре слања.
// Провера пре слања App Review-а
struct PreReviewChecklist {
let hasPrivacyManifest: Bool
let hasTestAccount: Bool
let screenshotsValid: Bool
func isReadyForReview() -> Bool {
let checks = [hasPrivacyManifest, hasTestAccount, screenshotsValid]
return checks.allSatisfy { $0 }
}
}
У App Store Connect-у је потребно навести категорију апликације, кључне речи, опис и контакт податке. За апликације са претплатама потребно је попунити информације о ценама и периоду претплате. Apple препоручује додавање видео прегледа у трајању од 15–30 секунди — то повећава конверзију у инсталације за 20–25%.
Пре слања на ревију, извршите тестирање на физичким уређајима са различитим верзијама iOS-а. Симулатор не открива проблеме са перформансама, загревањем и потрошњом батерије. Apple одбија апликације које се руше или замрзавају током стандардних сценарија коришћења.
Ако је апликација локализована на више језика, проверите исправност локализованих стрингова и форматирања података. Apple одбија апликације где је део интерфејса остао на енглеском при избору српског језика. За апликације са садржајем у ЕУ или Кини, проверите усаглашеност са регионалним законима: GDPR, CCPA и захтеви кинеске сертификације.
За аутоматизацију процеса App Review-а користите App Store Connect API. API омогућава програмско отпремање билдова, праћење статуса провере и примање обавештења о променама. Интеграција са CI/CD-ом путем Fastlane-а или GitHub Actions-а смањује време између комита и слања на ревију са неколико сати на 10–15 минута.
Према статистици App Review-а коју је Apple објавио 2024. године, 5 разлога чини преко 60% свих одбијања. Већина њих није повезана са техничким грешкама, већ са кршењем правила обликовања и описа.
| Разлог | Guideline | Удео одбијања |
|---|---|---|
| Непотпуне информације | 3.0–3.4 | 22% |
| Прикупљање података без сагласности | 2.0–2.5 | 18% |
| Краш и грешке | 1.0–1.5 | 12% |
| Плаћени садржај без IAP-а | 4.0–4.2 | 10% |
| Нетачан узрасни рејтинг | 5.0–5.6 | 8% |
При одбијању, Apple шаље писмо са навођењем разлога и линкове ка конкретним секцијама Guidelines-а. Програмер може да поправи проблем и поново пошаље апликацију путем App Store Connect-а. За разјашњење разлога одбијања доступан је Resolution Center — чет са Apple модератором.
Ако се програмер не слаже са одлуком модератора, може поднети жалбу. У Resolution Center-у је потребно навести зашто апликација испуњава правила и приложити доказе. Према извештају Appfigures-а (2024), око 35% жалби се завршава одобравањем након поновног разматрања.
Стандардно време провере App Review-а износи 24–48 сати. Међутим, у периодима високог оптерећења — након WWDC-а, пред новогодишње празнике и у сезони ажурирања iOS-а — рокови се продужавају на 5–7 дана. Apple објављује тренутно просечно време на страници App Review Status.
За критичне исправке, Apple нуди Expedited Review — убрзану проверу у року од 2–6 сати. Захтев се подноси путем App Store Connect-а са навођењем разлога: исправка критичне рањивости, враћање услуге или грешка која блокира рад корисника. Лажни захтеви за убрзање могу довести до одбијања наредних захтева.
Убрзана провера је оправдана само у ситуацијама када апликација постане нефункционална или крши закон. Према подацима Apple Developer Support-а (2024), Expedited Review се одобрава у 70% случајева са оправданим разлогом. Не препоручује се захтевање убрзања за планирана ажурирања са новим функцијама.
Често постављана питања
Стандардна провера траје 24–48 сати. У периодима високог оптерећења рок се продужава на 5–7 дана. Тренутно просечно време објављује се на страници App Review Status у App Store Connect-у.
Да, путем механизма Expedited Review. Убрзана провера траје 2–6 сати. Захтев се подноси у App Store Connect-у са образложењем: критична рањивост, отказ услуге или блокирајућа грешка. Лажни захтеви воде ка одбијању.
Поправити наведена кршења у писму и поново послати апликацију путем App Store Connect-а. За разјашњење разлога користите Resolution Center — чет са Apple модератором. Поновна провера не захтева додатно плаћање.
Не, поновна провера је бесплатна. Након исправљања кршења, довољно је отпремити нови билд или ажурирати метаподатке у App Store Connect-у и поново послати захтев. Број покушаја је неограничен.
Статус се приказује у App Store Connect-у у секцији My Apps → изаберите апликацију → картица App Review. Доступни статуси: Waiting for Review, In Review, Approved, Rejected. Обавештења стижу на имејл програмера.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође