개요
최근에 앱을 배포했는데, 처음보는 이슈로 리젝을 먹었다.
사실, 예전부터 경고가 날아온 적이 많아서, 알고 있는 이슈이긴 했었는데, 2024년 5월 부터는 해당 이슈가 경고가 아닌 리젝 대상으로 변경되었다. 이 내용은 Privacy manifest file이 없거나 해당 파일에 적절한 내용이 담겨있지 않아서 발생하는 이슈이다. Privacy manifest file은 WWDC2023에서 처음 나온 개념으로 앱에서 수집하는 데이터와 사용하는 API가 왜 필요한지에 대해 기입하는 파일이다.
https://developer.apple.com/documentation/bundleresources/privacy_manifest_files
App Privacy 추가
방법은 비교적 간단하다. Info.plist와 동일한 plist 파일인 AppPrivacy를 만들고 이름을 PrivacyInfo로 만들면된다. New File → filter을 통해 App Privacy를 검색하면 금방 찾을 수 있다.
한가지 고려해야할 점은 프레임워크, 패키지, macOS 프로젝트, 나머지 OS 프로젝트인지에 따라 경로가 조금씩 다르다. 아래 Apple 문서에 경로에 대한 자세한 설명이 있으니, 확인하고 작성하면 된다. 참고로 macOS를 제외한 나머지 OS들은 프로젝트 최상단 경로에 추가해주면 된다.
Privacy Info 구성
PrivacyInfo안에 요소를 추가하면 총 4개의 항목이 있다.
- Privacy Tracking Enabled(Boolean) :앱이 ATT(App Tracking Transparency)를 사용하는지에 대한 유무를 나타내는 불리언 값이다.
- Privacy Tracking Domains([String]) : 추적을 허용한다면 어떤 도메인에서 사용되는지를 적는 문자열 배열이다.
- Privacy Nutrition Label Types( [Object])
사용자의 어떤 내용을 수집하는지에 대한 디테일한 내용을 담는 오브젝트 배열이다.
오브젝트 안에는 총 4가지의 멤버가 있다.
- Collected Data Type(String) : 어떤 정보를 수집하는지
- Linked to User(Bool) : 사용자와 연결된 정보인지 유무
- Used for Tracking(Bool) : 추적하는 데이터인지의 유무
- Collection Purposes([String]) : 수집에 대한 목적이 무엇인지
Collected Data Type과 Collection Purposes에 대한 자세한 내용은 해당 링크에서 자세히 확인할 수 있다.
4. Privacy Accessed API Types([Object])
이 앱에서 사용하고 있는 Apple에서 제공하는 API를 왜 사용하는지에 대한 이유를 정의하는 오브젝트 배열이다. 앞서 적은 요소들은 PrivacyInfo에 기입하지 않아도, 심사에 영향을 끼치진 않지만, 이 항목은 애플에서 제공하는 API를 사용하였다면 무조건 기입을 해야한다. 아니면 심사가 시작되기도 전에 리젝을 먹을 수 있다. 이 오브젝트에는 2가지 요소가 있다.
- Privacy Accessed API Type : 앱 안에서 사용하고 있는 API 타입
- File timestamp
- System boot time
- Disk space
- Active keyboard
- User defaults
- Privacy Accessed API Reasons : 왜 이 API를 사용하는지에 대한 이유
Type과 Reason 동일하게 이미 정의되어 있는 항목을 선택하면 되기 때문에 엄청 어렵지 않다. 이것에 대해서 더 자세한 내용은 아래 링크에서 확인 가능하다.
'Swift' 카테고리의 다른 글
Apple Push Notification 설정(2) (1) | 2024.09.01 |
---|---|
Apple Push Notification 설정(1) (0) | 2024.08.25 |
<Value Type> Set (1) | 2024.03.03 |
14. UI Test (0) | 2022.12.31 |
13. Unit Test(3) (0) | 2022.12.23 |