iOS / Android 앱 심사 시에 발생하는 Reject 사유들

Published on

시작하기 전에

앱을 배포하기 위해서는 각 플랫폼에서 심사를 거쳐야 합니다. 그리고 이 심사는 길고 까다로운 일이 될 수 있습니다. 여러가지 사유들로 출시, 혹은 업데이트가 리젝reject당하기 때문입니다.

더욱 짜증을 유발하는 것은 리젝 사유가 케바케라는 것입니다. 저번 업데이트에서 통과되었던 부분이 다음 업데이트에서 통과되지 않을 수 있습니다. 따라서 아래 사유에 걸릴 수 도 있고 안 걸릴 수 있다는 사실을 유의 바랍니다. 마음 편하게 앱을 출시할 수 있도록 리젝 사유들을 미리 점검하는게 좋겠죠?

애플이 구글보다 까다롭게 심사를 합니다. 애플의 리젝 사유들을 다 통과한다면 아마 안드로이드는 문제가 없을 것입니다. 본문의 리젝 사유들은 거의 대부분 애플에서 까인 사유들입니다.

심사 관련 사항들

  • 애플 심사원의 경우 한글을 읽을 수 있으므로 메모에 한글을 포함해도 됩니다. 또한 코드를 뜯어보지 않는다고 했었는데, 2022년 현재 기준 봇들을 활용해서 읽을 수 있는 부분들은 읽는 것 같습니다.
  • 애플 심사원은 아이패드를 이용해 심사를 진행한다고 합니다. 아이폰 앱도 아이패드로 한다는 썰이 있습니다.
  • 앱 스토어의 Expedited Review 는 항상 받아주지 않습니다. 그리고 된다고 하더라도 그렇게 빠르지 않다고 하니 참조 바랍니다. (12시간 정도)
  • 리젝 당하고 다시 심사를 넣을 경우, 리젝 했던 심사관이 다시 받아준다고 합니다. 즉 리젝 당했던 사유는 꼭 해결해야 합니다.
  • 미국 휴일이 걸릴 경우 심사기간이 늘어나는 점에 유의해 주시기 바랍니다.

앱 배포 관련 리젝 사유들

앱을 스패밍 하는 경우

동일한 앱의 번들 ID를 여러 개 생성하지 마십시오. 앱을 특정 지역, 스포츠팀, 대학교용 등 여러 버전으로 만든 경우 하나의 앱만 제출하고 앱 내 구입을 사용하는 방법을 고려해 보십시오.

또한 이미 포화 상태인 카테고리에 앱을 더 등록하지 않도록 합니다. App Store에는 이미 충분히 많은 방귀, 트림, 손전등, 운세, 데이트, 술자리 게임, 카마수트라 앱 등이 존재합니다. 이러한 앱은 앱 고유의 우수한 경험을 제공하지 않는 한 승인되지 않습니다. 스팸 앱을 Apple Store에 유포하면 Apple Developer Program에서 제명될 수 있습니다.

  • 이미 앱 스토어에 많이 존재하는 앱의 경우 리젝당할 수 있습니다.
  • 때로는 이 앱이 왜 필요한지에 대한 설명을 물어볼 수 있습니다.
  • 외주로 앱을 개발하는 경우, 다수의 앱을 하나의 아이디로 배포하는 경우, 앱 스패밍 관련 조항에 걸릴 수 있습니다.
  • 앱 빌더등을 사용해서 다수의 앱을 배포하고 싶은 경우, 개발자 계정을 분리해야 합니다.

UIUX 관련 리젝 사유

UIUX 가 나쁠 경우

Apple 고객은 심플하고 세련되고 혁신적이면서도 사용이 편리한 제품을 높이 평가하며, Apple이 App Store에 기대하는 바도 이와 같습니다. 훌륭한 디자인의 앱을 출시하는 것은 각 개발자의 몫이지만, 최소한 다음 기준을 충족해야 App Store에서 승인받을 수 있습니다.

또한 앱을 승인받은 후에도 지속적인 업데이트를 통해 앱이 정상적으로 작동하도록 유지하여 기존 고객과 신규 고객에게 매력적인 사용 경험을 제공해야 합니다. 작동하지 않거나 수준 미달의 경험을 제공하는 앱은 언제든지 App Store에서 삭제될 수 있습니다.

  • 애플의 휴먼 인터페이스 가이드라인을 준수해야 합니다.
  • 가이드라인을 준수하면서 쿨하고 멋져야 됩니다. (자연스러운 UX)
  • 로딩 시간이 오래 걸리지 않아야 합니다. 심사관은 미국에서 앱을 확인하므로 이미지 등 페이지의 로딩이 긴 경우 리젝당한 경우가 있다고 합니다.

아이패드를 지원하는 아이폰 앱인데 아이패드에서 UI가 제대로 나오지 않을 경우

  • 위에 설명했듯 심사관은 아이패드로 아이폰 앱을 본다고 합니다.
  • 이전 기종의 아이패드는 4:3 비율로 아이폰 앱이 나오므로, 버튼을 클릭하지 못해 리젝당한 사례가 존재합니다.

아이패드에서 데스크탑 브라우저의 화면이 나올 경우

  • 웹뷰를 사용하는 하이브리드 앱, 혹은 웹앱의 경우, 아이패드에서 데스크탑 브라우저의 화면이 나온다면 리젝당합니다.
  • 반응형 브라우저의 화면일 경우 아이패드 대응 화면이 나와야 합니다.

컨텐츠 관련 리젝 사유

컨텐츠 데이터가 존재하지 않음

  • 게시판 같이 컨텐츠가 존재하는 기능을 가진 앱인데 심사 받는 앱에 컨텐츠가 존재하지 않을 경우 리젝 사유가 됩니다.

더미 콘텐츠가 존재함

  • Lorem ipsum과 같이 더미 콘텐츠가 존재하면 리젝사유가 됩니다.

테스트 할 수 있는 아이디가 주어지지 않음

  • 로그인 피쳐가 존재하는 앱의 경우 테스트가 가능한 아이디를 꼭 주어야 합니다.

사용하지 않는 이미지가 소스코드에 포함되어 있음

  • 봇으로 다 확인을 한다고 합니다.

컨텐츠의 저작권에 대한 처리가 되어 있지 않음

  • 해당 처리를 완료해야 합니다

신고와 검열 기능이 존재하지 않음

사용자가 생성한 콘텐츠가 있는 앱은 지적 재산권 침해부터 익명의 사이버 불링까지 여러 까다로운 문제가 발생할 수 있습니다. 이러한 피해를 방지하려면 사용자가 생성한 콘텐츠나 소셜 네트워크 서비스 기능이 있는 앱에 다음 내용을 추가해야 합니다.

부적절한 자료가 앱에 게시되지 않도록 필터링하는 방법

모욕적인 콘텐츠를 보고하고 적시에 응대하는 메커니즘

폭언하는 사용자를 해당 서비스에서 차단하는 기능

사용자들이 쉽게 연락할 수 있도록 게시한 개발자 연락처 정보

커뮤니티 계열 기능을 사용할 경우 반드시 신고 기능이 있어야 합니다.

  • 컨텐츠 계열 앱들의 경우 해당 가이드라인을 지켜야 합니다
  • 유저를 차단할 수 있는 기능이 있어야 합니다
  • 앱 내부이건 외부이건 음란물, 폭력성을 지닌 컨텐츠를 검열, 검수 할 수 있는 프로세스가 존재해야 합니다.

웹뷰 관련 리젝 사유

애플

Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store. If your App doesn’t provide some sort of lasting entertainment value or adequate utility, it may not be accepted. Apps that are simply a song or movie should be submitted to the iTunes Store. Apps that are simply a book or game guide should be submitted to the Apple Books Store.

구글

“We don’t allow apps whose primary purpose is to provide a webview of a website, regardless of ownership, or to aggregate content that does not belong to the developer. To resolve this issue, please remove violating content and resubmit your app.”

웹뷰를 주로 사용하는 앱일 경우

  • 리젝 확률이 기하급수적으로 상승합니다.
  • 승인 받기까지 6개월이 걸린 웹앱도 있다고 합니다.
  • 왜 웹이 아니라 앱을 사용하냐에 대한 대답이 명쾌해야 합니다.

웹과 앱의 기능상 차이가 없음

  • 리젝 확률이 기하급수적으로 상승합니다.
  • 푸쉬 알람, 카메라와 같은 네이티브 기능을 넣어서 회피할 수 있습니다.

웹과 앱의 UI가 동일함 혹은 비슷함

  • 웹뷰일지라도 앱에서 보여지는 웹뷰와 실제 브라우저의 UI상의 차이를 보여주면 좋다고 합니다.

네트워크 오류로 웹이 작동하지 않을 때 어떠한 것도 보여주지 않음

  • 웹뷰의 에러처리가 되어있지 않으면 리젝당할 수 있습니다.

웹에서 용량이 큰 이미지를 로딩하는데 오래 걸림

  • 로딩시 스켈레톤 등을 보여주는 것이 해결 방안이 될 수 있습니다.

앱에서의 회원가입이 불가함

  • 웹에서만 회원 가입을 시켜놓은 경우 리젝 확률이 있다고 합니다.

해당 도메인의 소유권이 나에게 있는지 확인할 수 없음

  • 해당 도메인에 접근할 수 있는 권리를 증명할 수 있어야 합니다
  • 예를 들어서 네이버를 웹뷰로 싼 앱을 출시할 수 없습니다.
  • 안드로이드의 경우 해당 웹의 서비스가 내 소유라는 사전 고지를 제출해야 합니다

퍼포먼스, 동작 관련 사유

테스트 중 앱이 죽음

  • iOS의 경우 모든 기기에서 테스트를 통과해야 한다고 합니다.
  • 리뷰 중 앱에서 크래쉬가 나면 리젝 당하게 됩니다.

앱 내부의 링크가 동작하지 않음

  • 심사관은 앱에 존재하는 모든 링크를 눌러 본다고 합니다.
  • 이중에서 동작하지 않는 링크가 존재하면 안됩니다.

백그라운드에서 동작하는 기능이 있음

  • 음악, 전화, 네비게이션 등 백그라운드에서 동작할 수 있어야 하는 앱들만 백그라운드에서 동작될 수 있습니다.
  • 이외의 앱들은 해당 기능을 포함하면 안됩니다.

결제 관련 리젝 사유

외부 사이트에서 결제 유도

  • 외부 사이트로 유도한 뒤 결제하는 시스템이 확인되면 리젝당합니다.
  • 다만 iOS 15.5 부터 리더 앱들에 한하여 외부 링크를 사용할 수 있게 해 주었으니 이 부분은 아래의 링크에서 확인해 주세요
  • https://www.idownloadblog.com/2022/04/07/ios-15-5-external-payments-support/
  • 구글의 경우는 외부 결제를 허용하지 않습니다.

애플에서 30%의 수수료를 가져간다고 앱 내부 가격 정책에 명시함

  • 리젝 사유입니다

구독의 경우인데 구독 모델을 사용하지 않음

  • 리젝 사유입니다

개인정보와 회원가입 관련 리젝 사유

개인 정보 관련 처리가 명확하지 않음 / 필수적인 개인 정보를 요구함

  • Apple 생태계에서 사용자의 개인 정보를 보호하는 것은 그 무엇보다 중요합니다. 개발자는 개인 정보를 처리할 때 신중을 기하여 고객의 기대치뿐 아니라 개인 정보 보호 모범 사례(영문), 관련 법률, Apple Developer Program 사용권 계약의 약관을 반드시 준수해야 합니다. 자세한 내용은 아래를 확인하십시오.
  • 애플의 경우 개인정보에 굉장히 까다롭습니다.
  • 회원가입 시 추가적인 정보 (휴대폰 번호, 성별) 등을 얻고 싶다면 해당 이유가 굉장히 명확해야 합니다.
  • 수집 정보와 앱 내용이 관련이 있어야 합니다.
  • 마케팅 이유로 수집한다는 답변은 안됩니다.

소셜 로그인이 있는데 소셜 로그인과 관련된 기능이 없음

  • 만약에 페이스북 로그인 기능이 있다면 페이스북과 관련된 무언가가 있어야 합니다.

소셜 로그인이 있는데 애플 로그인이 없음

  • 구글로 로그인 같은 다른 소셜 로그인 기능이 하나라도 존재하는데 애플로 로그인하기 기능이 없다면 리젝 사유입니다.

애플로 로그인 했는데 개인 정보를 요구함

  • 애플로 로그인했다면 이메일과 이름을 수집하면 안됩니다.
  • 이미 수집된 애플의 정보를 사용해야 합니다.

애플로 로그인 했는데 본인 인증 절차를 요구함

  • 애플로 로그인했다면 본인 인증(PASS 인증 같은)을 요구하면 안됩니다.

테스트 아이디로 접근할 수 없는 기능이 있음

  • 영상으로라도 촬영해서 같이 보내야 합니다.
  • 영상은 손이 보이게 촬영되어야 합니다.

탈퇴 기능이 없음

  • 탈퇴 기능이 있어야 합니다

기타 리젝 사유

미완성 기능이 있음

  • 리젝 사유입니다

카메라나 위치 같은 정보를 사용함에도 사용하겠다는 알람을 보여주지 않음

  • 리젝 사유입니다

외부 링크로 이동 시 외부 링크로 이동 하겠습니까 하는 알림을 보여주지 않음

  • 리젝 사유입니다

타 플랫폼을 언급하는 경우

  • iOS앱에서 안드로이드 언급 금지

안드로이드 앱에서 애플 언급 금지

  • 당연하지만, 각 플랫폼의 스토어에 올릴 휴대폰 스샷은 해당 플랫폼의 핸드폰에서 찍어야 합니다.