5

I'm trying to upload an application to AppStore but soon as its uploading I get this error:

  1. Your app contains non public API usage. Please review the errors, correct them, and submit your app again.

  2. Apps are not permitted to use the UDID, and must not use the unique identifier method of UIDevice. Please update your app's servers to associate with the vendor or advertising identifier introduced in iOS6.

Shouldn't these errors be displayed? I cant find any code that access the UDID.

rmaddy
  • 298,130
  • 40
  • 468
  • 517
Jani
  • 1,280
  • 13
  • 32
  • 4
    You must be using a 3rd party library or framework that is still using `UIDevice uniqueIdentifier`. Search this site for plenty of existing questions on how to find which one. – rmaddy May 15 '13 at 15:58
  • 2
    See the top answer here for how to identify which file is using the UDID: http://stackoverflow.com/questions/16409966/app-rejected-but-i-dont-use-udid – Sean Kladek May 15 '13 at 16:36

3 Answers3

5

You are likely making a call somewhere to UIDevice uniqueIdentifier. This has been deprecated for a while (and just recently is causing rejection from the app store). You need to remove these calls and use some other method of generating a unique identifier.

No errors are displayed because this is actually not an error. It is perfectly valid code, just not code that Apple wants to allow in its ecosystem any more.

bengoesboom
  • 1,915
  • 2
  • 19
  • 26
  • 2
    Thank you everyone for pointing me in the correct direction. I executed the command "find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier" and it showed me a trace towards flurry. It seems that I have been using an old flurry lib. I upgraded it to the latest and managed to upload it for review. – Jani May 16 '13 at 09:53
  • removing uniqueIdentifier from code solve my problem,, thanks – Shehzad Bilal Jun 17 '13 at 06:16
0

If you are using a third party framework such as for ads or tracking make sure you download the latest version of whatever it is, all of them should now be avoiding UDIDs. Originally all of them used them.

ahwulf
  • 2,564
  • 12
  • 27
0

You need to replace [[UIDevice currentDevice] uniqueIdentifier] with other method. please refer this url http://iphonedevsdk.com/forum/iphone-sdk-development/113801-app-rejected-due-to-non-public-api-and-udid.html

Hitesh Vaghela
  • 1,625
  • 1
  • 11
  • 11