MAC Address of the iPhone

I need the ability to read the MAC address of the iPhone running my app.

I know it was often asked and answered. But unfortunately the answer "not possible" is not helpful for me.


The following reason: The app communicates with an access point using WIFI / TCP client. The access point can read / determine the MAC address of the iPhone. To establish the communication, the access point wants the iPhone to confirm that it really is this device (security feature). Therefore the app has to send the MAC address of the iPhone to the access point - it checks the value and confirms the communication.

Without transmitting the MAC address to the access point, no communication is allowed (and is aborted).


Is there a possibility (e.g. HotspotHelper)? Since the app is to be published in the store, I have to exclude private components. The access point cannot be changed, because Android apps already run with it, where it is no problem at all to determine the MAC address, and the device is in use in large numbers.

Or is it really Apple's intention to exclude the use of an iPhone app because of this?

Replies

No one here in devForums can speak to Apple's intentions. We just know what we're told, same as you.


Feel free to submit enhancement requests that include your use case via the bug reporter link below, adding your report # to your thread for reference, thanks and good luck.

My opinion - of course they weren’t intending to exclude your specific use case. Apple’s intentions have been pretty clear; they protect users’ privacy. Of necessity, that means disallowing access to all persistent device identifiers - UDID, serial number, MAC address.


I don’t know if there is a workaround for your use case. As KMT notes, feel free to file an enhancement request. But you do have to keep in mind that when there’s a conflict between usability and privacy, Apple normally sides with privacy.

[This pretty much reiterates what KMT and junkpile have said, but I figured your boss would appreciate an answer from an Apple account.]

But unfortunately the answer "not possible" is not helpful for me.

I’m sorry to hear that, but it doesn’t change the answer. The iOS sandbox deliberately prevents apps from getting at the device’s MAC address. If you found a way around that restriction, it would be considered a security bug and fixed as such.

You should feel free to file an enhancement request for a mediated way to get the MAC address — that is, something that the user must explicitly approve — but you need to have realistic expectations here. MAC addresses are extremely privacy sensitive and thus a change like this would require an extremely compelling use case.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"