我正在尝试将我的cordova应用放在iOS应用商店中。我正在使用cordova cli8。它不断被拒绝,并说以下错误:
App Store Connect亲爱的开发人员,
我们确定了您的应用最近交付的一个或多个问题, “ MyApp” 4.19.2(4.19.2.4)。请更正 关注以下问题,然后重新上传。
ITMS-90683:Info.plist中缺少目的字符串-您的应用代码 引用一个或多个访问敏感用户数据的API。该应用程序的 Info.plist文件应包含NSBluetoothAlwaysUsageDescription密钥 面向用户的目的字符串清晰,完整地解释 为什么您的应用需要数据。从2019年春季开始,所有应用都已提交 到App Store要求访问用户数据包括 目的字符串。如果您使用的是外部库或SDK,则它们可能 需要目的字符串的参考API。虽然您的应用可能没有 使用这些API,仍然需要一个目的字符串。您可以联系 库或SDK的开发人员,并要求他们发布版本 他们的代码不包含API。学到更多 (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。
最诚挚的问候,
App Store团队
这很奇怪,因为我可以在Info.plist文件和config.xml文件中看到该字符串。
我不知道为什么它一直被拒绝。我的应用程序本身并没有使用蓝牙,只是其中有一些cordova插件包含其中。
答案 0 :(得分:1)
最初对我有用的一件事是在config.xml中设置诊断插件的值,并更新platform / ios文件夹下的ios.json文件以删除对蓝牙的所有引用。我还读到您需要更新frameworks.json,但是如果我删除了它,构建将失败。我曾考虑将值更改为0,但是当我尝试将其与其他更改一起使用时,它工作了一段时间。
config.xml更改(在平台节点之外):
<preference name="cordova.plugins.diagnostic.modules" value="LOCATION WIFI CAMERA NOTIFICATIONS MICROPHONE CONTACTS CALENDAR REMINDERS MOTION NFC EXTERNAL_STORAGE" />
并删除ios.json中所有对蓝牙的引用。
答案 1 :(得分:0)
您需要在NSBluetoothAlwaysUsageDescription中指定使用蓝牙的原因和地点以及位置。然后重新提交,他们会接受。
答案 2 :(得分:0)
这可能对某些在应用程序内使用 Zoom iOS SDK 的人有用
当我上传二进制文件时,Xcode表示该应用程序已成功上传...但是我收到了来自App Store Connect的电子邮件,内容涉及两个问题:
第一个问题:需要NSBluetoothPeripheralUsageDescription
第二秒:可以放松NSBluetoothAlwaysUsageDescription
我已经提供了第一期的目的描述。这次可以通过TestFlight使用该应用进行测试。
因此,最好在info.plist
中提供有关以下两个问题的说明。
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Some useful description: </string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Some useful description: </string>