BeeTee icon indicating copy to clipboard operation
BeeTee copied to clipboard

No private frameworks with iOS SDK 9.3

Open michaeldorner opened this issue 9 years ago • 14 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?

michaeldorner avatar Apr 27 '16 07:04 michaeldorner

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

SiBorya avatar Apr 29 '16 05:04 SiBorya

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

wtfaremyinitials avatar May 02 '16 14:05 wtfaremyinitials

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.

n8r0n avatar May 03 '16 08:05 n8r0n

Here you go. :-)

michaeldorner avatar May 03 '16 09:05 michaeldorner

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.

leondobnik avatar Oct 25 '16 06:10 leondobnik

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

michaeldorner avatar Oct 25 '16 06:10 michaeldorner

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.

n8r0n avatar Nov 23 '16 09:11 n8r0n

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

michaeldorner avatar Nov 23 '16 09:11 michaeldorner

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

n8r0n avatar Nov 23 '16 09:11 n8r0n

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.

michaeldorner avatar Dec 24 '16 14:12 michaeldorner

The latest code does not work on iOS 10.1.1

cybertk avatar Dec 27 '16 09:12 cybertk

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

michaeldorner avatar Dec 27 '16 10:12 michaeldorner

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

cybertk avatar Jan 03 '17 07:01 cybertk

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?

michaeldorner avatar Jan 03 '17 09:01 michaeldorner