I am developing and app and would like to know if there is any way that I can access the device's UDID from within the app. The reason being the app sends data to an SQL database and I would like to know which device sends it.
Edit: I have just read that Apple have banned this practice. Is there an alternative?
You should use +[UIDevice identifierForVendor] available from iOS 6.0. It provides an unique idenfier for all the apps from the same vendor (provided the user doesn’t uninstall all of them).
Related
I am working on an application that will allow the user to turn off cellular data or at least turn off notifications from other applications on the device, all through my application. Is this possible? (I know that in Android it possible)
Your app has absolutely no control what-so-ever of other apps, not even indirectly. The one exception is using a custom url scheme to open the app, and optionally, ask it to do something.
No, on iOS you can't even find what other apps the user has installed.
Even if you could, they are all sandboxed. You can't touch anything inside the other apps.
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...
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.
Is there a way to know the number of users who are still using a particular ios application version?
You can create one webservice which will accept UDID of user's device as well as the Application version. And you can get the reports from that.
For more report of user app you can integrate Flurry analytics to your app.
I've been developing an app using Titanium Appcelerator, until now I've been previewing it using the iOS Simulator and my iPhone.
Now, I want to send my app to the client so they can use it on their iPhone. How can I do this?
Bear in mind this is my first iOS app and so I am not fully au-fait with the terminology or process in making an app go live.
There is no Apple provided mechanism for achieving this, however apps like TestFlight provide a good mechanism for this. You have to register your clients device in order to allow them to install your app. Yes, this should work for Titanium.
You can find out how TestFlight works here:
How does TestFlight do it?