WEB&APP

애플 앱스토어 심사 거부 사례 및 대응 정리

adnin 2023. 5. 31. 20:51

iOS 앱을 올리기 위해 심사를 하다보면 많은 이유로 심사 거부 당한다.

다음은 ionic3로 ios앱 개발하며 내가 당한 리젝 내용과 대처 방법, 그리고 다른 사람들이 리젝 당한 사례를 작성한 내용이니, ionic3로 ios 개발할때 참조하면 특히 더 좋습니다.

다른 프레임워크로 개발한다해도 리젝 당하는것은 마찬가지니.. 한번쯤 보면 좋을듯

 

1. 커뮤니티 기능 ( 유저가 글 작성이 가능하며 모두에게 공개됨 ) 존재 시
게시자 차단 및 신고 기능 필요

리젝 내용

Guideline 1.2 - Safety - User Generated Content

Your app enables the display of user-generated content but does not have the proper precautions in place.

Next Steps

To resolve this issue, please revise your app to implement all of the following precautions:

- Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users

- A method for filtering objectionable content
- A mechanism for users to flag objectionable content
- A mechanism for users to block abusive users

- The developer must act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided the offending content

* 각 게시글에 대한 신고기능과 유저를 차단 및 차단해제하는 기능을 넣으니 통과됨
유저 신고 기능이 필요 없는 경우 => 운영자만 글을 작성할 수 있음
유저가 댓글 작성만 가능한 경우에는 신고/차단 없어도 넘어가는 경우도 있다고 함

 

 

2. 이벤트 존재 시 상품 지급 내용 시 주의

리젝 내용

Guideline 5.3.2 - Legal - Gaming, Gambling, and Lotteries

Your app includes a contest or sweepstakes but it does not:

- Include official rules for the 오픈 이벤트 within the app, which is required.
- Indicate that Apple is not involved in any way with the contest or sweepstakes.
- Enforce an app age rating of 17+.

Next Steps
It is necessary to:
- Include official rules of the contest or sweepstakes in the app and ensure the rules are available to users at all times.
- Include an explicit statement in the contest or sweepstakes rules specifying that Apple is not a sponsor.
- Enforce an age rating of 17+.

* 리젝 당시에는 이벤트 기간 내 회원가입 시, 스타벅스 기프티콘 증정하는 이벤트였음.
이벤트 상품 지급 자체를 금지하지 않으나, 앱 연령을 17세 이상으로 높여야하고,
본 이벤트가 애플과 관련이 없다는 내용을 넣어야 한다.  ( 17세 이상 올리기엔 적철치 않아, 그냥 심사기간에 이벤트 내용 지우고 재심사 요청하였음. )

 

 

3. SNS로그인 존재 시, Apple로 로그인 필수

리젝 내용

Guideline 4.8 - Design - Sign in with Apple

Your app uses a third-party login service, but does not offer Sign in with Apple. Apps that use a third-party login service for account authentication need to offer Sign in with Apple to users as an equivalent option.

Next Steps

Please revise your app to offer Sign in with Apple as an equivalent option for account authentication.

** 애플 로그인 가이드라인을 지키지 않아도 리젝된다.
( https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/introduction/ )

 

** 텍스트는 아래와 같이 꼭 들어가야한다. 안그러면 리젝됨
영문의 경우 : Sign in with Apple
한글의 경우 : Apple로 로그인 또는 Apple로 계속하기

 

** 애플 로그인이 있다면 본인인증 기능을 넣을 수 없다.
( 애플로그인+본인인증을 경우에 따라 넣으면 승인될 수 있지만, 절차가 복잡한 것 같다.  어떤 커뮤니티 글에 따르면, 전동킥보드 앱에 애플 로그인을 넣고, 운전면허 확인을 위해 PASS앱으로 본인인증 기능을 넣었더니 관련법령까지 요구했다고 하니, 중요한거 아닌 이상 본인인증 삭제 추천 )

 

** 가입화면에서 애플 계정정보
( 이름, 이메일(선택)) 입력 값이 화면에 보이면 안되는듯한데.. 잘 모르겠다.
나 같은 경우에는 자동으로 입력되있게끔 하고 그냥 화면에 보여주기만 했는데 심사 거절됐다.)

-> 이메일은 공개안하기 설정할 수 있는데 비공개시 원래 eamil@apple-privacy.com 식으로 불러온다는데 ionic3의 플러그인에선 안불러와져서 그냥 이메일 필수값으로 안하고, 애플 로그인 시 이메일 주소 안보이게 수정

 

 

4. 카메라, 블루투스, 위치권한 등 해당 기능을 사용하는 이유를
사용자에게 알려줘야한다.

리젝 내용

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

We noticed that your app requests the user’s consent to access the camera, but doesn’t sufficiently explain the use of the camera in the purpose string.

To help users make informed decisions about how their data is used, all permission request alerts need to specify how your app will use the requested information.

Next Steps

Please revise the relevant purpose string in your app’s Info.plist file to specify why your app needs access to the user's camera.

You can modify your app's Info.plist file using the property list editor in Xcode.

plist 수정해야하는데 ionic ios빌드 시 plist파일이 다시 작성된다
그래서 config.xml에서 plist 파일이 수정되도록 해야한다.


* 아래의 명령어 참고

* 플러그인 추가
$ cordova plugin add cordova-custom-config

* config.xml에 ios 플랫폼쪽에 추가 / parent는 plist파일을 참고한다.

   <!-- Set message displayed when app requests constant location updates -->
<custom-config-file platform="ios" target="*-Info.plist" parent="NSLocationAlwaysUsageDescription">
<string>This app requires constant access to your location in order to track your position, even when the screen is off.</string>
</custom-config-file>

https://github.com/dpa99c/cordova-custom-config

 

GitHub - dpa99c/cordova-custom-config: Cordova/Phonegap plugin to update platform configuration files based on preferences and c

Cordova/Phonegap plugin to update platform configuration files based on preferences and config-file data defined in config.xml - GitHub - dpa99c/cordova-custom-config: Cordova/Phonegap plugin to up...

github.com

 

 

 

 

5. 기타 찾은 사례

1. 회원가입 시 리워드 지급 금지 (쿠폰/포인트 등)
2. 초대 이벤트 금지
3. 게시글이 아무것도 없으면 리젝될 수 있음
4. 게시글에 테스트 게시글이 있음 리젝될 수 있음
5. 개인정보 (성별/주소)가 필수값이여도 리젝될 수 있음
6. 타사 기기, 플랫폼 언급시 리젝될 수 있음