MAC id of BLE device

Hi,


I got stuck in a situtation.


Since Apple is suppresing MAC id information we came-up with sending MAC id information through advertisement packet when scan response in advertisementData by putting those information inside vendor specific information.


Now, we are trying to display only last 4 digit of MAC-id obtained in this way inside our App. Will it be casue of concern for App Store submission? Will Apple rejects app based on this approach?



Thanks,

Manish

Replies

Only the App Review team can answer questions about what behavior will get apps rejected. Unfortunately it is unlikely that any member of that team will be in this forum to be able to asnwer the question.


If you are worried about exposing your MAC id in the advertising packets - be it for App Review purposes, or just you may think exposing this info may not be the best solution - you can always hash, or otherwise scramble or randomize this information in a way your app can recognize and then use.


That said, there is an actual problem with your approach, which may cause some technical issues, depending on your implementation.


When your app is not in the foreground (and especially when the screen is off, and the iOS device is going into a lower power state), it will also go into a passive scan mode for Bluetooth, where it will no longer request the scan response packet. If your app depends on a piece of information in SCAN_RSP, this may prove to be problematic. Unless your app is designed in a way that the peripherals are scanned only when the app is in the foreground, there is always a chance that you might miss the second packet.

To add to Gualtier's discussion, using the MAC address of a device adds no security or any tangible benefits and is a problem if Privacy is enabled as the MAC address will change given the IRK.


The Apple provided Identifier takes care of the IRK handling for you. So you know you're connecting to the same device regardless.


When we develop products we avoid using the MAC address in most cases and create a unique identifier. Remember that using a Service UUID in your advertisement packet/scan response is more energy efficient as the BLE controller doesn't have to wakeup the OS to scan. This means battery consumption is reduced (we have found users to kill apps if they consume).


Obviously why you're using the MAC could have a legitimate reason to implement something, but most devices should not use it (which is why Apple has provided the identifier).


Regards,

Gustavo


====================================

ARGENOX

Wireless Connecitivity Experts

Bluetooth, BLE, Wi-Fi

www.argenox.com

info@argenox.com

====================================