You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Titanium SDK开发的App遭Apple提示缺失API声明,如何解决?

解决Titanium开发App遇到的ITMS-91053隐私清单问题

问题描述

尽管App Store审核已通过,但你可能需要在下次提交审核时修正以下问题。修正完成后,请上传新的二进制文件至App Store Connect。
ITMS-91053: Missing API declaration - 你的App中"APP_NAME"文件的代码引用了一个或多个需要说明使用理由的API,涉及以下API类别:NSPrivacyAccessedAPICategorySystemBootTime。目前无需采取行动,但从2024年5月1日起,上传新App或更新版本时,必须在App的隐私清单中包含NSPrivacyAccessedAPITypes数组,说明这些API的获批使用理由。
ITMS-91053: Missing API declaration - 你的App中"APP_NAME"文件的代码引用了一个或多个需要说明使用理由的API,涉及以下API类别:NSPrivacyAccessedAPICategoryUserDefaults。目前无需采取行动,但从2024年5月1日起,上传新App或更新版本时,必须在App的隐私清单中包含NSPrivacyAccessedAPITypes数组,说明这些API的获批使用理由。

我使用Titanium SDK开发和构建App,网上找到的解决方案都是基于Xcode生成隐私清单,不清楚在Titanium里该怎么操作。

解决方案

针对Titanium项目,你可以手动创建隐私清单文件并配置到项目中,步骤如下:

  1. 创建PrivacyInfo.xcprivacy文件
    在项目的app/platform/ios目录下(如果没有该目录,手动创建)新建一个名为PrivacyInfo.xcprivacy的XML文件,内容示例如下:

    <?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>
            <!-- 处理NSPrivacyAccessedAPICategorySystemBootTime -->
            <dict>
                <key>NSPrivacyAccessedAPIType</key>
                <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
                <key>NSPrivacyAccessedAPITypeReasons</key>
                <array>
                    <!-- 根据你的实际使用场景选择对应的理由代码,例如测量性能选E174.1 -->
                    <string>E174.1</string>
                </array>
            </dict>
            <!-- 处理NSPrivacyAccessedAPICategoryUserDefaults -->
            <dict>
                <key>NSPrivacyAccessedAPIType</key>
                <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
                <key>NSPrivacyAccessedAPITypeReasons</key>
                <array>
                    <!-- 根据实际使用场景选择,例如存储用户偏好选CA92.1 -->
                    <string>CA92.1</string>
                </array>
            </dict>
        </array>
    </dict>
    </plist>
    

    注意:理由代码必须和App实际使用API的场景匹配,要选择符合自身业务的对应代码。

  2. 配置Titanium项目打包文件
    打开项目的tiapp.xml文件,添加以下配置,确保PrivacyInfo.xcprivacy被正确打包到iOS应用的主Bundle中:

    <ios>
        <plist>
            <!-- 保留原有plist配置 -->
        </plist>
        <resources>
            <resource>platform/ios/PrivacyInfo.xcprivacy</resource>
        </resources>
    </ios>
    
  3. 验证并重新构建
    清理Titanium项目的构建缓存,然后重新构建iOS版本。构建完成后,可查看生成的App包内容,确认PrivacyInfo.xcprivacy是否存在于主Bundle目录下。

注意事项

  • 理由代码必须与实际使用场景一致,否则后续提交审核可能被拒绝。
  • 2024年5月1日起,新提交或更新的App必须包含正确的隐私清单,否则无法通过审核。

内容的提问来源于stack exchange,提问作者user3188777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:15:24