2

Anyone getting the following issues on a recent build that you trying to upload to the store?

1. Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application.

2. 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.

It is thus failing validation and not uploading.

Cœur
  • 37,241
  • 25
  • 195
  • 267
vijay
  • 1,235
  • 1
  • 11
  • 32

2 Answers2

2

Apple recently disallowed developers from accessing the device's UDID (Unique Device Identifier), but some third party libraries haven't updated yet. In particular, some people have been having problems with Google Analytics. Another post on here recently gave a pretty good answer: App rejected, but I don't use UDID

Community
  • 1
  • 1
PerkinsB1024
  • 181
  • 9
1

The library that seems to be the most common one causing this is Google Analytics' debug library (libGoogleAnalytics_debug.a) - make sure you're not linking against the debug version in your production build, but instead link against the release version (libGoogleAnalytics.a)

The other one I encountered was PayPal's Mobile Express Checkout Library (MECL). For this one there's no fix since they don't seem to be planning on updating the MECL to not use the device token. You'll have to switch to PayPal's MPL library or their new SDK which is US-only.

To find the offending library/framework, run this in your project folder:

find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier

It will have some trouble traversing some folders so see the output and manually go into the folders that it can't get to, and run it again in there. The command above came from this SO answer

Community
  • 1
  • 1
Jai Govindani
  • 3,181
  • 21
  • 26