NSBluetoothAlwaysUsageDescription 键丢失(虽然存在)
NSBluetoothAlwaysUsageDescription key missing (though present)
在使用 Swift 编写的 iOS 应用程序时,我遇到了 Info.plist 的问题。这是问题所在:
项目中包含的唯一 Info.plist 文件有一个 NSBluetoothAlwaysUsageDescription
键。
供参考,这里是Info.plist的相关部分:
<key>NSBluetoothPeripheralUsageDescription</key>
<string>The app uses bluetooth to transfer data to a neighbouring device.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>The app may frequently use bluetooth to transfer data to peers.</string>
但是当我 运行 我的 iPhone 上的应用程序时,我在 Xcode 调试控制台中看到这个错误:
2021-06-06 11:20:21.235717+0900 TheApp[5010:1066154] [access] This app has crashed because
it attempted to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSBluetoothAlwaysUsageDescription key
with a string value explaining to the user how the app uses this data.
这里已经有矛盾我就不解释了
为了进一步调查,我做了如下操作:
Product
-> Archive
-> Distribute App
-> Development: Distribute to members fo your team.
-> Export
在那里,我将名称 TheApp.ipa 更改为 TheApp.zip 并解压。
然后在 Payload 文件夹中,在 TheApp.app 我做的是:
Show Package Contents
我看到一个 Info.plist 项目,我点击它查看。
并且由于某些未知原因 NSBluetoothAlwaysUsageDescription
密钥确实丢失了。
这最后一点可以解释我之前收到的错误消息,但我仍然不知道为什么密钥消失了。
非常欢迎任何能阐明这个问题的人。
我终于找到了解决办法。
在查看和尝试各种东西时,我发现了 Info.plist 的副本。
MyApp copy-Info.plist
这个幽灵 Info.plist 包含错误的内容并查看它,这解释了我所做的所有奇怪的观察。
出于某种原因,构建过程使用的是 ghost 文件而不是我的。而实际的 Info.plist 被忽略了。
在使用 Swift 编写的 iOS 应用程序时,我遇到了 Info.plist 的问题。这是问题所在:
项目中包含的唯一 Info.plist 文件有一个 NSBluetoothAlwaysUsageDescription
键。
供参考,这里是Info.plist的相关部分:
<key>NSBluetoothPeripheralUsageDescription</key>
<string>The app uses bluetooth to transfer data to a neighbouring device.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>The app may frequently use bluetooth to transfer data to peers.</string>
但是当我 运行 我的 iPhone 上的应用程序时,我在 Xcode 调试控制台中看到这个错误:
2021-06-06 11:20:21.235717+0900 TheApp[5010:1066154] [access] This app has crashed because
it attempted to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSBluetoothAlwaysUsageDescription key
with a string value explaining to the user how the app uses this data.
这里已经有矛盾我就不解释了
为了进一步调查,我做了如下操作:
Product
-> Archive
-> Distribute App
-> Development: Distribute to members fo your team.
-> Export
在那里,我将名称 TheApp.ipa 更改为 TheApp.zip 并解压。 然后在 Payload 文件夹中,在 TheApp.app 我做的是:
Show Package Contents
我看到一个 Info.plist 项目,我点击它查看。
并且由于某些未知原因 NSBluetoothAlwaysUsageDescription
密钥确实丢失了。
这最后一点可以解释我之前收到的错误消息,但我仍然不知道为什么密钥消失了。
非常欢迎任何能阐明这个问题的人。
我终于找到了解决办法。
在查看和尝试各种东西时,我发现了 Info.plist 的副本。
MyApp copy-Info.plist
这个幽灵 Info.plist 包含错误的内容并查看它,这解释了我所做的所有奇怪的观察。
出于某种原因,构建过程使用的是 ghost 文件而不是我的。而实际的 Info.plist 被忽略了。