michaeldorner / BeeTee

Demo application for Bluetooth device scanning using the iOS private framework "BluetoothManager"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

No private frameworks with iOS SDK 9.3

michaeldorner opened this issue · comments

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?

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

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

commented

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.

Here you go. :-)

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.

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

commented

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.

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

commented

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

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

  • no header copying
  • more stability over all iOS versions (including iOS 10 (tested))
  • cookies for everyone.

The latest code does not work on iOS 10.1.1

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

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

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?