피드로 돌아가기
Dev.toDevOps
원문 읽기
IPA 정적 분석과 App Store Connect API 교차 검증을 통한 배포 거절 제로화
I shipped my first iOS app, got rejected twice, and built a tool so it never happens again
AI 요약
Context
App Store 심사 과정에서 Privacy Label 불일치 및 EULA 문구 미비 등 단순 설정 오류로 인한 반복적 리젝 발생. 빌드 파일 내부에 모든 정보가 존재함에도 이를 검증할 자동화 도구 부재로 인한 리드타임 증가 상황.
Technical Solution
- .ipa 파일의 ZIP 구조를 분석하여 Payload 내 Info.plist 및 PrivacyInfo.xcprivacy 파일 추출
- PropertyListSerialization을 활용한 Binary 및 XML 포맷의 Plist 데이터 파싱 로직 구현
- UsageDescription의 빈 값 또는 Placeholder 텍스트(TODO, Test 등)를 식별하는 정적 분석 룰 적용
- Frameworks 폴더 내 모든 SDK의 Privacy Manifest 존재 여부를 재귀적으로 탐색하여 누락분 식별
- SDK가 수집하는 데이터 타입과 App Store Connect API로 조회한 메타데이터 간의 교차 검증(Cross-check)으로 불일치 지점 탐색
- 분석 로직을 On-device로 구현하여 빌드 데이터 유출을 방지한 로컬 분석 아키텍처 설계
실천 포인트
1. Info.plist 내 UsageDescription에 Placeholder 문구가 포함되었는지 확인
2. 모든 3rd-party SDK 내 PrivacyInfo.xcprivacy 파일 포함 여부 전수 조사
3. ITSAppUsesNonExemptEncryption 설정 여부 확인으로 수출 준수 질문 단계 생략
4. SDK Privacy Manifest의 데이터 수집 항목과 App Store Connect Privacy Label 일치 여부 검증