81

I'm developing an app for my company and we're going through the process of slowly letting people into the "beta" by adding their iPads to the company's iOS Dev Center accounts. From there we do an ad hoc build for local Intranet distribution.

At my last gig, I would direct people to one of those "find my UDID for me" apps, then get them to send me the UDID it found.

iOS 7 has cut this off - those apps are all gone now and if you do still have one, it returns some GUID that has nothing to do with the UDID.

So what I'm having to do is connect each of these things to my Mac, then get the UDID from iTunes, which is kind of a hassle (but less tedious than trying to explain to them how to get it from iTunes, assuming they even have it installed). And sometimes it tries to sync with my Mac, which doesn't seem to have any effect other than putting on provisioning profiles I don't want on the device. And at least once I've had an iPad just suddenly decide to upgrade itself from iOS 6 to iOS 7 which I'm not sure is related to being plugged in (and in this case the user didn't want it upgraded).

So is there any other way to get the UDID from the iPad other than plugging it into a machine?

TO BE CLEAR: I'm not trying to get the UDID in an app, I'm just trying to think of the quickest way to get the UDID to add to the device list in our developer profile for distribution.

Tom Kidd
  • 12,551
  • 18
  • 84
  • 126
  • http://whatsmyudid.com/ :D you can say, download on the AppStore an UDID App and send me the e-mail. You don't have other choice.. – Jordan Montel Sep 26 '13 at 15:20
  • 1
    @JordanMontel that's a cool site, although it's using an old version of iTunes that no longer matches the look/feel, and the copy command assumes you're running a Mac. And the UDID apps no longer give a valid UDID since iOS 7 – Tom Kidd Sep 26 '13 at 15:23
  • 2
    Oh yes I remember that with iOS 7... the UDID sent from the app start with FFFF... So, the unique solution is to plug the device on iTunes :s – Jordan Montel Sep 26 '13 at 15:24
  • I'm in the same boat -- I develop apps for several clients, and not sure how Apple expects us to add devices for in-house testing if I can't have them email me the UDID! – software evolved Sep 27 '13 at 00:00
  • 2
    TestFlight is pulling this off somehow with iOS 7 devices by using a configuration profile. Might look into how that is working. – Jesse Rusak Sep 27 '13 at 00:48
  • Regarding TestFlight -- this is taken from their bug page at https://testflightapp.com/sdk/ios/known_issues/ : "Current Issues In iOS 7, uniqueIdentifier no longer returns the device's UDID, so iOS 7 users will show up anonymously on TestFlight even if you use setDeviceIdentifier:. In App Updates will also not work. When building with ARC, Xcode 5 will not allow you to call uniqueIdentifier because it has been removed in iOS 7 from UIDevice's header. Removing the line will cause users to show up as anonymous and stop In App Updates from working." – software evolved Oct 01 '13 at 20:31
  • Try http://get.udid.io/ – Jonny Jun 19 '14 at 02:35
  • Try http://udidiphone.com – Arvind Nov 17 '16 at 05:55
  • found this and it is super easy https://betafamily.com/superudid to get correct udid – Tixeon Dec 03 '16 at 06:32

18 Answers18

104

Navigate to http://get.udid.io/ from Safari on your iOS device. It works like a charm and requires neither iTunes nor any other computer. No app installed either.

EDIT:

Also, have a look at Getting a device UDID from .mobileconfig if you (understandably) would rather have this .mobileconfig certificate hosted on a server of yours.

MAKE YOUR OWN:

Have a copy of the .mobileconfig example hosted on your server and write 2-3 small scripts in your favorite language to handle the following flow:

  1. Navigate on Safari to a URL redirecting to enroll.mobileconfig below. This makes iOS open the Settings app and show the profile.
  2. Upon accepting the profile, iOS switches back to Safari and posts the DeviceAttributes array to the URL specified enroll.mobileconfig.
  3. The POST data will contain a .plist file with the requested attributes (see example below). One of which will be the holy UDID.

Remark: You should probably have some user friendly messages. Specifically, we even have a step 0. where the user is asked to provide their name and e-mail that we store temporarily in the HTTP session and then redirect the request to the mobileconfig profile. We ultimately match this info with the iPhone data and send a friendly confirmation e-mail. HTH.

enroll.mobileconfig

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>http://support.devcorp.com/uuid/returnurl/</string>
            <key>DeviceAttributes</key>
            <array>
            <string>DEVICE_NAME</string>
            <string>UDID</string>
            <string>PRODUCT</string>
            <string>VERSION</string>
            <string>SERIAL</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>DevCorp Inc.</string>
        <key>PayloadDisplayName</key>
        <string>Profile Service</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>C5FB9D0D-0BE7-4F98-82CC-5D0EA74F8CF8</string> <!-- any random UUID -->
        <key>PayloadIdentifier</key>
        <string>com.devcorp.profile-service</string>
        <key>PayloadDescription</key>
        <string>This is a temporary profile to enroll your device for ad-hoc app distribution</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>

sample .plist POSTed by the iPhone to the given URL

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PRODUCT</key>
    <string>iPhone4,1</string>
    <key>SERIAL</key>
    <string>DNPGWR2VCTC0</string>
    <key>UDID</key>
    <string>b01ea7bc2237fed21bfe403c6d2b942ddb3c12c3</string>
    <key>VERSION</key>
    <string>11A465</string>
</dict>
Community
  • 1
  • 1
VH-NZZ
  • 4,782
  • 3
  • 26
  • 43
  • 1
    I know, and setting a similar service for your own/clients use is only a matter of few clicks. – VH-NZZ Dec 21 '13 at 11:57
  • 9
    Do NOT use this site as it makes you install a Profile service which can make your data accessible to the owner of the site. – checklist Feb 26 '14 at 10:46
  • 1
    @checklist: I disagree. Two things, one remark and one comment: **1st**. See my edit above regard. privacy issues. **2nd**. What good is your UUID without your iphone? **Remark**: the _profile_ does not make your `data accessible to the site owner', it won't even stay installed. Can you elaborate? **Comment**: if you have a simpler way of retrieving the UUID, I'm listening. If you're worried that your UUID is being sent over and back to your email, then host your own service over SSL. **As a side note**: plugging your iphone to iTunes also sends your data to Apple (and possibly to the N$@). – VH-NZZ Feb 26 '14 at 11:58
  • 4
    hi. There is a difference between sending your data to Apple and sending it to an unknown website. There are numerous warnings about installing profiles on your device as they allow interception of your data. I would not do it. – checklist Feb 26 '14 at 12:48
  • 3
    @checklist: There are legitimate concerns to have w.r.t. anything you post on the net. Again, if you're uncomfortable using that _convenience_ service, that is FINE. The **EDIT** part of the answer tells you how to make your own, thus lifting any worries you may have while keeping its simplicity. HTH. – VH-NZZ Feb 26 '14 at 14:32
  • Frankly, I'm conflicted. While this is an approach that allows gathering the UDIDs in an easier fashion, I am uncertain how much of a security breach it would be possible to create using this approach, if you were of a malicious bent. I think for it to be useful (without getting paranoid/twitchy) each developer would have to generate a profile and host it themselves. Can we get an answer that shows how that would be done? I would upvote it then. – software evolved Mar 10 '14 at 22:40
  • But this site asks me to install a "profile". And iOS warns me about this modifying my settings. I don't like that. – Nicolas Barbulesco Apr 07 '14 at 14:57
  • @NicolasBarbulesco Indeed. It won't modify anything. If you agree, you'll be taken back to the site and get your UUID. Or you can deny and set up your own web service working in a similar manner with the guidelines in the answer above. – VH-NZZ Apr 07 '14 at 15:00
74

Here's my research results:

Apple has hidden the UDID from all public APIs, starting with iOS 7. Any UDID that begins with FFFF is a fake ID. The "Send UDID" apps that previously worked can no longer be used to gather UDID for test devices. (sigh!)

The UDID is shown when a device is connected to XCode (in the organizer), and when the device is connected to iTunes (although you have to click on 'Serial Number' to get the Identifier to display.

If you need to get the UDID for a device to add to a provisioning profile, and can't do it yourself in XCode, you will have to walk them through the steps to copy/paste it from iTunes.

UPDATE -- see okiharaherbst's answer below for a script based approach to allow test users to provide you with their device UDIDs by hosting a mobileconfig file on a server

Community
  • 1
  • 1
software evolved
  • 4,144
  • 32
  • 45
  • 202
    Ever get the feeling that Apple hates developers? – ryan0 Sep 29 '13 at 16:37
  • 15
    "you will have to walk them through the steps to copy/paste it from iTunes". This website could help a bit: http://whatsmyudid.com – Guillaume Algis Oct 03 '13 at 14:00
  • totally the answer. half the users i have the UDID for are the fake ones, and those are the people who can't install my dev app – bentedder Oct 12 '13 at 05:53
  • Kindly, add the apple document link if you have about this issue. – Praveenkumar Mar 04 '14 at 07:25
  • "copy/paste it from iTunes". Unless I'm mistaken, you cannot select the text (clicking on the identifier toggles between displaying serial number and UDID). So, you may have to type it manually. – chimeracoder Mar 10 '14 at 17:03
  • 2
    right clicking the value allowed you to copy the value (windows version of itunes - not sure about the mac version) – software evolved Mar 10 '14 at 22:36
  • I can confirm that the UDID and device model are available in the xcode organizer device view. For me, the info was visible even without the devices connected, so long as the device was previously connected to the same computer while xcode was open. – Scott Swezey Jun 12 '14 at 03:48
17

Hope this would help:

  1. Connect iPhone to your MAC(I didn't try this with windows)
  2. Click on Apple’s logo on the top left corner > select About This Mac
  3. In Overview tab > System Report
  4. Hardware in the left column > USB >
  5. then on right pane select iPhone
  6. in bottom pane -> "Serial number

-> And that serial number is UDID

Chatrapathy
  • 309
  • 2
  • 6
14

If any of your users are running linux they can use this from a terminal:

lsusb -v 2> /dev/null | grep -e "Apple Inc" -A 2

This gets the all the information for your connected usb devices and prints lines with "Apple Inc" including the next 2 lines.

The result looks like this:

iManufacturer           1 Apple Inc.
iProduct                2 iPad
iSerial                 3 7ddf32e17a6ac5ce04a8ecbf782ca509...

This has worked for me on iOS5 -> iOS7, I haven’t tried on any iOS4 devices though.

IMO this is faster then any Win/Mac/Browser solution I have found and requires no "software" installation.

complistic
  • 2,450
  • 1
  • 26
  • 37
5

TestFlight seems to be able to extract the UDID once the user signs up:

https://testflightapp.com

dazhi
  • 329
  • 1
  • 3
  • 13
4

I have been using iPhone Configuration Utility to read the UDIDs and install the Development app. Still works fine on iOS7

Jerry
  • 51
  • 1
  • 1
    The original question mentioned not using iTunes, but they are really asking "is there any way of getting the UDID without having the device in hand, or forcing the user to install Apple software?" and this answer fails that test – software evolved Dec 03 '13 at 17:54
  • I like this solution. Does it need adminship on Windows ? – Nicolas Barbulesco Apr 08 '14 at 09:22
  • Alas, I need Windows adminship to install the iPhone Configuration Utility 3.6.2 on Windows. Don't ask me why you must be admin of the PC to use a tool that sets up iPhones... – Nicolas Barbulesco Apr 08 '14 at 09:29
3

Plug it in, and run this from the command line:

system_profiler SPUSBDataType

Look for:

Serial Number: xxxx
Chris
  • 37,118
  • 43
  • 178
  • 226
  • 1
    COOL! I love this solution. Thank you. I appended some *awk* on the end to produce an easily scannable listing: `system_profiler SPUSBDataType | awk '/:$/{sub(/^ */,"");name=$0}/Serial Number:/{id=$3;print name,id}'` – Todd Lehman Nov 03 '14 at 01:30
  • Nice. But this answer needs more detail. Plug it in where? I have some idea... ;-) – Nicolas Barbulesco Jun 25 '15 at 14:12
2

Have them create a testflightapp.com account.

This is very useful for beta testing - which I'm guessing is what you need the udids for.

You can send them a download link to your app (found in the permissions tap at the bottom of the page) and it will tell them their udid hasn't been validated yet. It will then tell them their udid! They can copy and paste this and text it to you.

maxhud
  • 9,261
  • 13
  • 52
  • 99
2

Found a nice way to handle it: Add the app to testFlight.com and give the link to the user you want his UDID. He will see an error message saying "your device UDID: xxxxxx is not registered" and the UDID will be the correct one.

Loves2Develop
  • 614
  • 6
  • 27
  • this site doesn't exist anymore. "This page is no longer active. You will be redirected shortly to our corporate page - Pearson" – Raphael Pinel Apr 15 '21 at 05:11
1

Try this online tool http://www.easy-udid.com. I tested it on various iOS devices (iOS 6 and 7) and it works fine. Handful tool to quickly add customer's UDID in developer's profile

1

Please use test flight to obtain UDID from testers but not using untrusted source e.g. http://get.udid.io/

You can 1. Invite testers in email from test flight webpage. Testers open the link in email and install a profile from test flight. Therefore developers can obtain UDIDs on the test flight webpage. 2. Add those UDIDs on the Apple provisioning portal.

(Ref: http://help.testflightapp.com/customer/portal/articles/829537-how-does-it-work-)

The process doesn't require testers to use Mac/ PC to obtain UDID (more convenient). And I think test flight is a company that can be trusted (no worries when passing UDID to this company).

I have tested this method and it works on iOS 8.

oOEric
  • 959
  • 1
  • 9
  • 21
1

Steps to find the UDID from IPhone and IPad Without Using itunes

  1. Open below link in your iPhone or iPad : - http://get.udid.io/

  2. Click on the Button Green color - Tap to find UDID

  3. Get your UDID will Appear, Click on the right side top INSTALL button

4 . UDID will appear Copy the UDID.

Ullas Pujary
  • 281
  • 4
  • 12
0

I think iTunes looks to be the only answer, which is extremely unfortunate.

CBanga
  • 131
  • 2
  • 4
  • Have you read the answers? You can use system info, iphone configuration utility, the http://get.udid.io web page, and organizer, testflight..... – LightMan Dec 20 '13 at 11:14
0

Or use my solution here www.my-mo.co.uk/device/deviceinfo.php will let you access UDID and email it to whoever you choose too.

Alex McPherson
  • 3,159
  • 3
  • 25
  • 39
0

If you are using a mac, you can get the UUID out of the "System Report" available from "About this Mac." With the device attached, open the USB section and click on iPhone. The UUID appears under "Serial Number"

Tad
  • 3,862
  • 29
  • 34
0

diawi.com has worked for me, no need for connecting iPhone with cable or etc.: just follow their "My Device" tab that will lead you to install their provision profile and then display the UDID and add option to send it by Email.

Yizhar
  • 829
  • 9
  • 10
-3

Please use udid.io in your device browser Or Please install iTools and conncet the device to get the correct UDID.

Adarsh E M

  • 2
    "We hope you're tester or mobile apps developer or kind of them." Erm, no offense, but that site looks sort of shady and the unsigned provisioning profile isn't exactly comforting. To say nothing of how I'm not sure how they're getting the UDID – Tom Kidd Oct 11 '13 at 15:41
  • There is no longer any approved mechanism for a site or tool to retrieve the real UDID from a device, if it isn't jailbroken. I would avoid any solution that says otherwise – software evolved Oct 12 '13 at 20:18
  • @Schnapple The site takes advantage of configuration profiles usually used by MDM (but also used by services like TestFlight) to retrieve the UDID. I agree about the unsigned part, but other than that it shouldn't pose a problem. You **can** still get the UDID from an iOS device, just not from within an app; UDIDs are still extensively used in MDM. – Calrion Oct 21 '13 at 02:44
  • 1
    Did some research on the Mobile Device Management (MDM) system. The API docs are only released to Enterprise Developers, but it is reported to support mechanisms to retrieve the UDID, so my earlier statement ("There is no longer any approved mechanism for a site or tool to retrieve the real UDID from a device") is wrong. – software evolved Oct 24 '13 at 20:05
  • iTools ? Mac OS 9 is back ? :-) – Nicolas Barbulesco Apr 08 '14 at 09:56
-4

We can use identifierForVendor for ios7,

-(NSString*)uniqueIDForDevice
{
    NSString* uniqueIdentifier = nil;
    if( [UIDevice instancesRespondToSelector:@selector(identifierForVendor)] ) { // >=iOS 7
        uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    } else { //<=iOS6, Use UDID of Device       
            CFUUIDRef uuid = CFUUIDCreate(NULL);
            //uniqueIdentifier = ( NSString*)CFUUIDCreateString(NULL, uuid);- for non- ARC
            uniqueIdentifier = ( NSString*)CFBridgingRelease(CFUUIDCreateString(NULL, uuid));// for ARC
            CFRelease(uuid);
         }
    }
return uniqueIdentifier;
}

--Important Note ---

UDID and identifierForVendor are different:---

1.) On uninstalling  and reinstalling the app identifierForVendor will change.

2.) The value of identifierForVendor remains the same for all the apps installed from the same vendor on the device.

3.) The value of identifierForVendor also changes for all the apps if any of the app (from same vendor) is reinstalled.
HDdeveloper
  • 4,257
  • 6
  • 38
  • 65
  • 2
    I'm not looking to get something to identify the device within the app, I'm looking for a way to get the UDID without having to use anything but the device itself for the purposes of adding it to an adhoc provisioning profile. An increasing number of people are never syncing their iOS devices to a computer directly - the device can update itself, sync settings over iCloud, etc., and sometimes doing a sync to iTunes messes everything up. The answer appears to be "no" – Tom Kidd Dec 11 '13 at 21:56
  • Do I type all of that in my iPhone ? ^^ Where ? Will it give me my UDID ? I think this answer does not answer to the question : *How do I get the UDID of my iPhone ?* – Nicolas Barbulesco May 08 '14 at 11:29