Apple Privacy Manifest 에 대해

김상우·2024년 3월 26일
1

Apple Privacy Manifest.

쏘카 앱스토어 심사 중, 애플에서 이런 안내 메일이 도착했다.

We noticed one or more issues with a recent submission for App Store review for the following app:
쏘카 - 모빌리티 라이프 플랫폼

Although submission for App Store review was successful, you may want to correct the following issues in your next submission for App Store review. Once you've corrected the issues, upload a new binary to App Store Connect. "~~~".

"이번 앱 심사는 통과했지만, 조만간 "~~~"한 이슈들을 반영해서 수정해주어야한다."

이 메일이 온 이유는 2024.05.01 부터 앱스토어 커넥트에 앱을 업로드할 때, 앱 코드에서 사용하는 API 들의 사용 이유를 함께 업로드해야하기 때문이다.

애플 공식 문서 - Privacy updates for App Store submissions 에 따르면, 24.03.13 부터는 일괄적으로 이에 대한 안내 이메일을 보내줄 것이며, 24.05.01 까지는 반드시 애플의 요구사항을 만족해야함을 안내하고 있다.

그럼 애플은 API 사용 이유를 왜 묻는가. 애플 공식 문서 - Upcoming third-party SDK requirements 에서 다음과 같이 이야기하고 있다.

Third-party software development kits (SDKs) can provide great functionality for apps; they can also have the potential to impact user privacy in ways that aren’t obvious to developers and users. As a reminder, when you use a third-party SDK with your app, you are responsible for all the code the SDK includes in your app, and need to be aware of its data collection and use practices. At WWDC23, we introduced new privacy manifests and signatures for SDKs to help bring more awareness for how third-party SDKs use data. This functionality is a step forward for all apps, and we encourage all SDKs to adopt it to better support the apps that depend on them.

요약 → 서드파티 SDK 는 앱에 탁월한 기능 제공을 한다는 장점이 있지만, 그것들은 개발자와 사용자에게 명백하지 않은 방식으로 사용자 개인정보 (privacy) 에 영향을 미칠 포텐셜을 가지고 있다. 따라서 SDK 를 사용할 경우 그것이 포함된 모든 코드에 대한 책임을 지고 데이터 수집 및 사용 방법에 대한 숙지를 해야만 한다. WWDC 23 에서는 이를 위한 지원으로 privacy manifest 와 signature 를 소개하기도 했었다.

한마디로 앱 및 앱의 서드파티 SDK 에서 유저 privacy 정보를 조금이라도 건드린다면 그래야 하는 이유를 정리해서 올리라는 것. Apple Privacy Manifest 를 함께 올리라는 것이다. 문서를 보면 메니페스트 작성 대상 SDK 목록들을 애플이 직접 명시해주었다. Kingfisher, RxSwift 등 자주 사용하는 라이브러리들도 포함되어있다.

PrivacyInfo.xcprivacy

개발자는 Xcode 에서 PrivacyInfo.xcprivacy 파일을 생성해주면 된다. newFile → App Privacy 파일로 생성할 수 있다. 자세한 설명은 애플 공식 문서 - Privacy manifest files.

PrivacyInfo 파일은 InfoPlist 처럼 key-value 형태의 파일이다. 이 key-value 에 애플이 지정해둔 형식의 문서를 작성하면 된다.

  1. NSPrivacyTracking
  2. NSPrivacyTrackingDomains
  3. NSPrivacyCollectedDataTypes
  4. NSPrivacyAccessedAPITypes

크게는 이 4개의 키 값에 대해서 작성한다. 1, 2 번에는 앱 또는 서드파티 SDK가 추적을 위해 데이터를 사용하는지에 대해 작성하면 된다.

3번 NSPrivacyCollectedDataTypes 은 앱이 수집하는 개인정보 데이터 유형에 대한 항목이다. 앱스토어서 앱이 수집하는 개인정보 → 데이터 유형에 등록된 목록들에 대해 작성하면 된다. 예를들어 이름, 이메일 주소, 전화번호 등이 있을 수 있다.

NSPrivacyCollectedDataTypes 는 하위항목으로 NSPrivacyCollectedDataType, NSPrivacyCollectedDataTypeLinked, NSPrivacyCollectedDataTypeTracking, NSPrivacyCollectedDataTypePurposes 에 대해서 함께 작성해줘야 한다.

차례대로 데이터 유형, 사용자에게 연결된 데이터인지, 사용자를 추적하는 데 사용되는 데이터인지, 그리고 사용 목적이다.

애플 공식 문서 - Describing data use in privacy manifests 에 자세히 기술되어있으며, 제공하는 타입 그대로 작성해줘야한다.

4번 NSPrivacyAccessedAPITypes 항목에는 앱에서 File timestamp APIs, System boot time APIs, Disk space APIs, Active keyboard APIs, User defaults APIs 중 사용하고 있는 것들이 있다면 사용하는 이유에 대해 작성해야 한다.

UserDefaults 는 웬만한 앱에서 모두 사용하니 UserDefaults 를 예로 들면 value 값에 사용 이유 코드로 제공된 CA92.1, 1C8F.1 등을 작성해줘야 하는 것이다.

profile
안녕하세요, iOS 와 알고리즘에 대한 글을 씁니다.

0개의 댓글