Valid UDIDs? - iphone

Duplicate: Validate iPhone device Ids?
Does anyone know what constitutes a valid iPhone UDID?
Context: I am working on some session code for a server that interacts with iPhones, and was going to use the iPhone's UDID as a unique identifier. However, I can't seem to find any resources on the range of valid UDIDs, and I want to know exactly what I can expect coming from an iPhone.
Clarification: I'm not asking about how to validate an iPhone UDID as a legitimate iPhone UDID, I'm trying to figure out the range of UDIDs. For example, in programming languages there are specs on what you can use to name your variables (starts with a letter, contains letters and numbers, etc.). I want the same sort of spec for the UDID.

It is a 40 character hex string. There is no spec or doc out there that specifies the layout to this string.
I'm not really sure how you can determine what is 'valid' since only Apple knows which UDID are real and which are false.
My best guess, given the various UDIDs that I've seen, they are 40 characters in length, consisting of alphanumeric characters. (a-f0-9)

Actually, the iphone simulator udid has dashes and is 36 hex characters long.
For example:
002ebf12-a125-5ddf-a739-67c3c5d20177
Though I have only seen actual iphone udid's with hex only chars and 40 long.

No, there is no way to do so. This question asks the same thing: Validate iPhone device Ids?
UPDATE:
From what I've seen, the device ID is a 40 character hex string (0-9 and a-f). Apple's documentation for the deviceIdentifier property of UIDevice states:
A unique device identifier is a hash
value composed from various hardware
identifiers such as the device’s
serial number. It is guaranteed to be
unique for every device but cannot
publically be tied to a user account.
You can use it, for example, to store
high scores for a game in a central
server or to control access to
registered products. The unique device
identifier is sometimes referred to by
its abbreviation UDID.

Most are 40 character HEX strings; we have 1 in our company that is 41 characters and is authorized in the dev center for Beta apps. Only way to add it was via safari however so worth noting if anyone gets the same.

try following regex ^([A-F0-9]{40})$
or you could go here and just paste it.
Hope this saves you some time.

Related

iPhone App name (springboard and target) list of allowed special characters

I'm looking for a set of chars that can be used to include in the app name for app store submission.
So far I know that alphanumeric characters are ok in the app name that is displayed on the springboard
Can an app name start with a digit?
Can an app name have + somewhere in it?
Can it have a ? mark?
Can it have dots . or colons : ?
I ran into problems when submitting an app with a + in it AppName+ displayed fine during debugging, but I could not submit it as a package name for the app store.
What about the name used to list the product in the app store?
I know that : is allowed in the app store name
What about +,-?/:. ?
I need to understand which characters I can display to the user as the app name on the iPhone and which characters can be displayed in the app store.
For example, my app's springboard name is called CoolApp++ . This is the name that is displayed under the icon.
To submit the app to the app store, I need to provide bundle identifier in the form of :
com.yourcompanyname.appname
Any input is appreciated!
An app has 4 names: the product or bundle file name, the bundle ID suffix, the App store name given to iTunes Connect, and the Bundle Display name under the icon. Only the latter 2 names allow special characters and spaces. The first 2 need to be plain ASCII with no spaces. You can set all 4 app names separately, and plenty of apps approved by Apple do have these 4 names all different from one another (as long as they aren't misleadingly different, I suppose).
The Target or Project may try to set these 4 names all the same at the beginning, but they can all be edited and changed to youR preferred, separate and 4 different app names latter.
Now, there is no guarantee as to whether this will pass submission, but any symbol you can find on the keyboard manually is fair game (!?&$#();"-/::[]+}=#*^_€|•<€£|, etc.), along with most if not all Latin-based diacritic characters, Sanskrit, kanji, Korean, both simplified and mandarin Chinese, and Russian. I'm sure there are others, but iOS is only now expanding support for several exotic languages.
When it comes to Unicode and Emoji, there are some characters that iOS might not be able to render, or that apple would deem inappropriate. The springboard was never meant to be a chaotic mess of symbols, it was meant to be a place where people could associate application icons and titles with apps. Though apple seems to be backing Emoji ever since they expanded the japanese keyboard.
So, while they may be found in certain apps, to use apple's words "If we reject your application, do not cite them as examples to appeal your rejection."
Almost all characters are allowed, for example, there are apps with names with diacritics, Chinese and Korean alphabets. There are plenty of apps with ".com" names, or "AC/DC" for example. As long as it the display name is close to the actual name of the application (ie. abbreviations etc. are allowed, entirely different bundle names are not). Apple might reject applications with garish names though.

How to get idevice info by udid?

I seen a website month ago that shows the general info of an iDevice, of them, it's type/ios version..etc
but i currently cant find it anymore, does anyone know what else can do the same process ?
You can define the device type on your developer's account page in "Certificates, Identifiers & Profiles" section. Unfortunately it contains only a small thumbnail of the device and also may include model's serial number (but not always)
To get device information, such as the UDID, you can use this:
[[UIDevice currentDevice] uniqueIdentifier];
If you want other information, such as orientation, system version, system name, etc, then just change uniqueIdentifier to the value you want. If you hold down option + esc or look at the link lawicko posted, then you can see some of your extra options.
Are you talking about the UDID or the Serial number?
The UDID is basically a SH1 hash of the serial number, ECID, wifiMAC, and the bluetoothMAC.
There is no public database of UDID's, so I doubt what you are refering to has to do with UDIDs.
If it involves the device's serial number, you can make reference to the site below:
https://selfsolve.apple.com/agreementWarrantyDynamic.do

The iOS 5 changed the uniqueIdentifier code?

The function
[[UIDevice currentDevice] uniqueIdentifier]
Is deprecated in iOS 5 and I found the solution in this project using the MAC address: https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5
Ok, it is solved. But now I discovery that iOS 5 CHANGED the format of code that uniqueIdentifier return.
In iOS 4.x it is in this format:
93F38DEB-3C0B-5C09-B746-0DFDFDDB297C
Now the iOS 5, the same function return in this format:
93f38deB3c0b5c09b7460dfdfddb297c
Anyone know if the code changed at all? It is different only is format or the code in really different for the same device?
A MAC Address is a (supposedly) globally unique identifier attached to a network interface, though they can be changed in many ways.
The uniqueidentifier that Apple used to provide access to was attached to the device hardware and not changeable, which made it excellent for tracking a user across apps and sessions. That's also the reason Apple is removing it, if I had to guess. Not having a way to track users across apps and sessions increases a user's privacy on their devices.
I wouldn't be surprised if Apple removes access to the MAC Address eventually for the same reasons, so it might benefit you to examine other options for tracking devices.
[[UIDevice currentDevice] uniqueIdentifier] will still give you the same result as before. The project that you link to is not a 1:1 replacement, it is an alternative that gives you a similar solution using a different implementation, thus the two string are different.
You shouldn't use unique identifier on iOS 5. That's all you need to know.
The unique identifier on iOS was always something redundant and a big security threat. Other operating systems don't have unique identifiers and they can live without them.
You can always generate unique identifiers on your server and send them to your device.
You can always generate them from some unique system property (e.g. MAC), using system functions. On iOS you can create a unique identifier using CFUUIDCreate. This identifier is unique across devices and across time (you'll get a different identifier every time you call it) but you can save them (e.g. into keychain).
The code CHANGED!!!!!
UniqueIdentifier is no more UNIQUE!!!
The first format have 36 hexa lenght
93F38DEB-3C0B-5C09-B746-0DFDFDDB297C
The second have 40 hexa!!!!!
Because this, it changed. I don't know if it append more hexa to identifier, but the bigger size changed al all.

what is the maximum length the iPad application name can be?

Please anyone clarify me what should be the max-min length of the iPad/iPhone application can be?
Forget calculating pixels. I found that the best method is renaming a folder in iOS to find out how iOS handles icon names. Please be aware that there can even be differences between devices! So an iPad icon name can be longer than an iPod icon name.
About 12 letters but it depends on the width of each individual letter (w takes more room than i). And here I am talking about the display name of the app (shown under the icon on the iPad).
The length that it's technically allowed to be is a lot longer than you should make it. The reason being iOS will abbreviate the name on the home screen if it won't fit in the space available, for example "Really Long Title" might display as "Reall...le".
I say 'might' as iOS does not use fixed-width text. The only way to see what works is by trying it and seeing what works.
Finally, the display name is not necessarily the same as the application's name. For example, both the full and free versions of my app use the same display name, though they have different names in the App Store.
There is no limit on the length of application as such. It can be 12,14,16 ...all depends on which characters are present in your app name like W,Z will take much space than i,j . That means your app name appearing in the screen doesnot depend on the length of your name, it simply depends on the width of the screen that each character takes. And usually number will take much space than character. Try out with "iiiiiiiiiiiiii" on your app name and similar length of name with other charcaters.
There are two app name lengths to be concerned with:
the length of the string visible under the app icon on a device's screen
the maximum length iTune Connect allows for app names
The first is addressed above and the advice to experiment with a folder name is the most useful though bear in mind the result is not guaranteed on all devices in all accessibility modes.
For the iTunes Connect case Apple now points you to the App Store Product Page to address this and they say:
The length of your app name is limited to no longer than 50 characters. Notice how your app name will appear on the App Store for each device, including each version of iPhone, iPad, and Apple TV. We recommend keeping your app name to around 23 characters or less for optimal presentation on every device. Long names may be truncated, which means users will not see all the characters.
As at Oct 2018:
"The name of your app as it will appear on the App Store. This can't be longer than 30 characters." iTunes Connect
So 30 Characters max now (reduced from 50 historically)

Any hack to get cell id on iPhone 3.0?

There was a hack for previous firmware using a reverse engineering of Code Telephony but it does not work anymore.
As far as I know, you can only get the UDID on the iphone.
[UIDevice currentDevice].uniqueIdentifier
A unique device identifier is a hash value composed from various hardware identifiers such as the device’s serial number. It is guaranteed to be unique for every device but cannot publically be tied to a user account. You can use it, for example, to store high scores for a game in a central server or to control access to registered products. The unique device identifier is sometimes referred to by its abbreviation UDID.