본문 바로가기
iOS

[iOS] 타사 SDK 요구 사항 변경 예정

by thoonk: 2024. 3. 22.

Upcoming third-party SDK requirements

24년 5월 1일부터 앱스토어 커넥트에 제출되는 앱은 privacy manifest 가 제공되지 않으면 리젝됨.

타사 SDK는 개발자나 사용자도 모르게 개인정보 보안을 취약하게 만들 수 있음.

타사 SDK 를 대상으로 한 개인정보 보호 매니페스트 및 서명 기능 도입

Privacy manifests

타사 코드가 앱에서 개인정보를 어떻게 처리하는지 하나의 표준 형식으로 요약한 파일

외부 SDK 와 이를 사용하는 앱에서 수집되는 데이터 목록을 공개하고 개인정보 처리 방침을 기재해야 함.

PrivacyInfo.xcprivacy 파일 생성

  • Choose File > New File > select App Privacy File type

이 파일은 속성 목록으로서 SDK 가 수집하는 데이터 유형과 데이터 유형의 사용 방법, 사용자와의 연결 여부, 앱 추적 투명성 정책에 정의된 대로 추적에 사용되는지를 선언함.

 

Privacy Manifest 파일에 기재할 수 4가지 하위 분류가 있음.

  • NSPrivacyTracking
    • 앱 또는 타사 SDK가 ATT 프레임워크에 정의된 대로 추적에 대해 데이터를 서용하는지 여부를 나타내는 Bool 값
  • NSPrivacyTrackingDomains
    • 앱 또는 타사 SDK 가 추적에 참여하는 인터넷 도메인을 나열한 문자열 배열(an array of strings)
    • 사용자가 추적 권한을 부여하지 않으면 도메인으로의 네트워크 요청이 실패함.
  • NSPrivacyCollectedDataTypes
    • 앱 또는 타사 SDK가 수집하는 데이터 유형을 설명하는 사전 배열(an array of dictionaries)
    • Xcode 는 이 값을 사용해서 App Store Connect Privacy Nutritio Labels 답변에 참고하기 쉬운 보고서를 생성함.
  • NSPrivacyAccessedAPITypes
    • 앱 또는 타사 SDK가 액세스하는 API를 설명하는 사전 배열(an array of dictionaries)이며, 이는 액세스에 사유가 필요한 API로 지정되어 있음.

Privacy report

앱 및 포함된 SDK 에 대한 Privacy Manifest 파일에 작성된 값을 기반으로 Xcode에서 생성할 수 있는 PDF 파일

이 개인정보 리포트는 PDF 파일이며 App Store Connect Privacy Nutritio Labels 을 제공할 때 쉽게 참조할 수 있음.

앱과 앱의 종속성에 대한 개인정보 처리방침을 검토, 이해 및 설명하는 데 도움이 됨.

개인정보 리포트가 생성되지 않는다면, SDK를 embed 로 변경

SDK 서명

Xcode 는 앱 종속성(타사 SDK)이 유효한 코드 서명과 함께 제공되는지 확인함.

개인정보 보호에 영향을 주는 목록에 있는 SDK일 때, Apple 은 해당 SDK에 SDK개발자의 서명을 요구함.

아래 목록에 포함된 SDK는 privacy manifest 파일과 SDK 개발자의 코드 서명을 무조건 포함해야 함.

 

개인정보 보호 매니페스트 및 서명을 필요로 하는 SDK

  • Abseil
  • AFNetworking
  • Alamofire
  • AppAuth
  • BoringSSL / openssl_grpc
  • Capacitor
  • Charts
  • connectivity_plus
  • Cordova
  • device_info_plus
  • DKImagePickerController
  • DKPhotoGallery
  • FBAEMKit
  • FBLPromises
  • FBSDKCoreKit
  • FBSDKCoreKit_Basics
  • FBSDKLoginKit
  • FBSDKShareKit
  • file_picker
  • FirebaseABTesting
  • FirebaseAuth
  • FirebaseCore
  • FirebaseCoreDiagnostics
  • FirebaseCoreExtension
  • FirebaseCoreInternal
  • FirebaseCrashlytics
  • FirebaseDynamicLinks
  • FirebaseFirestore
  • FirebaseInstallations
  • FirebaseMessaging
  • FirebaseRemoteConfig
  • Flutter
  • flutter_inappwebview
  • flutter_local_notifications
  • fluttertoast
  • FMDB
  • geolocator_apple
  • GoogleDataTransport
  • GoogleSignIn
  • GoogleToolboxForMac
  • GoogleUtilities
  • grpcpp
  • GTMAppAuth
  • GTMSessionFetcher
  • hermes
  • image_picker_ios
  • IQKeyboardManager
  • IQKeyboardManagerSwift
  • Kingfisher
  • leveldb
  • Lottie
  • MBProgressHUD
  • nanopb
  • OneSignal
  • OneSignalCore
  • OneSignalExtension
  • OneSignalOutcomes
  • OpenSSL
  • OrderedSet
  • package_info
  • package_info_plus
  • path_provider
  • path_provider_ios
  • Promises
  • Protobuf
  • Reachability
  • RealmSwift
  • RxCocoa
  • RxRelay
  • RxSwift
  • SDWebImage
  • share_plus
  • shared_preferences_ios
  • SnapKit
  • sqflite
  • Starscream
  • SVProgressHUD
  • SwiftyGif
  • SwiftyJSON
  • Toast
  • UnityFramework
  • url_launcher
  • url_launcher_ios
  • video_player_avfoundation
  • wakelock
  • webview_flutter_wkwebview

Tracking domains

많은 타사 SDK 는 사용자를 추적하기 전에 추적 권한 상태를 확인하지만,

사용자가 권한을 부여하지 않은 경우인데도 일부 타사 SDK 는 추적을 할 수 있으므로 수동으로 비활성해야 하는 이슈

  • 개인정보 보호 목록에 지정된 추적 도메인을 통해 iOS 17은 자동으로 추적 도메인 연결을 끊음.
  • 핑거프린팅은 절대 허용되지 않음.

추가적으로, 사용자의 허가 없이 추적을 하지 않도록 추적을 선언한 개인정보 보호 목록에는 추적 도메인을 포함해야 함.

Apple 은 추적 여부에 따라 도메인을 분리하는 것을 권장함. (tracking.example.com 또는 non-tracking.exapmle.com)

앱 네트워크 연결

the Points of Interest instruments 를 통해 추적되고 있는 도메인을 확인 할 수 있고

해당 도메인을 개인정보 보호 목록에 추가하여 사용자에게 허가받지 않은 추적을 차단함.

자세한 내용은 여기 참조

Required reson APIs

Apple 은 기존 플랫폼 API 중 오남용될 가능성(핑거프린팅)을 식별하였음.

이러한 API가 필요한 앱 및 SDK 는 액세스에 대한 승인된 사유를 작성해야 함.

예를 들어 NSFileSystemFreeSize(파일 시스템 여유 공간 양)를 호출하는 데 승인된 사유 중 하나는 디스크에 파일을 쓰기 전에 충분한디스크 공간이 있는지 확인하는 것임.

사유는 프라이버시 매니페스트 파일을 통해 명시하며 필수 사유를 명시해야 하는 API들을 여기에서 안내함.

각 카테고리에는 승인된 사유 목록이 있고 앱은 승인된 사유가 있어야만 해당 필수 사유 API에 액세스할 수 있음.

해당 사유는 사용자에게 노출되며 API 를 사용하는 기능과 일치되어야 함.


타사 SDK 요구사항 변경 대응

공통

  • 추적 도메인 및 필수 사유 API 사용을 앱이나 SDK 개인정보 보호 목록에 포함

App 개발자

  • SDK 개인정보 보호 목록 확인 및 없을 시에는 타사 SDK 개발자에게 요청
  • 심사 제출 전 개인정보 리포트를 확인하여 Privacy Nutritio Labels 작성

SDK 개발자

  • 개인정보 보호 목록 및 서명 제공

 

Privacy-scanner 이용하기

프로젝트에서 사용 중인 Required Reason API 를 확인하여 보고서 형태로 확인이 가능함.

아래 블로그 및 깃허브 링크 참고

 

다가오는 5월, iOS Privacy Manifest 심사 대응 준비하기

Apple은 5월 1일 부터, 새로운 개인정보 보호정책을 적용하여 를 사용한 이유를 설명하지 않은 앱들은 업데이트를 허용하지 않을 예정이라고 발표하였습니다. 그렇다면 는 어떤 것들이 있고 어떻

fernando.kr

 

GitHub - techinpark/ios_privacy_manifest_scanner: scan your Xcode Swift project for required reason API usage

scan your Xcode Swift project for required reason API usage - techinpark/ios_privacy_manifest_scanner

github.com


Ref.

 

Upcoming third-party SDK requirements - 지원 - Apple Developer

포럼 Apple 엔지니어 및 다른 개발자에게 개발 주제에 관해 질문하고 이야기를 나눌 수 있습니다. 포럼 보기(영문)

developer.apple.com

 

Describing data use in privacy manifests | Apple Developer Documentation

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

developer.apple.com

 

'iOS' 카테고리의 다른 글

[iOS] Developer Mode  (0) 2024.03.12
[iOS] Carthage  (0) 2023.01.12
[iOS] Crashlytics 적용  (0) 2023.01.03
[iOS] Tag을 활용한 UIButton Action 처리  (0) 2022.10.28
[iOS] Custom Navigation Controller Pop Gesture Swift  (0) 2022.09.22

댓글