Privacy Manifest 대응기

quokka·2024년 4월 24일
0

iOS

목록 보기
23/27
post-custom-banner

심사를 올렸는데 이러한 메일이 왔다면 5월1일부터는 PrivacyInfo파일에 API사용이유를 명시해줘야 합니다.

Record the categories of data that your app or third-party SDK collects about the person using the app, and the reasons it collects the data

→ third-party SDK에서 PrivacyInfo파일이 있어도 앱 심사 올렸을때 관련해서 경고 메일이 오는거보니 앱개발자가 기록하라는 의미인거같습니다.

1. Privacy Manifest파일 추가하기

  • File을 선택하고 > New File을 클릭합니다.
  • app 이라고 검색합니다.
  • Next를 클릭합니다.
  • 파일을 추가해야할 경로가 맞는지 확인합니다.
  • Create를 클릭합니다.
  • PrivacyInfo.xcprivacy파일이 생성됐습니다.
    -> 번들로 제공되는 개인정보 보호 매니페스트에 필요한 파일 이름이므로 변경하면 안될거 같습니다.

참고: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files

2. Privacy-Scanner를 이용하여 PrivacyInfo파일에 기록해야하는 API가 무엇인지 확인하기

Privacy-Scanner 설치 및 사용법(terminal에서 입력)

  1. mint 설치하기
    brew install mint
  2. privacy-scanner 설치하기
    mint install techinpark/ios_privacy_manifest_scanner
    위 과정을 통해서 성공적으로 privacy-scanner을 설치 할 수 있습니다.

3. Privacy-Scanner를 이용한 프로젝트에서 사용하는 API 파악하기

  1. 경고메일 받은 프로젝트의 terminal에서 privacy_scanner를 입력합니다.
    privacy_scanner
    PrivacyManifestScanner_WKWebViewTest_2024-04-09_13-52-46.html
  2. 프로젝트에서 어떤 API쓰는지 확인 및 PrivacyInfo에 이유 작성
    참고: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

*라이브러리를 사용하고 있다면 3.1부터 3.3까지 읽어주세요.

3.1 Privacy-Scanner를 이용한 라이브러리에서 사용하는 API 파악하기

  1. 테스트 프로젝트 생성 및 CocoaPod Podfile에 해당 라이브러리 추가 및 install(CocoaPods 사용법은 따로 검색을 하셔야합니다.)
  2. privcay-scanner 실행하기
  3. 결과물을 .html파일로 받을수 있다.

3.2 사용하고 있는 SDK에서 어떤 버전 부터 PrivacyInfo를 지원하는지 확인하기

  1. ex)프로젝트 에서 사용하는 라이브러리들은 밑에 버전부터 PrivacyInfo 파일이 추가되었으므로 해당 버전까지 라이브러리 업데이트
  2. SPM업데이트가 되면 “privacy”라는 키워드로 SPM에서 검색을 해준 후 어떤 PrivacyInfo파일에 어떻게 기록되어있는지 확인후 실제 프로젝트에 추가해준다.

3.3 사용하고있는 API와 Reasons를 기록합니다.

사용하고 있는 API마다 다르기 때문에 라이브러리에서 잘 찾아보고 이유를 명시합니다.

(참고사항)필자의 프로젝트에서 사용하는 Privacy Accessed API Type & Reasons

<plist version="1.0">
<dict>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>35F9.1</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>C617.1</string>
            </array>
        </dict>
    </array>
</dict>
</plist>
  • NSPrivacyAccessedAPICategoryUserDefaults ⇒ 현재 프로젝트
  • NSPrivacyAccessedAPICategorySystemBootTime ⇒ Alamofire
  • NSPrivacyAccessedAPICategoryFileTimestamp ⇒ SDWebImage PrivacyInfo.xcprivacy

도움될만한 문서: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests

profile
iOS를 공부하는 개발자입니다~ㅎㅎ
post-custom-banner

0개의 댓글