App Review는 App Store에 게시하기 전에 애플리케이션을 검토하는 프로세스입니다. 각 애플리케이션은 Apple 규정 준수를 확인하기 위해 검토를 거칩니다: 보안, 개인정보 보호, 인터페이스 품질, 안정성. Apple Developer Guidelines, 2024에 따르면 신청 제출 후 평균 검토 시간은 48시간입니다. 검토 기준을 알면 개발자가 첫 번째 시도에 검토를 통과할 수 있습니다.
핵심 요점
App Review는 App Store에 게시하기 전 Apple의 애플리케이션 검토 프로세스입니다. 모든 애플리케이션, 업데이트, 확장 기능은 보안, 개인정보 보호, 디자인, 법적 기준, 콘텐츠를 다루는 여러 섹션으로 구성된 App Store Review Guidelines 준수 여부를 검토받습니다.
이 절차는 Apple 생태계의 모든 개발자에게 필수입니다. App Review를 통과하지 않으면 애플리케이션이 App Store 카탈로그에 표시되지 않고, 다운로드할 수 없으며, TestFlight를 통해 배포할 수 없습니다. 예외는 내부 기업 배포용 Enterprise 인증서입니다.
Apple은 2008년 App Store 출시와 함께 App Review를 도입했습니다. 초기에는 검토에 7~14일이 걸렸고 덜 공식적이었습니다. CNBC 연구(2023)에 따르면, 15년 동안 Apple은 다양한 이유로 200만 개 이상의 애플리케이션을 거절했습니다. 2020년에는 신뢰도가 높은 개발자를 위한 신속 검토 프로그램을 시작했습니다.
사전 검토 없이 게시가 가능한 Google Play와 달리, App Store는 사전 검토를 사용합니다. 각 애플리케이션은 게시 전에 검토됩니다. Google Play는 사후 검토와 자동 스캐너를 적용합니다. Appfigures 분석(2024)에 따르면, App Store의 평균 승인 시간은 48시간인 반면 Google Play는 4시간입니다. 동시에 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("Review status: \(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은 다른 언어가 선택되었음에도 인터페이스 일부가 영어로 남아 있는 애플리케이션을 거절합니다. EU 또는 중국에서 콘텐츠를 제공하는 애플리케이션의 경우 지역 법률(GDPR, CCPA, 중국 인증 요구사항) 준수 여부를 확인하세요.
App Review 프로세스를 자동화하려면 App Store Connect API를 사용하세요. API를 사용하면 프로그래밍 방식으로 빌드를 업로드하고, 검토 상태를 추적하고, 변경 사항에 대한 알림을 받을 수 있습니다. Fastlane 또는 GitHub Actions를 통한 CI/CD 통합은 커밋에서 검토 제출까지의 시간을 몇 시간에서 10~15분으로 단축합니다.
Apple이 2024년에 발표한 App Review 통계에 따르면, 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 Store Connect의 App Review Status 페이지에 게시됩니다.
네, 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는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.