We use a lot of third-party SDKs from ad providers, and since Apple will not allow UDID access after May 1st, I want to check which SDKs use the UDID function. Is there a simple way or tool to do that?
Asked
Active
Viewed 1,540 times
4 Answers
8
One simple and naïve method is to run strings
and grep
on the library files. i.e.
strings libSomething.a | grep uniqueIdentifier
If you see any line that prints exactly uniqueIdentifier
there is a risk they call it. This method is not 100% bullet proof. But I'd expect Apple doing a similar check in their automatic validation.

epatel
- 45,805
- 17
- 110
- 144
-
I already tried this method and found some sdks (the latest version) still contains "uniqueIdentifier" methods, I'm not sure it is from [[UIDevice currentDevice] uniqueIdentifier] or it is just their own method. – ocean Apr 14 '13 at 14:15
-
2@ocean How about just adding a breakpoint for uniqueIdentifier and see what happens? – epatel Apr 14 '13 at 14:52
-
@epatel You'll get rejected if uniqueIdentifier exists in your code/lib, even if you never call it. So a symbolic breakpoint doesn't help, if a lib/framework doesn't call it, but uses uniqueIdentifier in code!!! – Fab1n May 14 '13 at 12:14
-
@Fab1n it was just *one* suggestion, maybe that could show if another `Class` is calling it...anyway the SDK devs should update asap. Last week I **needed** to submit and did this *hack* http://stackoverflow.com/questions/16433621/libspotify-causing-apple-app-store-rejection/16491455#16491455 to pass the automated checks. In Review now... – epatel May 14 '13 at 12:28
-
@epatel crazy horse!!! :-) I only wanted to keep in mind, that runtime checks do not save you from being rejected. strings is by far now the best solution to find out which framework/lib is responsible for a rejection, so you don't have to update all of your libs, because that would probably mean a lot of time of adaption to the new api of these libs – Fab1n May 14 '13 at 13:57
0
NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
[uuid autorelease];
CFRelease(theUUID);
}
try this

D.M Patel
- 145
- 1
- 7