
앱 심사가 거절당했어요 (리젝 사유 TOP 5와 대처법)
애플과 구글 심사관들은 깐깐합니다. 테스트 계정 로그인 실패, 개인정보처리방침 누락, 그리고 악명 높은 IPv6 네트워크 문제와 UGC(사용자 생성 콘텐츠) 정책 위반까지, 리젝을 피하는 5가지 체크리스트.

애플과 구글 심사관들은 깐깐합니다. 테스트 계정 로그인 실패, 개인정보처리방침 누락, 그리고 악명 높은 IPv6 네트워크 문제와 UGC(사용자 생성 콘텐츠) 정책 위반까지, 리젝을 피하는 5가지 체크리스트.
로그인 화면을 만들었는데 키보드가 올라오니 노란 줄무늬 에러가 뜹니다. resizeToAvoidBottomInset부터 스크롤 뷰, 그리고 채팅 앱을 위한 reverse 팁까지, 키보드 대응의 모든 것을 정리해봤습니다.

안드로이드는 오는데 iOS는 조용합니다. 혹은 앱이 켜져 있을 때만 옵니다. Background/Terminated 상태 처리, APNs 인증서, 그리고 Notification Channel 설정까지 완벽하게 해결합니다.

안드로이드는 Xcode보다 낫다고요? Gradle 지옥에 빠져보면 그 말이 쏙 들어갈 겁니다. minSdkVersion 충돌, Multidex 에러, Namespace 변경(Gradle 8.0), JDK 버전 문제, 그리고 의존성 트리 분석까지 완벽하게 해결해 봅니다.

Debug에선 잘 되는데 Release에서만 죽나요? 범인은 '난독화'입니다. R8의 원리, Mapping 파일 분석, 그리고 Reflection을 사용하는 라이브러리를 지켜내는 방법(@Keep)을 정리해봤습니다.

앱 개발의 끝판왕은 코딩이 아니라 배포(심사 통과)입니다. 밤새워 개발해서 제출했는데, 다음 날 아침 메일함에 "App Submission Feedback"이라는 제목의 메일이 와 있습니다. "Guideline 2.1 - Performance: App Completeness" 심장이 덜컥 내려앉습니다.
리젝(Rejection)은 누구나 겪는 통과의례입니다. 하지만 자주 걸리는 패턴을 알면 한 번에 통과할 확률을 높일 수 있습니다.
심사관들은 여러분의 앱을 수동으로 테스트합니다. 로그인 기능이 있다면, 반드시 작동하는 테스트 계정을 제공해야 합니다.
tester@demo.com / 비번: Demo1234! 처럼 심플한 계정을 만드세요.앱 내에 회원가입이 있다면, 반드시 개인정보처리방침 링크가 있어야 합니다. 그리고 앱 스토어 Connect에도 URL을 넣어야 합니다.
myapp.com/privacy).애플은 IPv6-only 네트워크 환경에서 심사를 진행합니다.
여러분의 백엔드 서버가 IPv4 주소(예: 123.45.67.89)만 하드코딩되어 있다면, 심사관 아이폰에서는 접속이 안 됩니다.
api.myapp.com)을 쓰세요.http 대신 반드시 https를 쓰세요. (ATS 정책 위반 방지)여러분의 앱이 커뮤니티, 댓글, 채팅 기능을 포함한다면 UGC(User Generated Content) 정책을 따라야 합니다. 사용자가 올린 글에 욕설이나 음란물이 있을 수 있기 때문입니다.
이 기능을 UI에 잘 보이게 넣어두세요. 숨겨두면 심사관이 못 찾아서 리젝합니다.
앱 설명에는 "AI가 3초 만에 그림을 그려줍니다"라고 썼는데, 실제 기능은 준비 중이라서 "Coming Soon"이라고 띄웠다? 리젝입니다. "앱 설명에 적힌 기능이 실제로 작동하지 않음" 사유입니다.
앱에서 https를 쓴다면 암호화 기술을 사용하는 것입니다.
미국 수출 관리 규정(EAR)에 따라 이를 신고해야 합니다.
App Store Connect나 Google Play Console에서 "앱이 암호화를 사용합니까?" 질문에 "네"라고 답하세요.
보통의 https 통신은 "면제 대상(Exempt)"입니다.
"표준 암호화 알고리즘만 사용합니다"를 선택하면 별도 서류 없이 통과됩니다.
이걸 "아니요"라고 했다가 나중에 걸리면 계정이 정지될 수도 있습니다.
2023년 11월부터 구글은 개인 개발자 계정에 대해 "20명 이상의 테스터가 14일 이상 비공개 테스트(Closed Testing)를 진행해야만 프로덕션 배포 가능"이라는 초강수를 두었습니다. 이걸 모르고 개발했다가 출시를 못 하는 분들이 정말 많습니다.
이건 피해갈 수 없는 요건이므로, 개발 시작 단계부터 테스터를 모으는 게 좋습니다.
리젝은 "거절"이 아니라 "품질 보증(QA)" 과정이라고 생각하세요. 애플과 구글이 내 앱의 버그를 대신 찾아준 겁니다. 고치고 다시 제출하면 됩니다.
The hardest part of app development isn't coding—it's Passing the Review. You submit your build at 3 AM. The next morning, you get an email: "App Submission Feedback". Guideline 2.1 - Performance: App Completeness Your heart sinks.
Rejection is a rite of passage. But knowing the common pitfalls can boost your "One-Shot Pass" rate.
Reviewers manually test your app. If you have a login screen, you MUST provide a working test account.
tester@demo.com / Demo1234!.If you collect ANY user data (even just email), a Privacy Policy is mandatory.
Apple conducts reviews on an IPv6-only network.
If your backend uses hardcoded IPv4 addresses (e.g., 123.45.67.89), the connection will fail on the reviewer's device.
api.myapp.com) instead of raw IP.https over http to satisfy App Transport Security (ATS).If your app has Chat, Comments, or Community features, you fall under UGC Guidelines. You must protect users from abusive content.
Make the "Report" button visible. Don't hide it too deep.
Your description says "AI generates art in 3 seconds," but the feature crashes or says "Coming Soon." Rejected. "App features mentioned in description must be available."
Info.plist.
Does your app use https? Then you are using Encryption.
US Export Administration Regulations (EAR) require you to declare this.
In App Store Connect, when asked "Does your app use encryption?", answer YES. Then, typically select "Exempt" (standard encryption like HTTPS). If you answer "No" and get caught, your developer account could be suspended. It's a legal compliance issue.
Since late 2023, Google requires new personal developer accounts to run a Closed Test with at least 20 testers for 14 continuous days before applying for Production access. This is a massive hurdle for solo developers.
Q: Can I pay someone to test? A: Yes, there are services, but be careful of low-quality testers. Google detects fake activity.
Q: Does Apple have this? A: No, Apple only requires TestFlight review if you invite external testers, but no minimum count/duration for Production submission.
A crucial file for iOS development that links your App ID, Development/Distribution Certificates, and allowed devices. Without a valid provisioning profile, your app cannot be installed on a device or submitted to the App Store.
Key-value pairs that grant specific capabilities or security permissions to your iOS app. Examples include Push Notifications, iCloud access, Apple Pay, and Sign In with Apple. These must match the capabilities enabled in the provisioning profile.
An intermediate representation of a compiled program. Uploading Bitcode allowed Apple to re-optimize binaries for new device architectures without resubmission. However, starting with Xcode 14, Bitcode is deprecated and no longer required for App Store submission.
The process of resolving memory addresses in a crash report into human-readable function names and line numbers. This requires the dSYM (Debug Symbol) file generated during the build process. Always upload dSYMs to Firebase/Sentry.
A set of technologies (Slicing, Bitcode, On-Demand Resources) that ensures the user downloads only the code and resources needed for their specific device, minimizing the download size.