Xcode15升级Flutter适配隐私清单

背景

Apple于2023年12月07号官方列出了需要隐私清单和签名的三方SDK,从2024年春季开始,在App Store Connect中提交包含这些SDK的应用,必须包含相应的隐私清单。在使用列出的SDK作为二进制依赖项的情况下,也需要提供签名。对于列出的SDK的任何版本,以及对这些列表上SDK进行重新打包的任何SDK,都适用此要求。3月份Apple会将未在隐私清单中提供原因的API通过邮件通知,5月1号以后则会强制要求


面对这样的要求,我们只能乖乖适配了,毕竟听话才不容易被干掉

三方SDK列表

很多常用的库都在列表上,比如AFNetWorking Alamofire SDWebImage...,所以几乎所有的App都需要适配,做过Flutter开发的同学会发现,Flutter也挂在名单上,包括url_launcher path_provider fluttertoast ..., 看来苹果还是忍不住对Flutter 动手了

以上列出是三方库和插件,需要适配添加xcprivacy并说明使用原因。

xcprivacy

xcode15 可以新增App Privacy文件

xcprivacy文件主要包含四项内容

js 复制代码
 Privacy Tracking Enabled 是否开启隐私跟踪
 Privacy Tracking Domains 跟踪域名
 Privacy Nutrition Label Types  隐私营养标签,添加后,打包后生成的PDF文件中
 Privacy Accessed API Types 使用的隐私API及原因说明

官方列出了以下四种类型的API,每种类型API都包含隐私相关的具体API,如果调用了对应的API,需要在隐私清单中列出使用原因,但是目前列表中的三方SDK

可以通过脚本扫描工程中是否使用上述API,并根据扫描结果添加对应的使用原因

扫描脚本

js 复制代码
    cd /Users/xxx/xxx/demo_project
    sh /Users/xxx/xxx/check_xcprivacy.sh
    请输入必要理由api的文件路径:

根据筛选内容添加必要的 NSPrivacyAccessedAPITypes, 提交testflight以后,官方会扫描提交的ipa,并对未声明原因的API发送邮件,可以根据邮件添加对应原因

SDK签名

官方为了保障SDK的可追溯性,提出了SDK签名,签名后的framework和xcframework 对出现_CodeSignature文件,只有xcframework签名后在xcode中查看到签名密钥 要求使用了三方SDK的二进制引用或封装,需要对SDK做签名处理,当然苹果也鼓励所有的SDK做签名处理来保障SDK的安全溯源

js 复制代码
codesign --timestamp -v --sign "Apple Distribution: Truck to Table (UA527FUGW7)" BirdFeeder.xcframework

Flutter适配

flutter需要升级到包含xcprivacy的版本,目前最高版本是3.19.3, 如果将flutter以二进制的形式依赖,需要对flutter.framework做签名

path_provider

sqflite

部分插件已经添加了xcprivacy,需要升级对应的版本

编译问题

在xcode升级后遇到的一些编译的问题,其他问题可以自己查找

  1. xxxx duplicate symbols

Other Linker Flags 添加 -ld64

  1. Symbol not found: '/System/Library/Frameworks/Network.framework/Network'

添加 Network.framework 选择Optional

3. Flutter/Flutter.h

gem install cocoapods -v 1.13.0 -V

总结

目前各方适配的隐私清单xcprivacy 大多数都只添加文件没有添加原因,官方也没有给出具体的添加说明和示例,添加原因后提交testflight会提示邮件,根据邮件内容对api作出说明,没有绝对的安全,只有绝对的安全努力。

参考

www.wwdcnotes.com/notes/wwdc2...

相关推荐
许泽宇的技术分享3 天前
用 OpenAI Whisper + pyannote.audio 打造“谁在说什么”的全栈语音理解系统
macos·whisper·xcode
2501_941798734 天前
C++高性能音频处理与实时特征提取实战分享:多线程信号处理与低延迟优化经验
ide·macos·xcode
Morgan-Chen4 天前
iOS开发针对苹果新系统iOS26的兼容适配
ios·objective-c·xcode·ios26
denggun1234510 天前
Xcode的App Thinning Size Report分析包体积
macos·蓝桥杯·xcode
枫子有风11 天前
【go.sixue.work】2.2 面向对象:接口与多态
开发语言·后端·golang·xcode
denggun1234512 天前
ios卡顿优化
ios·xcode
500佰13 天前
Copilot、Codeium 软件开发领域的代表性工具背后的技术
人工智能·github·gpt-3·copilot·个人开发·xcode
denggun1234514 天前
图片上传git时压缩
git·ios·objective-c·iphone·xcode
ajassi200016 天前
开源 Objective-C IOS 应用开发(二)Xcode安装
ios·objective-c·xcode
谢娘蓝桥19 天前
Mac 安装 Xcode 及qt 环境安装
ide·macos·xcode