CoreBluetooth and MFi - ios

My company creates hardware accessories that are approved through MFi. With iOS 5, Apple has finally made Bluetooth open to BLE devices without using the ExternalAccessory framework. 
I have been unable to find any information on MFi about using CoreBluetooth. 
My question is: Can accessories and apps be created using CB but not use the an authentication chip and still be able to have Made for iPod / iPhone / iPad badges? 
As far as I can tell the certification process has not changed to accommodate CB-only apps and accessories. Any information is appreciated. 
Obviously I'm not expecting people to post MFi information that violates the agreement. I'm simply looking for a general answer and ideally a link or document name to an MFi document that is eluding me. 

This is not an authoritative answer but as far as I know, you can only use the badge if Apple has certified your device, which can only happen if you're in the MFi program. Apple will not allow you into the MFi program if your device only uses CoreBluetooth. And you can only use the authentication chip if you're in MFi.
So I think that no, you cannot use the badge with any arbitrary Bluetooth product. You can only use it with MFi certified products.

CoreBluetooth is only for BTLE. MFI is for Classic Bluetooth apps.

Related

Would I be able to pair my iOS device with a custom bluetooth device if it gets MFI license?

The plan is to have a custom built Bluetooth device, which is not part of the standard bluetooth profiles (https://support.apple.com/en-us/HT204387), and also we can't go the BLE way (not my decision) and pair it with either an android or an iOS phone. It works OK for android of course, but cannot be connected to from an iOS phone, due to restrictions of Apple.
I understand we should enroll to the MFI program and have a license for our device so an iphone can be paired with it and a connection can be established. My concern is that how can I be sure that it will work as there seems to be no opportunity to try it without enrollment to MFI program.
Any help would be appreciated as I'm quite a rookie in this topic. Thanks a lot.
You must apply for MFi program just to get access to the Bluetooth APIs that you need. There is no other way without bypassing Apple's legal requirements.

To Communicate with a device over bluetooth which profile I have to use

I want to send/receive data to/from iOS app with an accessory over bluetooth. So which one bluetooth profile I have to use to from "MAP, PAN, HID", in accessory and how to use that in iOS app???
Thanks in advance.
#Sebastian you are right. You can use BT "classic" profiles such as "MAP, PAN, HID", but you would need to enroll MFI program: mfi program, and your accessory would need to include a MFI chip.
You can also use BTLE. It depends on the data you need to share. No MFI chip is needed. You have some info about iOS BTLE here: Core Bluetooth
iOS didn't implemented protocols that allow to communicate to other non-iOS devices.
There will not be any chance for implementing this sooner. Because Apple primarily focusing on the security.

Cost of Developing Bluetooth 4.0 BLE applications for iOS or OSX?

I have HW applications that uses BLE i.e. Bluetooth 4.0. I would like to get it working in Apple products such as iOS or OSX. My friend said that earlier developers had to be pay at least some 20k USD + margin of profits to get their hardware device accepted by Apple. The services have online frontend and specific hardware that are supposed be connected via BLE to phones/laptops.
What is the cost currently to develop BLE services for Apple?
BLE devices do not require Apple's MFi Program certification (which is apparently $20k+). Your only costs would be standard iOS Developer Program ($100) and the cost of developing the actual app to communicate with your BLE device.
From Apple's MFi FAQ:
I want to develop an accessory that communicates with an Apple device
using only Bluetooth Low Energy. Do I need to join the MFi Program?
No. Accessories which connect to an Apple device using only Bluetooth
Low Energy/BTLE/Bluetooth 4.0 or standard Bluetooth profiles supported
by iOS are not part of the MFi Program.

Connecting to a Bluetooth device from iOS, no MFi

The vibe I'm getting from Stackoverflow and the internet at large is that unless I'm using an LE device, any Bluetooth device I make for an iOS app must be MFi certified.
However, on the MFi FAQ page, I found this line:
...developers of accessories that rely solely on standard technology
(e.g., Bluetooth Low Energy or standard Bluetooth profiles) do not
need to join the MFi Program.
My device will be able to use the standard Bluetooth profile File Transfer Protocol (FTP).
Now this sounds like some conflicting advice to me, or perhaps I'm just not understanding correctly. So, having provided the above evidence, I'm just going to ask outright: Can I write and publish an iOS app that connects to a proprietary Bluetooth device using the standard Bluetooth profile FTP without certifying my device as MFi? And if so, what details, caveats, etc do I need to know?
The new Bluetooth 4.0 Low Energy (hereafter BLE 4.0) specification which is implemented in Apple's latest iOS devices does allow one to create app-specific profiles and connect to BLE 4.0 devices without jailbreaking, using an approved Bluetooth 2.1 profile, or becoming part of Apple'd MFI program and using the previously required MFI cryptographic chips.
In other words with the proper BLE 4.0 compatible bluetooth radios you can create wireless devices that connect to iOS apps without having the device pre-approved by Apple. However, you must write a custom app for the device, and Apple still holds the ability to reject that app if they want to. So they still control this to a great degree. This is essentially Apple's answer to the Android ADK, while not fully relinquishing the ability to shut down apps and devices they don't like.
Your app must include specific XML schema for your app's bluetooth profile, and use CoreBluetoothFramework APIs, so it's very obvious to Apple during the app approval process that your app connects to a device. If your app does not work without the device present, then it's likely to be rejected if you are not part of the MFI program, as Apple cannot test the app without your device. The apps that appear to be successful in passing this test use the device as an accessory to app functionality, rather than a requirement. For instance an exercise app might connect to a BLE 4.0 heart rate monitor, but the app doesn't depend on it.
Some apps seem to be getting around this by displaying simulated, or online information in place of the device information when no device is present. Thus the app can be tested without the device, and functionally works when the device is present.
You can find out some successful efforts online:
http://blog.makezine.com/2012/03/19/bluetooth-4-0-from-arduino-to-iphone-no-jailbreaking-no-mfi/
BlueGiga in particular has been pushing their devices specifically for this use, so there are probably forums and support for this elsewhere.
Keep in mind that the devices that currently support BLE 4.0 are limited, and currently only include
iPhone 4S and later iPhones
recent MacBook Air, Mac Mini
iPad (3rd generation and later, and iPad mini)
Macbook Pro Retina
There may be other Apple devices that support this standard, it's something Apple is advertising openly on each product's technical specifications page so it's easy to find for current products.
That line is referring to standard profiles supported natively by ios devices, such as HFP or A2DP. If you build a headset device that does HFP, the iphone will be able to connect to it and route your call to the headset without the headset being part of MFi.
If you want to write an app that does other things with bluetooth, inlcuding FTP, you would have to use MFi.

Existing bluetooth device and Apple MFI

I am developing an App which needs to connect to a bluetooth device. I dont want to deploy this app in the app store. I only need this for personal use. Is there any way to connect to this bluetooth device (which is old as hell and definitely not MFI certified). In the FAQ of the MFI program (http://mfi.apple.com/faqs) it says that it is possible with third party solutions. Does anyone know something about that? I havent found any products which builds a bridge between the iPhone and the bluetooth device.
Furthermore the faq says:
"app developers and developers of accessories that rely solely on standard technology (e.g., Bluetooth Low Energy or standard Bluetooth profiles) do not need to join the MFi Program."
My bluetooth device uses a standard bluetooth profile, but i can't connect to it.
If your app is not going to app store, you can try using the private framework called BlueToothManager. I haven't worked with it but it can help you.
The MFI compatible devices are registered with Apple and communicate with a Bluetooth Profile registered with Apple. That particular protocol string (Eg. com.apple.ps1) will be given by the MFI device manufacturer, which you will need to include in the info.plist file.
If you are targeting devices which have ios 5 and up you can try using the CoreBluetooth Framework. Here is the link
https://developer.apple.com/library/ios/#documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/_index.html#//apple_ref/doc/uid/TP40011295

Resources