02 App Store - 리젝 예방 가이드

(애플 제공) 일반적인 앱 거부 사유 : https://developer.apple.com/app-store/review/rejections/kr/

관련 리뷰 조항

요약

가이드

관련 리뷰 조항

요약

가이드

N/A

IPv6 지원해야 함

모든 앱은 IPv6 지원해야 합니다.

애플이 제시하는 개발자 고려사항 3가지를 반드시 확인해 주세요.

  1. “NSURLSession”과 같은 네트워킹 프레임워크 사용

  2. IPv4 API 사용 자제

  3. IP주소 하드코딩 자제

 

(출처 : https://vsix.kr/board/content_new.jsp?bbsNo=3&itemNo=2416 )

 애플이 지난 WWDC 2015에서 iOS9을 발표하며 IPv6 지원을 발표함

2.1

네트워크 연결 오류 시 대응

  1. Functionality

2.1 Apps that crash will be rejected.
크래시가 발생하는 앱은 리젝될 것입니다.

게임이 실행되는 모든 구간(앱실행부터 앱종료까지)에서 네트워크 연결이 끊어질 경우, 유저가 인지할 수 있는 표시(재실행,재연결 알람팝업 또는 Loading Indicator 작동 및 연결시도)가 노출되어야 합니다.

  • 애플의 리뷰어가 네트워크 접속 오류 문제로 인해, Bug로 인식되지 않도록 최대한 정상 서비스가 가능하도록 구현 필요합니다.

네트워크가 끊어졌을 때 주의사항

  • 재연결 알람팝업이 발생했다면 네트워크가 연결된 후 팝업창에서 확인을 누르면 게임종료 또는 서버로 재접속되어야 합니다.

  • Loading Indicator가 작동하고 지속적으로 연결을 시도하고 있다면 , 네트워크가 연결되었을 때 자동적으로 서버로 접속되어야 합니다.

2.1

추가다운로드의 불가 및 지연으로 인한 앱 실행 불가

해외에서 앱 실행 시 CDN의 추가다운로드 지연으로 인한 심의 리젝이 발생할 수 있습니다. --> 대응 방안 논의가 필요

2.2

유저가 결제 시도 시 에러메시지 노출되고 결제 안됨

  1. Functionality

2.2 Apps that exhibit bugs will be rejected.
버그가 있는 앱은 리젝될 것입니다.

심의서버 영수증 검증 로직 구현 시 주의사항 

  • 심의 제출 버전의 게임 서버내에 영수증 검증 처리시 호출하는 URL은 값에 따라 Appstore와 Sandbox 모두 처리가 가능하게 구현해야 합니다.

  • iOS 심의 제출 후 리뷰어가 결제 테스트(Sandbox계정) 시  https://buy.itunes.apple.com/verifyReceipt 로 영수증 검증 호출을 하면 status 값이 21007 리턴 되므로 게임서버에서는 21007 값이 왔을 때 https://sandbox.itunes.apple.com/verifyReceipt 로 재확인할 수 있도록 처리 해야 한다.

2.2

최신 iOS 버전으로 아이폰/아이패드 검증

최신 iOS 버전이 설치된 아이폰과 아이패드 기기에서 심의용 빌드에 대한 검증이 진행되어야 합니다.

2.2

인게임내 모든 버튼은 터치 시 반응이 있어야 함

인게임에서의 모든 버튼은 터치하였을 경우 반응이 있어야 합니다.

  • 애플의 리뷰어가 버그로 인식되지 않게 주의해야 합니다. 

  • 팝업 메시지의 확인이나 취소 버튼이라도 무응답이 있어서는 안됩니다.

2.3

유저의 Documents 폴더에 파일 공유 기능

  1. Functionality

2.3 Apps that do not perform as advertised by the developer will be rejected.
개발자에 의해 통지된 것과 같이 작동하지 않는 App은 Reject될 것입니다.

유저 Documents 폴더에 파일을 공유하는 기능을 사용하지 않고 있고, 실제 게임 설명에도 이 내용이 기재되어 있지 않으나, 해당 파일 공유 기능을 사용하고 있으면 리젝이 됩니다.

  • iOS 심의용 빌드 시 파일 공유 기능 주의사항

    • 게임 특성상 유저 데이터를 공유해서 사용할 경우가 아니면 반드시 빌드 시 UIFileSharingEnabled key를 True로 세팅하면 안됩니다.

  • 확인 방법

    • 아이튠즈에 기기연결>항목중 iPhone()클릭>App클릭>파일공유항목에 해당게임이 노출되면 안됩니다.

2.3

최초 심의신청 시 인앱결제상품 심의와 빌드 심의를 동시에 신청

앱 최초 심의 시 해당 앱을 업로드 후 iTunes Connect에 앱 상세정보 페이지에서 빌드를 추가한후 바로 하단에 IAP추가를 같이 해서 심의 신청해야 합니다.

2.3

심의용으로 제공한 테스트 계정 문제 

iOS 심의용 테스트 계정 전달 시 주의사항

  • 반드시 제공한 테스트 계정이 정상 로그인되는지 확인하고 iTunes Connect에 등록해 주세요.

  • 심의용 테스트 계정 ID & Password는 복잡하지 않게 생성해서 전달합니다.

    • 로그인 과정에서 typo error를 최소화 하기 위해 쉽고 간단한 계정으로 전달하는 것이 좋습니다.

    • 너무 복잡해서 생성해서 리뷰어가 로그인 실패되어도 리젝된 사례가 있습니다.

  • 테스트 계정에 기 등록된 친구리스트가 있는지 반드시 확인해 주세요. 

    • 게임 내 SNS 기능 확인을 위한 기본 친구 리스트가 등록된 계정이여야 합니다.

  • 레벨 제한이 있는 컨텐츠가 있는 게임의 경우, 컨텐츠 확인이 가능한 테스트 계정을 함께 전달하는 것이 필요합니다.

    • 신규 레벨 + 컨텐츠 확인을 위한 레벨 셋팅된 계정 함께 전달해 주세요.

2.9

"베타", "데모", "트라이얼", "테스트" 노출

인게임에서 특정 기능에 대해 "베타", "데모", "트라이얼", "테스트" 로 노출되는 기능이 있으면 안됩니다.

이런 용도일때는 애플에서 배포한 TestFlight를 사용하여 배포해야 한다고 명시합니다.

2.23

iOS Data Storage Guidelines

 위반 

게임에서 사용하는 모든 데이터는 /Documents 폴더에 저장하지 말아야 한다.

  • /Documents 폴더에 저장하지 말아야 하는 이유? 

    • iCloud는 사용자의 /Documentary 데이터를 매일 Wi-Fi 를 통해 백업하는 기능을 지원하고 있습니다. 
      앱에서 다운로드 받은 데이터는 일반적으로 용량이 크기 때문에 /Documents 폴더에 저장될 경우 iCloud 저장 기능에 부정적인 영향을 주게 됩니다.
      그래서 애플에서는 정책적으로 사용자가 생성하지 않은 데이터는 /Documents 폴더에 저장하지 않도록 규정하고 있습니다.

  • 확인방법

    • iOS 디바이스> 설정 > iCloud > 저장공간 > 저장 공간 관리 > 기기명 선택 > 모든 App 보기 > 테스트 대상 앱의 백업 크기 확인

8.5

타마켓(google) 정보 노출

8. Content and Intellectual Property Rights

8.5 Apps may not use protected third party material such as trademarks, copyrights, patents or violate 3rd party terms of use. Authorization to use such material must be provided upon request
무단으로 서드 파티의 상표, 저작권, 특허 또는 이용 약관 위반 같은 자료를 사용할 수 없습니다. 사용 허가를 위해서는 인증 요청 시 관련 자료를 제출해야 합니다.

 

마케팅 팝업이나 로딩 이미지 등에서 타마켓(google) 관련 정보가 노출되면 안됩니다.

10.6

플레이중 "취소" 버튼 미노출 

10. User interface
10.6 Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good, it may be rejected

만약 인터페이스가 복잡하거나 좋지 않다면 리젝될 것입니다.

게임 컨텐츠 이용 중 언제라도 메인 UI 화면으로 나올 수 있는 방법(Back Button , 전투취소 등)이 제공되어야 합니다.

11.11

게임내 단일 소모성 아이템의 판매금액

11. Purchasing and currencies
11.11 In general, the more expensive your App, the more thoroughly we will review it
애플은 더 비싼 응용 프로그램을, 더 철저하게 리뷰한다.


IAP 상품 가격 기획 시 주의사항

  • IAP  상품에 대해서는 ‘단일 상품 - 소모성 item’ 금액이  $109.99를 넘지 않도록 설정이 필요합니다.

  • Apple 정책에는 구체적으로 가격 상한선에 대해 명시되어 있지는 않으나, 단일 소모성 아이템의 가격을 $100달러 미만으로 설정하라는 내용의 리젝 사례가 있었습니다.

  • 한국은 VAT가 적용되면서 $109.99로 조정되었습니다.

Price Tier

  • 구글과 다르게 애플은 아이템 가격 설정 시 등급(Tier)별로 가격이 정의가 되는 방식입니다.

  • 가격 테이블은 iTunes Connect의 앱 상세 정보 페이지에 'Pricing' 항목을 클릭해서 확인할 수 있습니다. 

14.1

게임내 비속어 노출 

14. Personal attacks
14.1 Any app that is defamatory, offensive, mean-spirited, or likely to place the targeted individual or group in harms way will be rejected.
명예를 훼손하거나 불쾌감을 주거나 저속하거나 개인이나 집단을 겨냥해 해를 입힐 수 있는 앱은 리젝됩니다.

게임팁 등 유저에게 노출되는 UI에 게임폐인, 오타쿠 등의 단어가 비속어 사용으로 리젝될 수 있습니다. (근데 어디까지를 비속어로 봐야할지는 게임별로 판단 필요합니다.)

14.3

채팅에 차단 및 신고기능 미지원

14. Personal attacks
14.3 Apps that display user generated content must include a method for filtering objectionable material, a mechanism for users to flag offensive content, and the ability to block abusive users from the service.
유저가 생성하는 컨텐츠를 포함하는 앱은 필터링 기능 , 유저가 공격적인 컨텐츠를 표시하는 기능, 부정한 유저를 블럭할 수 있는 방안을 포함해야 합니다.

채팅시스템을 지원하는 게임의 경우, 유저가 채팅창에서 다른 유저를 차단하거나 신고할 수 있는 기능이 제공되어야 합니다.

16.1

16.2

이미지의 선정성

16.1 Apps that present excessively objectionable or crude content will be rejected.
 유저를 당황하게 하거나 혐오감을 주기 위해 디자인된 앱은 리젝될 것입니다.

16.2 Apps that are primarily designed to upset or disgust users will be rejected.
 사용자에게 역겨운 컨텐츠를 포함한 앱은 리젝될 것입니다. 

앱아이콘 및 스토어 이미지에 섹시에 대한 컨셉을 포함 시 리젝될 수 있습니다. --> 최대한 보수적으로 접근해야 함

  • 참고 : 트위터 '폭력, 혐오 콘텐츠' 새 규정 (http://m.news1.kr/news/category/?detail&2530230)
    - 트위터 이용자들이 "인종, 민족, 국적, 성적지향, 성별, 성정체성, 종교, 연령, 장애나 질병을 토대로 타인에 대한 폭력을 종용하거나, 직접 공격을 가하거나, 위협을 행사해서는 안된다."고 명시

17.2

17.2

17. Privacy
17.2 Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected.
App을 실행(작동)하기 위해 유저의 개인정보(이메일, 생년월일 등)를 공유하도록 요구하는 App은 Reject될 것입니다.

게스트 로그인을 지원하는 경우, 결제 가능하도록 지원되어야 합니다.

20.2

애플 상품(아이폰, 아이패드 등)을 경품으로 제공

20. Contests, sweepstakes, lotteries, raffles, and gambling
20.2 Official rules for sweepstakes and contests must be presented in the App and make it clear that Apple is not a sponsor or involved in the activity in any manner.
복권이나 대회에 대한 공식적인 룰은 App내에 반드시 명시되어야 하고, Apple은 어떤 방법으로도 해당 활동(복권, 대회)에 관련 있거나 스폰서가 아니라는 것을 분명히 해야 합니다.

각종 팝업이나 인앱뷰 이벤트 게시판에 Apple사의 아이폰이나 아애프드 등의 제품을 경품으로 제공한다는 내용이 노출되면 안됩니다.

  • 애플 심의 가이드에 애플이 스폰서가 아닌 경우에는 애플사의 Product를 경품으로 사용할 수 없다는 규정이 있는데, 이 항목이 위배됨

24.1
24.3

Made for Kid 항목 체크 실수

24. Kids Category

24.1 Apps in the kids Category must include a privacy policy and must comply with applicable children`s privacy statutes.
Kid 카테고리에 있는 앱은 개인정보보호정책을 포함해야 하며 아동의 개인정보보호법령을 준수해야 합니다.

24.3 Apps in the Kids Category must get parental permission or use a parental gate before allowing the user to link out of the app or engage in commerce.
Kids 카테고리에 있는 앱은 링크를 타거나 상업적 계약을 맺기전 부모동의를 획득하거나 Parental gate를 사용해야 합니다.

 

아동용앱이 아닌 앱을 iTunesConnect에서 등록 시 Made for Kids 항목을 체크하고 심의 제출하여 아동용 심의규정을 적용받아 리젝이 되는 사례가 발생할 수 있습니다.
앱 등급 설정 시 주의해 주세요.