当我提交 .NET MAUI iOS 应用程序时,我仍然收到来自 Apple 的关于缺少 API 声明的警告电子邮件。
我已经在我的 Platforms/iOS 文件夹中添加了 PrivacyInfo.xcprivacy 文件。它的构建操作是 BundleResource。我还修改了项目文件以包含相关的 ItemGroup 信息。
该电子邮件包含与我添加隐私文件之前完全相同的缺失 API 声明:NSPrivacyAccessedAPICategoryDiskSpace、NSPrivacyAccessedAPICategoryFileTimestamp 和 NSPrivacyAccessedAPICategorySystemBootTime。
这是我的 PrivacyInfo.xcprivacy 文件:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!-- See https://devblogs.microsoft.com/dotnet/apple-privacy-manifest-support/ -->
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>E174.1</string>
</array>
</dict>
</plist>
有谁知道为什么会这样?
Apple 正在推出一项隐私政策,将隐私清单文件包含在针对 App Store 上的 iOS、iPadOS 和 tvOS 平台的新应用程序和更新应用程序中。
隐私清单文件是一个属性列表,记录了隐私的类型 您的应用或第三方 SDK 收集的数据,以及所需的数据 您的应用或第三方 SDK 使用 API 的原因。
首先在
PrivacyInfo.xcprivacy
文件夹中添加一个BundleResources
作为Platforms/iOS
。(确保PrivacyInfo.xcprivacy文件没有.xml扩展名。)
然后将所需条目添加到隐私清单中。不要错过
NSPrivacyAccessedAPITypes
键。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>E174.1</string>
</array>
</dict>
</array>
</dict>
</plist>
您还可以编辑 .NET MAUI 项目文件以包含以下部分。
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
<BundleResource Include="Platforms\iOS\PrivacyInfo.xcprivacy" LogicalName="PrivacyInfo.xcprivacy" />
</ItemGroup>
更多信息请参考
向 .NET iOS 和 .NET MAUI 应用程序添加 Apple 隐私清单支持,
希望有帮助!