- iTerm
- Split View
- GOF
- 애플
- 앱개발
- lineBreakStrategy
- github
- WWDC
- Combine+UIKit
- DiffableDataSource
- LanguageGuide
- IOS
- UIKit
- 야곰아카데미
- 전달인자 레이블
- Keychain
- CollectionView
- 디자인패턴
- UILabel
- lineBreakMode
- Accessibility
- Apple
- iPad
- Human Interface Guidelines
- TOSS
- orthogonalScrollingBehavior
- HIG
- 애플사이다
- 스위프트
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Today
- Total
애플사이다의 iOS 개발 일지
[인디 앱개발] Apple의 App Store 심사지침 요약 - 헬스케어 기능에도 민감하다 본문
[인디 앱개발] Apple의 App Store 심사지침 요약 - 헬스케어 기능에도 민감하다
Applecider 2022. 5. 22. 14:57작은 앱개발 프로젝트를 진행 중인데, 앱 출시 전에 미리 확인할 게 많다는 조언을 들었다.
Apple이 만든 App Store 심사지침 (App Store Review Guidelines)이 그 중 하나이다.
와이어프레임 (화면설계서)을 작성하는 단계에서 읽는 것을 추천한다.
본문의 주요 포인트와 다소 의외였던 점을 정리해봤다.
앱 승인신청 시 체크리스트
- 앱에 crash 및 버그가 있는지 테스트하기
- 앱 정보와 메타데이터가 정확한지 확인하기
- 앱 심사 팀이 연락할 경우를 대비하여 개발자 연락처 업데이트하기
- 실제 시연 계정, 로그인 정보, 기타 하드웨어 또는 앱 심사에 필요한 리소스 제공하기
- 백엔드 서비스 활성화하기
- 필요한 경우, 불명확한기능이나 인앱 구입에 관한 자세한 설명과 지원 문서를 앱 심사 메모에 기록하기
- 앱이 다음과 같은 기타 문서의 지침을 따르는지 확인하기
- Apple Developer Documentation 등의 개발 가이드라인, HIG 등의 디자인 가이드라인 등
앱과 메타데이터를 App Store Connect에 제출하면 앱 심사가 시작된다.
심사조건을 한 번 통과했더라도, 개발자가 적극적으로 앱을 지원하지 않으면 App Store에 올라간 앱이 삭제될 수 있다.
(App Store 개선사항에 따르면 3년간 업데이트되지 않았거나 1년간 최소 다운로드 수를 충족하지 못하면 재평가 대상이 되고,
삭제 대상 통지를 받았다면 90일 내에 업데이트해야 한다.)
심사지침의 5개 고려요소
1. 안전성
앱을 설치했을 때, 유해 콘텐츠가 없고, 기기 및 사용자에게 손상을 주지 않아야 한다.
- 특정 종교, 인종, 성별 등에 대해 악의적인 콘텐츠를 지양한다. (근데 전문적인 정치풍자은 괜찮다고 한다.. 미국스럽다)
- 사용자가 유해 컨텐츠 (지적재산권 침해, 사이버 불링 등)를 업로드하는 것을 방지하여 신고/차단 기능을 만든다.
- Chatroulette (랜덤 채팅) 방식과 “hot-or-not” voting (외모 평가) 등의 Objectification of real people (실제 인물의 상품화)를 하는 서비스는 별도 통지 없이 삭제될 수 있다.
- 어린이 카테고리의 앱은 별도 지침을 따라야 한다.
- 앱으로 인한 신체적 손상을 방지하기 위해 건강 측정 기능이 있는 앱은 측정 방법과 데이터 사용 목적에 대해 철저히 증명해야 한다.
- 개발자 연락처를 명시해야 한다.
2. 성능
앱 실행에 필요한 모든 메타데이터 (앱 이름, 스크린샷 등), 백엔드 서비스 등이 준비되어 있고, 버그가 없는지 확인해야 한다.
- 체험판 버전의 앱은 App Store에 등록할 수 없으며, Apple에서 제공하는 *TestFlight를 통해 테스트해야 한다.
*TestFlight : 사용자를 초대하여 베타 테스트를 진행하는 것 - 앱 설명 텍스트, 스크린샷, 미리보기 등을 통해 앱의 기능을 명확히 문서화하고 설명해야 한다.
- 인앱 구매 기능이 있다면 별도 지침을 따라야 한다.
- 앱의 사용자 연령 기준이 높더라도 (ex. 성인 인증 앱) 앱 아이콘, 스크린샷, 미리보기는 4세 이상 연령 등급을 준수해야 한다.
- 영화 시사회, 라이브 이벤트, 주요 업데이트 등 인앱 이벤트를 App Store에서 소개하려면 별도 지침을 따라야 한다.
- 하드웨어 호환성을 위해 iPhone 앱은 가능하면 iPad에서도 실행할 수 있도록 한다.
- Mac App Store를 통해 배포하는 앱은 추가 요구사항이 있다.
3. 비즈니스
비즈니스 모델이 명확해야 하고, 인앱 구매 기능을 쉽게 이해할 수 있어야 한다.
- 앱의 가격이 불합리하게 높은 경우 배포를 허용하지 않는다.
- 대부분의 경우, 인앱 결제를 해야 한다. (Apple 욕심쟁이)
*2022년부터 신문 / 책 / 영상 등 컨텐츠 구독 앱에 대해 외부 결제를 허용한다. (빅테크 반독점 규제 때문에 어쩔 수 없이 했다고 함) - 실물 기프트 카드를 제외한 디지털 상품권, 쿠폰 등은 인앱 결제를 해야 한다. (Apple 욕심쟁이22)
- 인앱 구매를 통해 사용자가 얻은 크레딧 또는 게임 화폐는 사용 기한이 없어야 한다.
- 유료 서비스에 대해 무료 체험기간을 제공하려면 별도 지침을 따라야 한다.
- 구독 앱은 자동갱신 구독을 추가하려면 별도 지침을 따라야 한다.
- 기존 앱을 구독 앱으로 변경하는 경우, 이미 결제를 완료한 기존 사용자에게는 주요 기능을 지속 제공해야 한다.
- 건강 및 의학 데이터 (HealthKit API) 등 민감한 사용자 정보는 이에 근거한 타깃 광고를추가할 수 없다.
4. 디자인
심플하고, 세련되고, 혁신적이며, 편리한 서비스를 디자인해야 한다.
- 단순히 웹사이트와 똑같은 디자인으로 앱을 만드는 게 아니라, 모바일 앱에 적합한 UI/UX를 사용해야 한다.
- 초기 실행 시 추가 리소스를 다운받아야 하는 앱은 사용자에게 리소스 크기를 알리고 승인을 요청해야 한다.
- Safari 등 앱 확장 프로그램을 호스팅하거나 포함하는 앱은 별도 지침을 따라야 한다.
- SNS으로 로그인 기능을 구현했다면, Apple로 로그인 기능도 제공해야 한다. (언젠가부터 자주 보이던 이유가 있었다)
*기업/교육기관의 자체 계정을 사용하여 로그인하는 앱은 제외한다.
5. 법적 요구사항
앱이 상용화될 지역의 모든 법적 요구사항을 준수해야 한다.
*참고 - Apple Article - Protecting the User’s Privacy
- 모든 앱은'개인정보 처리방침 (Privacy Policies)'을 명시해야 한다.
- 앱을 통해 사용자 정보를 공유하는 타사 (타사 SDK, 광고 네트워크, 분석도구, 사용자 정보에 접근 가능한 조직 등) 또한 위의 '개인정보 처리방침'과 동등한 수준으로 사용자 정보 보호를 위한 조치를 취했는지 확인해야 한다.
- 사용자 데이터를 수집하는 앱은 해당 데이터가 익명으로 처리되더라도 사용자에게 정보수집 동의를 요청해야 한다.
또한 손쉽게 동의를 철회할 수 있어야 한다. - 앨범, 마이크, 현재 위치 사용 등은 사용자에게 권한 (Permission) 요청을 하고, 해당 권한 설정을 고려해야 한다.
ex. SNS에 사진을 업로드하는 기능이 포함된 앱은 사용자가 사진 업로드 권한을 허용하기 전에 마이크 액세스를 요구하면 안 된다. - SNS 연동 기능을 구현했다면, 앱 내에서 SNS 자격증명을 철회하거나 앱과 SNS 간 데이터 접근을 비활성화하는 기능을 만든다.
- SafariViewController를 앱에서 사용하려면 먼저 사용자 동의를 요청해야 한다.
- HealthKit, 임상 건강정보 기록 API, 카메라/사진 API 등에서 수집한 데이터는 마케팅, 광고, 사용자 기반 데이터 마이닝 용도로 사용할 수 없다.
*참고 - HealthKit 모범 구현사례 (Best Practices) - 건강, 피트니스, 의학 데이터는 민감한 정보이므로 개인정보 보호를 위한 추가 규정이 적용된다.
- iCloud에 개인 건강 데이터를 보관할 수 없다.
- 사람을 대상으로 건강 관련 연구를 진행하려면 별도 규정을 따라야 한다.
- 어린이 카테고리 앱 또는 미성년자로부터 개인 정보를 수집/공유하는 앱은 반드시 개인정보 처리방침을 추가해야 한다.
Apple이 신경 쓰는 것
심사지침을 다 읽고 든 생각은 "Apple은 앱 콘텐츠의 건전성을 관리한다"는 것이었다.
Youtube, Google과는 달리 아동, 인권, 범죄, 특히 건강 데이터에 대해 보수적이고 강경한 입장을 드러내고 있다.
아이들에게 유해하지 않은 콘텐츠, 사용자 데이터 도용 가능성 등에 대해 세밀히 점검하는 게 인상 깊었다.
이와 관련해서 중간중간 웃긴 문장도 있었다. 그중에 잊히지 않는 내용
We will reject apps for any content or behavior that we believe is over the line. What line, you ask? Well, as a Supreme Court Justice once said, “I’ll know it when I see it”. And we think that you will also know it when you cross it.
(Apple이 정해 놓은 선을 넘는 콘텐츠나 동작이 있는 앱은 반드시 거절당합니다. 어떤 선인지 궁금하십니까? "직접 보면 알 수 있다"는 미국 연방대법관의 말처럼 선을 넘는 순간 여러분도 알 수 있을 것입니다.)
음..?! 주관적일 수 있는 판단기준을 이렇게 설명하고 있다.. 🤔
Apple이 정해놓은 선이 있다고 한다.
인앱 결제, Apple로 로그인 기능처럼 Apple에게 유리한 기준도 존재하지만,
콘텐츠를 공유하는 장을 만들어놓고 방관하는 것보다는 이렇게 관리기준을 정하고 공개하는 게 바람직한 것 같다.
아래처럼 App Store의 에디터 추천앱에 앱이 올라갈 날이 왔으면 좋겠다.
- Reference
- Apple Developer > App Store 심사지침 (App Store Review Guidelines)
- Apple Developer > TestFlight
- Apple Developer > In-app events
- Apple Developer Documentation > Article - Protecting the User’s Privacy
- Apple Developer Documentation > HealthKit 모범 구현사례 (Best Practices)
🍎 포스트가 도움이 되었다면, 공감🤍 / 구독🍹 / 공유🔗 / 댓글✏️ 로 응원해주세요. 감사합니다.