michaeldorner / BeeTee

Demo application for Bluetooth device scanning using the iOS private framework "BluetoothManager"
MIT License
212 stars 37 forks source link

No private frameworks with iOS SDK 9.3 #11

Open michaeldorner opened 8 years ago

michaeldorner commented 8 years ago

There is a big problem: With Xcode 7.3 Apple removed all private frameworks from the iOS SDKs, so at the moment BeeTee is not working!

We could embed a previous version of the BluetoothManager.framework, but this is no long-term solution, because then we are not able to use the a current version of it.

Any other ideas?

Unfortunately, due to my current workload I am not able to work on this issue at the moment. Someone else?

SiBorya commented 8 years ago

May I ask anywhere to get the previous version of BluetoothManager.Framework?

wtfaremyinitials commented 8 years ago

Could this be fixed by pulling BluetoothManager.framework off of a device?

n8r0n commented 8 years ago

If you'd be willing to post this as a question on stack overflow, I can give you a detailed answer. Be sure to use the tag 'iphone-privateapi' (as well as 'iOS', of course), and I'll see it. I got it working.

michaeldorner commented 8 years ago

Here you go. :-)

leondobnik commented 8 years ago

Hi guys!

First of all: thanks to all taking time to write down all these great instructions - but just one question. Is this thing still working in iOS10, or Apple blocked execution of such networks completely? On ios 9.3 on iPhone 5 this thing is working, but on iOS 10 and iPhone 6 for instance, it does not work. I have tracked down where the problem might be:

    // ADDED CODE BELOW
    libHandle = dlopen("/System/Library/PrivateFrameworks/BluetoothManager.framework/BluetoothManager", RTLD_NOW);
    BluetoothManager* bm = [MDBluetoothManager bluetoothManagerSharedInstance];

When bluetoothManagerSharedInstance is called in the iOS9 a message "Connecting to BT server appears". On iOS 10 this never happens. The instance of BluetoothManager is successfully created.

michaeldorner commented 8 years ago

Thank you for your investigations. But I believe it won't work for iOS 10 and newer.

n8r0n commented 7 years ago

It's still working for me on iOS 10.1.1. iPhone 7.

An iOS bug that spews biometric data makes it hard to read the console log. I wouldn't assume the lack of the

Connecting to BT server appears

message is meaningful. Log output varies with changes to iOS. I was able to use the project to toggle bluetooth and discover peripherals.

michaeldorner commented 7 years ago

That's great news! Still the same procedure or did you do something different?

n8r0n commented 7 years ago

I didn't change anything. Other than updating to the latest iOS SDK and rebuild.

michaeldorner commented 7 years ago

In the new version released today I switched to dynamic loading. So

cybertk commented 7 years ago

The latest code does not work on iOS 10.1.1

michaeldorner commented 7 years ago
  1. Please be more precise @cybertk: What is not working?
  2. I developed on iOS 10.1.1, so it does work.
cybertk commented 7 years ago

With the code snippet in README,

beeTee.enableBluetooth() fails to lighten the bluetooth logo in Control Center.

But while I toggle the bluetooth manually, I can get the notification like PowerChanged and ConnectabilityChanged

michaeldorner commented 7 years ago

Thanks for reporting. I think I already know why. I will fix it these days. Can you please open a new issue for that problem?