The app's Info.plist file should contain a NSBluetoothAlwaysUsageDescription key while the key is in the plist file

后端 未结 6 2010
忘掉有多难
忘掉有多难 2021-01-03 19:51

First of all, I would like to state that I already looked at Stack Overflow post here and adding either the one mentioned by either iCoder & Deepak didn\'t solve the pro

相关标签:
6条回答
  • 2021-01-03 20:10

    Someone posted an answer that helped me, but then deleted it! To paraphrase the answer:

    Adding the privacy keys to the plist without knowing what is triggering the error from Apple is not the best way to solve this.

    In my case, when I did a grep search I found that there is some reference to CoreBluetooth.framework inside my project.pbxproj. I removed the reference and the build and TestFlight upload succeeded!

    To search use the following command:

    grep -r -a CoreBluetooth.framework ProjectFolder
    
    0 讨论(0)
  • 2021-01-03 20:18

    I was able to successfully remove the Bluetooth permission alert when the app opens. In my case the problem was with the library "react-native-connectivity-status". I downgraded the library from version "1.5.2" to "1.5.1".

    Here are the steps:

    Change

    "react-native-connectivity-status": "^1.5.1",
    

    To

    "react-native-connectivity-status": "1.5.1",
    

    Then ran following commands:

    rm -rf node_modules/
    rm package-lock.json
    npm i
    cd ios/
    rm -rf Pods/
    pod install
    
    0 讨论(0)
  • 2021-01-03 20:19

    If you are not using Bluetooth,

    just add this to your Info.plist file:

    <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>
    

    Apple deprecated NSBluetoothPeripheralUsageDescription property in favor of NSBluetoothAlwaysUsageDescription.

    See details here: link to Apple docs

    If you are using bluetooth,

    just add this to your Info.plist file:

    <key>NSBluetoothAlwaysUsageDescription</key>
    <string>Our app uses bluetooth to find, connect and transfer data between different devices</string>
    
    0 讨论(0)
  • 2021-01-03 20:24

    I got the root cause

    We have below two default options in plist to enter the bluetooth usage.

    1.Privacy - Bluetooth Peripheral Usage Description 2.Privacy - Bluetooth Always Usage Description

    But Xcode save this option in the source code like the below

    1.NSBluetoothPeripheralUsageDescription instead of Privacy - Bluetooth Peripheral Usage Description

    2.Privacy - Bluetooth Always Usage Description instead of Privacy - Bluetooth Always Usage Description

    So now the point is NSBluetoothPeripheralUsageDescription is deprecated and its expecting the key "NSBluetoothAlwaysUsageDescription"

    Here is the solution, open the plist file as source code in Xcode and copy-paste the below key-value pair

    Key: NSBluetoothAlwaysUsageDescription Value: This application requires bluetooth in order to bla bla bla.

    0 讨论(0)
  • 2021-01-03 20:25

    I can't figure out why the first time it wasn't working but when I got into the office today I saw the comment posted by Sumeet.Jain that suggested I should replace the

    NSBluetoothPeripheralUsageDescription key with the NSBluetoothAlwaysUsageDescription key

    This would actually result in an error that would say missing NSBluetoothPeripheralUsageDescription as we might expect it to. So then I re-added the NSBluetoothPeripheralUsageDescription to my info.plist and now I was finally able to upload my app to the store. Thanks for everyone that helped me.

    p.s. The only thing I can think of I did differently compared to yesterday is that I now added the key using Xcode instead of just editing the info.plist file in my editor I use for react-native. Hopefully this helps others as it helped me

    0 讨论(0)
  • 2021-01-03 20:31

    Well, I fixed this issues.

    if your app is using bluetooth so you must add this into info.plist.

    NSBluetoothAlwaysUsageDescription

    Our app uses bluetooth to ...do something...

    if your app doesn't need bluetooth but it's prompted with unexpectedly.

    then:

    open Xcode : go to remove CoreBluetooth.framework:

    1. -> yourproject -> frameworks -> CoreBluetooth.framework
    2. -> yourproject -> Build Phases -> Type Search to find "Bluetooth" (remove all related "Bluetooth")

    It's works for me! Hope will help you.

    0 讨论(0)
提交回复
热议问题