ios - NSBluetoothAlwaysUsageDescription necessaria, ma il bluetooth non viene utilizzato




xcode permissions (5)

Apparentemente Apple ha apportato alcune modifiche alle politiche. Altrimenti, è richiesto chiedere flag non utilizzati. È molto preoccupante. Ho anche rifiutato le mie app per questi motivi, anche se le versioni precedenti funzionano senza questo.

Nella mia app iOS con il nuovo Xcode 11 GM Seed 2 dopo la distribuzione, apple ha restituito un errore: ITMS-90683: stringa di scopo mancante in Info.plist con NSBluetoothAlwaysUsageDescription.

https://developer.apple.com/documentation/bundleresources/information_property_list/nsbluetoothalwaysusagedescription?language=objc letti.

Il problema è che non utilizzo il bluetooth nella mia app. O forse non lo so. Come posso sapere perché è necessario questo scopo di autorizzazione?

Non sto usando CoreBluetooth.framework


Apri Info.plist e aggiungi una NSBluetoothAlwaysUsageDescription . Puoi farlo nell'editor aggiungendo un elemento pubblicitario come questo:

Oppure puoi fare clic con il tasto destro del mouse su Info.plist e Apri come -> Codice sorgente e incollare le due righe appropriate come xml:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
    ....
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>We use Bluetooth to connect to the MantisX hardware device.</string>
    ....
</dict>
</plist>

Ho provato la risposta di Maurice, con e senza estensione .framework , ma non ho trovato alcun riferimento a CoreBluetooth nel mio progetto. In precedenza avevo anche aggiunto il file Info.plist : " Privacy - Bluetooth Peripheral Usage Description ", con valore stringa: "L' App would like to use your bluetooth for communication purposes" ". Non ha funzionato neanche.
Alla fine, dopo aver visto la risposta di Chase Roberts, ho aggiunto: " NSBluetoothAlwaysUsageDescription ", con valore String: "L' App would like to use your bluetooth for communication purposes ". Dopodiché questo errore non è stato più visualizzato per la mia app durante la pubblicazione.

Nota: in caso di errore: ITMS-90683 , per la mia app è stato detto che la consegna è ITMS-90683 buon fine, ma posso farlo se desidero apportare modifiche al problema dichiarato.


Se la tua app ha una destinazione di distribuzione precedente a iOS 13, aggiungi la chiave NSBluetoothPeripheralUsageDescription al file Elenco proprietà informazioni dell'app oltre alla chiave NSBluetoothAlwaysUsageDescription poiché una o più terze parti del tuo progetto utilizzano la funzionalità bluetooth.


Una libreria / framework / pod di terze parti nella tua app potrebbe utilizzare CoreBluetooth. Basta aggiungere NSBluetoothAlwaysUsageDescription nel tuo Info.plist, l'errore sparirà.







xcode11