• Xcode隐私协议适配


    1. Privacy manifest files

    1.1 简介

    自己App或三方SDK(通过XCFrameworks|Swift packages|Xcode projects集成的)需要包含一个隐私清单文件(privacy manifest)叫作 PrivacyInfo.xcprivacy它是一个属性列表,记录了App或三方SDK收集数据的类型以及使用收集数据Api的原因,放置在bundle文件里。帮助开发者了解三方SDK中使用的Api以及数据收集的一些信息。

    重要:

    • 如果集成的三方SDK在下面的列表中,则需要三方SDK里面包含这样的隐私清单 Upcoming third-party SDK requirements.
    • 如果集成的三方SDK没有在上面的列表中,但是它使用了需要说明使用原因的Api,最好也包含下

    1.2 Create a privacy manifest

    File > New File->App Privacy,然后选择target,这里的target可以是三方SDK,也可以是自身App的,如果更新三方SDK成本太大,或者最新版本的也没有提供隐私清单,可以通过这个方法,手动给三方SDK添加。每个三方SDK都是单独的,都需要单独添加

    默认名字 PrivacyInfo.xcprivacy,不建议更改​​​​​​​

    PrivacyInfo.xcprivacy字典里,添加下列的键:

    • NSPrivacyTracking
      • bool值,表示App或者三方SDK是否使用了App Tracking Transparency framework下的数据  User Privacy and Data Use.
    • NSPrivacyTrackingDomains
      • string数组,表示App或者三方SDK在tracking时,链接的域名,如果用户没有统一跟踪的权限,请求这些域名就会失败,并收到一个error如果NSPrivacyTracking=true,则至少需要设置一个NSPrivacyTrackingDomains
    • NSPrivacyCollectedDataTypes
    • NSPrivacyAccessedAPITypes
      • ​​​​​​​一个字典数据,表示App或者三方SDK,访问了哪些需要说明访问原因的api Describing use of required reason API.
      • 只需要在iOS, iPadOS, tvOS, visionOS, watchOS上为App或者三方SDK上提供这个

    1.3 Describing data use in privacy manifests

    链接:Describing data use in privacy manifests | Apple Developer Documentation

    需要注意的点:

    • data type不能自定义key-value, 只能使用列表中列出来的

    1.4 Describing use of required reason API

    大体上包括以下几类:

    1.5 需要包含隐私清单和签名的三方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
    • 签名: 
    • 或者更准确地说,代码签名(Code Signing),是一种用于确认应用或软件包来源的安全技术,同时确保自签名之后代码未被篡改。代码签名通过使用数字证书和加密技术来实现。这个过程为软件或应用附加了一个数字签名,当用户下载或运行软件时,操作系统或其他软件可以验证这个签名,以确认软件的真实性和完整性。

    1.6 总结

    • 三方SDK在上面的列表中,分为两种情况:
      • 以二进制集成(framework),需要包含签名和隐私清单,从目前来看,三方SDK都更新了
      • 以源码集成,只需要包含隐私清单,如果三方SDK最新版SDK里面包含了,拿过来用即可,更不更新SDK都行,如果三方SDK最新版也没有包含,可以不用管
    • 三方SDK不在上面的列表中:
      • 签名和隐私文件有没有都行,最好有
    • 自己的App里面,只需要包含本身App里用到的隐私Api说明

    1.7 查看隐私报告

    打包的时候,可以提前看,App的privacy 报告,会生成一个PDF

  • 相关阅读:
    单个vue页面 接收父页面参数的
    qt day 5
    【QT学习】8.qt事件处理机制,事件过滤器,自定义事件
    从HTTP到Tomcat:揭秘Web应用的底层协议与高性能容器
    9.16总结
    精密设备企业适合哪款CRM客户管理体系?
    Jenkins的原理及应用详解(一)
    编译着色器并在屏幕上绘图
    事实表的分类
    写爬虫被字体反爬了怎么办?
  • 原文地址:https://blog.csdn.net/qq_37672438/article/details/137133195