티스토리 뷰

안녕하세요.

요즘 애플에서 발표한 정책때문에 유명한 친구가 하나 있습니다. 

 

바로 Privacy manifest 인데요 

이제 이 친구가 없으면 앱스토어 통과가 힘들어진다고 하네요

 

* 애플 일정 안내

https://developer.apple.com/news/?id=3d8a9yyh

 

Privacy updates for App Store submissions - Latest News - Apple Developer

Developers are responsible for all code included in their apps. At WWDC23, we introduced new privacy manifests and signatures for commonly used third-party SDKs and announced that developers will need to declare approved reasons for using a set of APIs in

developer.apple.com

지금 기준(2024.4.3)으로는 목록에 포함된 API(아래 링크 참고) 를 사용할 경우 이메일로 누락된 부분을 작성해 달라고 온다고 하네요 

하지만 5월 1일부터는 타사 SDK 또한 매니페스트가 포함되어야한다는 말이 있습니다. 

 

* Privacy Manifest 란 & 현재 필요한 API 들 

https://developer.apple.com/support/third-party-SDK-requirements/

 

Upcoming third-party SDK requirements - Support - Apple Developer

Feedback Assistant Submit feedback, report bugs, and request enhancements to APIs and developer tools. Send us feedback

developer.apple.com

* Privacy Manifest 만 한번더 정리하면 

- 앱 내 타사 코드의 개인 정보 보호 사용내역을 특정 형식으로 간단히 표현한 것

- 앱에 있는 모든 타사 SDK를 요약해 하나의 보고서로 만든 것 (이 일은 Xcode 가 합니다)

- 그리고 그 보고서로 앱을 관리한다 이런 의미로 보입니다. 

 

* 개인정보 보호 관련 매니페스트 (개인 데이터 종류와 사용 이유 종류)

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests

 

Describing data use in privacy manifests | Apple Developer Documentation

Declare the data collected by your app or by third-party SDKs.

developer.apple.com

 

* Apple 에서 지정한 작성해야하는 데이터 종류 

- 개인 정보(이름,전화번호,이메일등) / 건강과 운동 / 위치 /민감정보 (인종,종교 등)

/ 연락처 정보(주소록등) / 콘텐츠 (문자,사진, 영상,오디오 등) / 시청기록 / 검색기록

/ 식별자 (사용자 ID나 기기ID) / 구매내역 / 사용 데이터 (제품 사용, 광고 시청 정보 등)

/ 각종 데이터 (충돌,성능, 앱에 관련된 기술적 데이터) / 환경 스캔 (사용자 주변 이미지 검출)

/ 신체 (손이나 얼굴의 움직임) / 기타 데이터

- 구체적인 내용은 위 링크를 참고해주세요(자세히 쓰기엔 너무 많)

 

* 해당 데이터를 사용하는 이유 (NSPrivacyCollectedDataType)

- Third-party advertising (PurposeThirdPartyAdvertising)

   : 제 3자와 데이터를 공유해 광고를 표시합니다.

- Developer’s advertising or marketing (PurposeDeveloperAdvertising)

   : 자사 광고를 표현하거나 광고의 주체와 데이터를 공유합니다.

- Analytics (PurposeAnalytics)

   : 데이터를 통해 기존 성능 향성 혹은 사용자 행동을 평가합니다.

- Product personalization (PurposeProductPersonalization)

   : 추천 제품이나 게시물등 사용자에게 맞춤 설정합니다.

- App functionality (PurposeAppFunctionality)

   : 사용자 인증, 기능활성화등 앱 기능을 위해 사용합니다.

- Other purposes (PurposeOther)

   : 그외 이유로 사용합니다. 

=>  이 이유랑 데이터랑 같이 적어주시면 됩니다.

 

그리고 이거 말고 특정 API를 사용하실때도 작성해야합니다.

(근데 이게 의외의 친구가 들어가있어요...)

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

 

Describing use of required reason API | Apple Developer Documentation

Ensure your use of covered API is consistent with policy.

developer.apple.com

 * 애플에서 지정한 API 들 

- File timestamp APIs 

- System boot time APIs 

- Disk space APIs

- Active keyboard APIs (activeInputModes 말하는 겁니다.)

- User defaults APIs (애가 왜 여기에;;)

 

위 5가지 API들은 사용이유와 함께 작성해주셔야합니다.

참고로 사용이유는 각 API 마다 케이스가 적혀있는데요.

 

가장 많이 사용하실 것 같은 User defaults 로 예를 들면 

이유가 4가지로 나뉘어 있습니다. 

(영어 해석이 완벽하진 않지만 대략 이런 느낌입니다)

 

- CA92.1 : 앱 자체에만 접근가능한 정보를 읽고 쓰기 위함 

- 1C8F.1 : 앱 그룹 구성원인 앱, 앱 확장자 에서 읽고 쓰기 위함 (앱 그룹 외에는 불가능)

- C56D.1 : 서드파티 SDK (라이브러리나 개발도구) 에서 앱의 기본 API에만 접근하는 경우 

- AC6B.1 : 사용자 기본값에 접근해 MDM에서 설정한 관리 앱 구성을 검색 / MDM을 통한 특정 정보 저장

* 애네는 번호 옆에 글씨로 부가 설명이 있어서 그거 보고 선택하시면 됩니다.

 

그럼 이제 실제 작성시에는 이중에서 골라서 작성하시면됩니다.

 

자 그래서 애네가 있다는 건 알겠는데 

실제 앱에는 어떻게 추가하는 걸까요? 

2탄에서 마저 알아볼께요.


여담

참고로 저의 경우 아래 두가지 문제에 직면해서 실험중입니다.

 

1. 어디까지 privacy manifest 정보를 작성해야 하는가

2. 직접 제작한 라이브러리가 Apple이 요구한 부분을 사용하지 않아도 manifest를 넣어야하는가 

 

사실 이에 관해 Apple 에 문의를 넣었는데

일단 공식 답변은 앱 제출하면 빠트린 걸 알려주겠다;; 라고 왔습니다. (에라이)

 

그래서 이에 관해 앱 하나를 제출해 실험해 보고자 합니다. (제출하니 답을 달라)

2탄에서는 Privacy Info를 작성하고 앱을 한번 제출해볼께요

(심사 결과에 따라 3탄으로 이어질 예정입니다.)

 

댓글