I thought this could be best place to clarify my doubts and my concern - we about to release our app and it displays MAC address of all connected devices to a router and someone told me apple does not allow to display MAC address and hence app will get rejected.
But there are so many ios apps on itunes which does display MAC address and how did there app got approved if apple does not allow it.
Please guide me on this.
Thanks,
From iOS 7 or later, the MAC address of an iOS device always returns value 02:00:00:00:00:00. If you need to identify the device, use the identifierForVendor property of UIDevice instead.([[UIDevice currentDevice] uniqueIdentifier]).
Related
I'm wondering if anyone knows of any methods for retrieving device information from just a device's UDID (iOS). For example, if a client gives you a device UDID, is it at all possible to find out the device model?
Thanks!
No. The UDID is an SHA1 hash of a few components, and for all intents and purpose, impossible to reverse.
http://theiphonewiki.com/wiki/UDID
You can get the information you need from [UIDevice currentDevice]
Yes. Apple holds such information of any iOS device ever sold. They probably even know the original owner and the current OS version installed on the device since the don't allow installing without their on-line approval.
If you are an admin of an Apple Development Program (or have an individual developer account), you can register the UDID for development and get some information for the given UDID (such as platform, device class and model).
You can even do it programatically!
NOTE 1: Apple might be monitoring such activity. IANAL and I'm not aware of the legal consequences of getting information of devices you don't own.
NOTE 2: Development Program accounts are limited in the number of devices they can register.
Use wisely...
Our app is using device WiFiMAC address to uniquely identify a device. As per the
Apple doumentation we shall start using identifierForVendor property of UIDevice but my app is strongly dependent on WiFi MAC address. At run time, app users look into device settings and fetch the WiFi Mac address and manually put them in some tool to enable some feature on server side. Has anyone retrieved the device WiFi MAC address with iOS 7?
This was intentionally removed from the SDK in iOS 7. You can no longer retrieve the MAC address. Techcrunch has one of several stories on it, and it was confirmed at WWDC.
Use libimobiledevice and from command line run:
./ideviceinfo -k WiFiAddress
From iOS 7.0.2 the MAC address is: 02:00:00:00:00:00.
How can I read real one in iOS?
Is this unvailable from 7.0.2, or not?
How do it?
This is a privacy change, so there's no way to get at the underlying MAC address. https://developer.apple.com/news/?id=8222013a
If your apps use the MAC address to identify an iOS device, the system will return the same static value for all devices running iOS 7. Please update your apps to use the identifierForVendor property of UIDevice. If you need an identifier for advertising purposes, use the advertisingIdentifier property of ASIdentifierManager.
I'm working on some apps for distribution through the Enterprise program onto company iPads (so I / the company has complete control over them). What is the "correct", if there is one, way to identify the device that the apps are running on, in the context of corporate owned devices?
CFUUIDCreate as recommended here UIDevice uniqueIdentifier Deprecated - What To Do Now? won't work, as the id has to be the same across several apps.
Right now How can I programmatically get the MAC address of an iphone looks like the best way, but I'm very new to Apple stuff and would like to know if there is a better way.
The iPads are for warehouse use, and id'ing the device is to id which warehouse that iPad is assigned to.
We are using OpenUDID in our projects for persistent cross-app identifier as a drop-in replacement for deprecated UDID.
Usage:
#include "OpenUDID.h"
NSString* openUDID = [OpenUDID value];
I run an enterprise program as well and you're right, the new UUID pieces Apple provides aren't useful. Not only are they not the same across apps but they aren't the same if the user deletes and redownloads your enterprise app.
Since you're not distributing through the App Store, you won't get shut down for using the [UIDevice uniqueIdentifier] and it still does work in iOS today. I personally send that and the MAC address and cross my fingers that this will continue to work in future releases. It's possible that Apple starts returning #"" or some other null string for the UUID in the future so be prepared.
With iOS7 (beta) UIDevice uniqueIdentifier now behaves like identifierForVendor. i.e. The ID will differ for each app and also will be reset when the app is reinstalled.
What disadvantage I have if I track / fetch Mac address of iPhone or iPad? I just need to know which services that particular user is using. Will Apple refuse my App because of it?
I don't think apple reject your app simply because of you are accessing device mac address. Furthermore mac address is accessed/used for some times now to replace depreceted UUID api. You just make sure you are not using any private api's to access mac address. There is a chance that Apple may block access to mac address in the future..
EDIT: In apple official developer forum, this question is already asked and answered. Just read the answer by apple employee eskimo1 there
No they won't, you just need to be prepared that they might disallow access to the Mac Address in a future iOS version...