it-swarm.com.de

CoreBluetooth XPC-Verbindung Ungültig, wenn ViewController abgewiesen wird

Nachdem ich die Verbindung zu meinen Bluetooth-Geräten beendet habe und festgestellt habe, dass sie im didDisconnectPeripheral-Delegaten getrennt wurden, versuche ich, meinen Viewcontroller zu schließen.

In diesem Fall sehe ich die Meldung: "[CoreBlueooth] XPC-Verbindung ungültig"

Gibt es etwas konkretes, das mit Bluetooth aufgeräumt werden muss, bevor der Viewcontroller abgewiesen wird?

15
Lou_257

Ich habe CBCentralManager in ein Singleton gestellt und die Fehlermeldung wurde behoben.

(CBCentralManager wird nicht freigegeben)

7
oOEric

Ich habe folgende Nachricht erhalten:

[CoreBlueooth] XPC-Verbindung ungültig

Und ich konnte keine BLE-Geräte mit einer recht einfachen Implementierung der folgenden Elemente scannen:

NSObject<CBCentralManagerDelegate, CBPeripheralDelegate>

Die Lösung für mich war, einen Wert in meinem Info.plist für Privacy - Bluetooth Peripheral Usage Description hinzuzufügen NSBluetoothPeripheralUsageDescription, der beschreibt, was ich mit Bluetooth-Peripheriegeräten mache.

Sieht in info.plist so aus:

<key>NSBluetoothPeripheralUsageDescription</key>
<string>Play with BLE Compatible devices<string>

Schreib etwas genaueres hier;)

6
GabLeRoux

Die CBCentralManager-Referenz sollte eine starke Referenz auf die Klasse als Member-Variable sein. Es kann nicht als lokale Referenz arbeiten. 

3

versuche dies:

CBPeripheral *mConnectedPeripheral;

-(void)viewDidDisappear:(BOOL)animated{
    [_centralManager cancelPeripheralConnection:mConnectedPeripheral];
}
1
Garima Paliwal

In meinem Fall habe ich die App-Sandbox deaktiviert und es hat funktioniert

0
Chulseung

Ok, ich bin auf dieses Problem gestoßen und nachdem ich versucht hatte, den notwendigen Schlüssel zur Info.plist hinzuzufügen, funktionierte es immer noch und ich hatte zu diesem Zeitpunkt keine Ansicht (es war in der AppDelegate) .. __ Wenn es immer noch don Versuchen Sie Folgendes:.

Ich habe verwendet: (in Swift)

_ = BluetoothMngr.init(config: bleConfig)

Das Problem hierbei war, dass die Variable, die das Bluetooth verwaltet, nicht beibehalten wurde. Wenn Sie also BLE-Callback hinzufügen, endete diese in einer leeren Klasse. Erstellen Sie daher einfach eine globale Variable, in der sie beibehalten wird (deshalb funktioniert sie mit Singleton und zeigt diese an.) werden so beibehalten. 

self.bleMngr = BluetoothMngr.init(config: bleConfig)

Hat für mich gearbeitet, hoffe es wird helfen.

0
Rémy Blanc