IOBluetooth macOS 11.3 to 12.0 API Differences

Bluetooth.h
Added kBluetoothRoleBecomeCentral
Added kBluetoothRoleRemainPeripheral
Added kBluetoothHCICommandSetConnectionlessPeripheralBroadcast
Added kBluetoothHCICommandSetConnectionlessPeripheralBroadcastReceive
Added kBluetoothHCICommandSetConnectionlessPeripheralBroadcastData
Added kBluetoothLEFeaturePeripheralInitiatedFeaturesExchange
Added kBluetoothFeatureAFHCapablePeripheral
Added kBluetoothFeatureAFHClassificationPeripheral
Added kBluetoothHCICentralRole
Added kBluetoothHCIPeripheralRole
Added kEnableCentralPeripheralSwitch
Added BluetoothLEScanFilterSafelist
Modified kBluetoothRoleBecomeMaster
Availability
FromAvailable
ToDeprecated

Modified kBluetoothRoleRemainSlave
Availability
FromAvailable
ToDeprecated

Modified kBluetoothHCICommandSetConnectionlessSlaveBroadcast
Availability
FromAvailable
ToDeprecated

Modified kBluetoothHCICommandSetConnectionlessSlaveBroadcastReceive
Availability
FromAvailable
ToDeprecated

Modified kBluetoothHCICommandSetConnectionlessSlaveBroadcastData
Availability
FromAvailable
ToDeprecated

Modified kBluetoothLEFeatureSlaveInitiatedFeaturesExchange
Availability
FromAvailable
ToDeprecated

Modified kBluetoothFeatureAFHCapableSlave
Availability
FromAvailable
ToDeprecated

Modified kBluetoothFeatureAFHClassificationSlave
Availability
FromAvailable
ToDeprecated

Modified kBluetoothHCIMasterRole
Availability
FromAvailable
ToDeprecated

Modified kBluetoothHCISlaveRole
Availability
FromAvailable
ToDeprecated

Modified kEnableMasterSlaveSwitch
Availability
FromAvailable
ToDeprecated

Modified BluetoothLEScanFilterWhitelist
Availability
FromAvailable
ToDeprecated

BluetoothAssignedNumbers.h
Added kBluetoothHCIExtendedInquiryResponseDataTypePeripheralConnectionIntervalRange
Modified kBluetoothHCIExtendedInquiryResponseDataTypeSlaveConnectionIntervalRange
Availability
FromAvailable
ToDeprecated

IOBluetoothUserLib.h
Removed IOBluetoothGetObjectIDFromArguments()
Removed IOBluetoothRegisterForDeviceConnectNotifications()
Removed IOBluetoothDeviceRegisterForDisconnectNotification()
Removed IOBluetoothRegisterForL2CAPChannelOpenNotifications()
Removed IOBluetoothRegisterForFilteredL2CAPChannelOpenNotifications()
Removed IOBluetoothRegisterForRFCOMMChannelOpenNotifications()
Removed IOBluetoothRegisterForFilteredRFCOMMChannelOpenNotifications()
Removed IOBluetoothRFCOMMChannelRegisterForChannelCloseNotification()
Added IOBluetoothAddSCOAudioDevice()
Added IOBluetoothRemoveSCOAudioDevice()
OBEX.h
Added OBEXSessionDelete()
Added OBEXSessionHasOpenOBEXConnection()
Added OBEXSessionGetMaxPacketLength()
Added OBEXSessionGetAvailableCommandPayloadLength()
Added OBEXSessionGetAvailableCommandResponsePayloadLength()
Added OBEXSessionConnect()
Added OBEXSessionDisconnect()
Added OBEXSessionPut()
Added OBEXSessionGet()
Added OBEXSessionAbort()
Added OBEXSessionSetPath()
Added OBEXSessionConnectResponse()
Added OBEXSessionDisconnectResponse()
Added OBEXSessionGetResponse()
Added OBEXSessionPutResponse()
Added OBEXSessionAbortResponse()
Added OBEXSessionSetPathResponse()
Added OBEXSessionSetServerCallback()
Added OBEXCreateVCard()
Added OBEXCreateVEvent()
OBEXBluetooth.h
Added IOBluetoothOBEXSessionCreateWithIOBluetoothSDPServiceRecordRef()
Added IOBluetoothOBEXSessionCreateWithIOBluetoothDeviceRefAndChannelNumber()
Added IOBluetoothOBEXSessionOpenTransportConnection()
objc/IOBluetoothDevice.h
Added +[IOBluetoothDevice withAddress:]
Added +[IOBluetoothDevice withDeviceRef:]
Added -[IOBluetoothDevice getDeviceRef]
Added -[IOBluetoothDevice openRFCOMMChannel:channel:]
Added -[IOBluetoothDevice getClassOfDevice]
Added -[IOBluetoothDevice getServiceClassMajor]
Added -[IOBluetoothDevice getDeviceClassMajor]
Added -[IOBluetoothDevice getDeviceClassMinor]
Added -[IOBluetoothDevice getName]
Added -[IOBluetoothDevice getNameOrAddress]
Added -[IOBluetoothDevice getLastNameUpdate]
Added -[IOBluetoothDevice getAddressString]
Added -[IOBluetoothDevice getConnectionHandle]
Added -[IOBluetoothDevice getServices]
Modified IOBluetoothDevice.classOfDevice
Declaration
From@property (readonly) BluetoothClassOfDevice classOfDevice
To@property (nonatomic, readonly) BluetoothClassOfDevice classOfDevice

Modified IOBluetoothDevice.lastNameUpdate
Declaration
From@property (readonly, retain) NSDate *lastNameUpdate
To@property (readonly, copy) NSDate *lastNameUpdate

Modified IOBluetoothDevice.services
Declaration
From@property (readonly, retain) NSArray *services
To@property (readonly) NSArray *services

objc/IOBluetoothDeviceInquiry.h
Modified IOBluetoothDeviceInquiry.delegate
Declaration
From@property (assign) id delegate
To@property (assign) id delegate

Modified IOBluetoothDeviceInquiryDelegate
Protocols
Fromnone
ToNSObject

objc/IOBluetoothDevicePair.h
Modified IOBluetoothDevicePair.delegate
Declaration
From@property (assign) id delegate
To@property (weak) id delegate

objc/IOBluetoothHandsFree.h
Added -[IOBluetoothDevice handsFreeAudioGatewayDriverID]
Added -[IOBluetoothDevice handsFreeDeviceDriverID]
objc/IOBluetoothL2CAPChannel.h
Added -[IOBluetoothL2CAPChannel getOutgoingMTU]
Added -[IOBluetoothL2CAPChannel getIncomingMTU]
Added -[IOBluetoothL2CAPChannel getDevice]
Added -[IOBluetoothL2CAPChannel getObjectID]
Added -[IOBluetoothL2CAPChannel getPSM]
Added -[IOBluetoothL2CAPChannel getLocalChannelID]
Added -[IOBluetoothL2CAPChannel getRemoteChannelID]
Added NSObject (IOBluetoothL2CAPChannelDeprecated)
Added -[NSObject registerIncomingDataListener:refCon:]
Added -[NSObject write:length:]
Added +[NSObject withL2CAPChannelRef:]
Added -[NSObject getL2CAPChannelRef]
objc/IOBluetoothOBEXSession.h
Modified -[IOBluetoothOBEXSession setOpenTransportConnectionAsyncSelector:target:refCon:]
Declaration
From- (void)setOpenTransportConnectionAsyncSelector:(SEL)inSelector target:(id)inSelectorTarget refCon:(id)inUserRefCon
To- (void)setOpenTransportConnectionAsyncSelector:(SEL)inSelector target:(id)inSelectorTarget refCon:(void *)inUserRefCon

objc/IOBluetoothRFCOMMChannel.h
Added -[IOBluetoothRFCOMMChannel write:length:sleep:]
Added -[IOBluetoothRFCOMMChannel writeSimple:length:sleep:bytesSent:]
Added -[IOBluetoothRFCOMMChannelDelegate rfcommChannelWriteComplete:refcon:status:bytesWritten:]
Modified IOBluetoothRFCOMMChannel
Protocols
FromNSPortDelegate
ToNSPortDelegate, NSStreamDelegate

objc/IOBluetoothSDPServiceRecord.h
Added -[IOBluetoothSDPServiceRecord getDevice]
Added -[IOBluetoothSDPServiceRecord getAttributes]
objc/IOBluetoothSDPUUID.h
Added +[IOBluetoothSDPUUID withSDPUUIDRef:]
Added -[IOBluetoothSDPUUID getSDPUUIDRef]
Modified IOBluetoothSDPUUID
Protocols
FromNSCoding, NSSecureCoding
Tonone

objc/OBEXSession.h
Modified -[OBEXSession setEventSelector:target:refCon:]
Declaration
From- (void)setEventSelector:(SEL)inEventSelector target:(id)inEventSelectorTarget refCon:(id)inUserRefCon
To- (void)setEventSelector:(SEL)inEventSelector target:(id)inEventSelectorTarget refCon:(void *)inUserRefCon