cordova-ios 7.1.0 隐私清单格式正确吗?

问题描述 投票:0回答:1

我有一个 ionic cordova 应用程序。 Apple 现在要求我们在隐私清单中提供某些 API 访问的原因。 我需要添加“CA92.1”作为 NSPrivacyAccessedAPICategoryUserDefaults 的原因。

我看到 cordova-ios 7.1.0 包含向配置文件添加隐私清单的功能。

我将 cordova-ios 更新到版本 7.1.0 并将我的 config.xml 更新为如下所示:

 <platform name="ios">
        <privacy-manifest>
            <key>NSPrivacyAccessedAPITypes</key>
            <array>
                <dict>
                    <key>NSPrivacyAccessedAPICategoryUserDefaults</key>
                    <string>CA92.1</string>
                </dict>
            </array>
        </privacy-manifest>
        .....

我也尝试过不使用

<dict/>
标签

但是我收到了一封来自苹果的电子邮件:

ITMS-91056:隐私清单无效 - 以下路径中的 PrivacyInfo.xcprivacy 文件无效:“PrivacyInfo.xcprivacy”。虽然目前不需要采取任何操作,但从 2024 年 5 月 1 日开始,当您上传新应用或应用更新时,应用隐私清单中的键和值必须采用有效格式。有关隐私清单文件的更多详细信息,请访问:https://developer.apple.com/documentation/bundleresources/privacy_manifest_files

关于如何将其调整为正确的格式有什么想法吗?谢谢:)

补充信息: 这是 cordova-ios 描述的格式: https://cordova.apache.org/announcements/2024/04/03/cordova-ios-7.1.0.html

ios cordova ionic-framework cordova-ios privacy-manifest
1个回答
0
投票

我想我已经明白了。正确的格式是:

 <key>NSPrivacyAccessedAPITypes</key>
 <array>
      <dict>
           <key>NSPrivacyAccessedAPIType</key>
           <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
           <key>NSPrivacyAccessedAPITypeReasons</key>
           <array>
                <string>CA92.1</string>
           </array>
      </dict>
 </array>

我还添加了所有其他属性。因此,对于其他人的 Privacy-manifest.xml 示例,您可以使用我的作为模板:

<privacy-manifest>
    <key>NSPrivacyTracking</key>
    <false />
    <key>NSPrivacyTrackingDomains</key>
    <array />
    <key>NSPrivacyCollectedDataTypes</key>
    <array>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypeDeviceID</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
            </array>
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypeEmailAddress</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypeName</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
                <string>NSPrivacyCollectedDataTypePurposeProductPersonalization</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypePaymentInfo</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypePhoneNumber</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypePhotosorVideos</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeProductPersonalization</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypeProductInteraction</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypePurchaseHistory</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
                <string>NSPrivacyCollectedDataTypePurposeProductPersonalization</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypeUserID</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
                <string>NSPrivacyCollectedDataTypePurposeProductPersonalization</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypeOtherDataTypes</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
        <dict>
            <key>NSPrivacyCollectedDataType</key>
            <string>NSPrivacyCollectedDataTypePhysicalAddress</string>
            <key>NSPrivacyCollectedDataTypeLinked</key>
            <true />
            <key>NSPrivacyCollectedDataTypePurposes</key>
            <array>
                <string>NSPrivacyCollectedDataTypePurposeOther</string>
            </array>
            <key>NSPrivacyCollectedDataTypeTracking</key>
            <false />
        </dict>
    </array>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
    </array>
</privacy-manifest> 
© www.soinside.com 2019 - 2024. All rights reserved.