I recently had an app rejected because of reason -
Non-public API usage: Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice. Please update your apps and servers to associate users with the Vendor or Advertising identifiers introduced in iOS 6.
I have used google analytics iOS v2 in this app, is it causing this problem?
My app was rejected due to the new UDID polices too. In my case, I'm using AdMob and the steps to fix this problem was:
After these steps I submitted my app and now is Waiting to Review (before these steps Apple rejected my app at the moment after Upload Received).
Hope it helps!
And, another thing, if in your code you are using
[UIDevice currentDevice].uniqueIdentifier;
you must chenge to
// Get UUID value
NSUUID *uuid = [NSUUID UUID];
// Convert UUID to string and output result
NSLog(@"UUID: %@", [uuid UUIDString]);
The output looks something like this:
UUID: A84AFC3C-B3A7-31C7-B3E9-234AF423C6B1
To find out what's using the method in question, use terminal and cd to the project's root directory and run the following command;
find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier
This will then tell you what's using it. Update and or remove your code and or any libraries that's using it.
I had the same problem... I removed the library that was giving the problem, in my case adMob library. But pay attention to check even inside the folder you do not have any more the old library, that was my problem. Good luck
For Google Analytics SDK 2.0b4 and UDID reference, just remove libGoogleAnalytics_debug.a
entirely from project, clean, recompile and submit again.
You need to replace
[[UIDevice currentDevice] uniqueIdentifier]
with other method.
please refer this url
it's working for me.