如何为Swift Package的二进制Target添加Privacy Manifest?
二进制Target添加隐私清单的解决方案
针对通过Swift Package Manager分发的二进制XCFramework添加隐私清单,目前有两种可行方案:
方案一:将隐私清单打包进XCFramework内部
构建XCFramework时,把PrivacyInfo.xcprivacy文件添加到各平台.framework的Resources目录下,再打包成XCFramework。这样SPM引入该二进制Target时,隐私清单会作为XCFramework的内置资源被自动识别。
具体操作可以在构建XCFramework的脚本中加入复制步骤,比如:
# 以iOS平台为例,复制隐私清单到framework的Resources目录 cp PrivacyInfo.xcprivacy ./build/Release-iphoneos/YourSDK.framework/Resources/
之后再执行xcodebuild -create-xcframework命令打包。
方案二:创建独立的资源Target并关联二进制Target
在Package.swift中新增一个普通Target专门管理隐私清单资源,然后让该资源Target与二进制Target一同作为产品的组成部分:
let package = Package( name: "YourSDK", products: [ .library( name: "YourSDK", targets: ["YourSDK", "YourSDKPrivacyResources"] ), ], targets: [ .binaryTarget( name: "YourSDK", path: "YourSDK.xcframework" ), .target( name: "YourSDKPrivacyResources", resources: [.process("PrivacyInfo.xcprivacy")] ) ] )
用户引入该SDK时,隐私清单会随资源Target被一并导入。
内容的提问来源于stack exchange,提问作者moshe k
相关产品推荐
相关产品推荐

