应用程序的Info.plist文件应包含NSBluetoothAlwaysUsageDescription密钥,而该密钥位于plist文件中

Mik*_*Sli 18 info.plist ios react-native

首先,我想指出的是,我已经在此处查看了Stack Overflow的帖子,并添加了iCoder和Deepak提到的内容并不能解决我的问题。

我正在使用React-Native开发我的应用程序,包括我发现的这个React-Native-Permissions包。他们的文档指出,我应该添加其程序包启用的所有权限,例如Location,Camera和其中提到的所有其他权限。完成此操作后,我可以将我的应用程序上载到商店并提交以供审核。

今天我到办公室,看到苹果提供了一些反馈。因此,在完成反馈后,我想再次重新上传到商店(如我应该做的那样增加内部版本号)。

现在,当我在info.plist中像这样显示消息时,我会继续在上面提到的标题中得到消息

<key>NSBluetoothAlwaysUsageDescription</key>
<string>Our app does not request this permission or utilize this functionality but it is included in our info.plist since our app utilizes the react-native-permissions library, which references this permission in its code.</string>
Run Code Online (Sandbox Code Playgroud)

编辑:

我希望在下面澄清一些内容,以便找到我所面临的问题的答案。标题中给出的错误是在上载到商店后直接发生的(因此,我猜测实际的错误是由系统自动检查的)。

下面的答案不会帮助我解决问题,因为更具描述性的字符串不会由自动系统检查来检查。而且我已成功将此字符串用于info.plist中的其他元素。在此之后,我发现了证据,表明人们已经使用此策略成功将其应用程序提交到应用程序商店。如该链接后面的Gradner注释所示,React Native Permission问题266

lel*_*ood 12

如果您不使用蓝牙,

只需将其添加到您的Info.plist文件中:

<key>NSBluetoothAlwaysUsageDescription</key>
<string>Our app does not request this permission or utilize this functionality but it is included in our info.plist since our app utilizes the react-native-permissions library, which references this permission in its code.</string>
Run Code Online (Sandbox Code Playgroud)

苹果不推荐使用NSBluetoothPeripheralUsageDescription属性,而推荐使用NSBluetoothAlwaysUsageDescription。

在此处查看详细信息: 链接到Apple文档

如果您使用的是蓝牙,

只需将其添加到您的Info.plist文件中:

<key>NSBluetoothAlwaysUsageDescription</key>
<string>Our app uses bluetooth to find, connect and transfer data between different devices</string>
Run Code Online (Sandbox Code Playgroud)


小智 6

我找到了根本原因

我们在 plist 中有以下两个默认选项来输入蓝牙使用情况。

1.Privacy - 蓝牙外设使用说明 2.Privacy - 蓝牙始终使用说明

但是 Xcode 将此选项保存在源代码中,如下所示

1.NSBluetoothPeripheralUsageDescription代替隐私——蓝牙外设使用说明

2.隐私 - 蓝牙始终使用说明而不是隐私 - 蓝牙始终使用说明

所以现在的重点是 NSBluetoothPeripheralUsageDescription 已被弃用,它期待密钥“NSBluetoothAlwaysUsageDescription”

这是解决方案,在 Xcode 中打开 plist 文件作为源代码并复制粘贴以下键值对

键:NSBluetoothAlwaysUsageDescription 值:此应用程序需要蓝牙才能 bla bla bla。


rmp*_*251 5

有人发布了对我有帮助的答案,但随后将其删除!解释一下答案:

将隐私密钥添加到plist而不知道是什么导致了Apple的错误不是解决此问题的最佳方法。

就我而言,当我进行grep搜索时,发现CoreBluetooth.framework在我的内部有一些引用project.pbxproj。我删除了参考,构建和TestFlight上传成功!

要搜索,请使用以下命令:

grep -r -a CoreBluetooth.framework ProjectFolder
Run Code Online (Sandbox Code Playgroud)

  • 我运行了“grep -r -a CoreBluetooth.framework ./*”,但什么也没找到。仅使用 CoreBluetooth.framework 才会触发此警告,还是我必须寻找其他短语? (2认同)