Xcode隐私协议适配

2024-06-04 9450阅读

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
      • ​​​​​​​一个字典数组,表示App或者三方SDK收集的数据类型Describing data use in privacy manifests.
    • 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

        大体上包括以下几类:

        • File timestamp APIs
        • System boot time APIs
        • Disk space APIs
        • User defaults APIs
        • Active keyboard APIs

          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

                Xcode隐私协议适配 第1张


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]