15

Will you please help me to fix this below mentioned issue getting from Apps store

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. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.

If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's nine-digit Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to appreview@apple.com. For further information, visit the Technical Support Information page.

Once these issues have been corrected, go to the Version Details page and click "Ready to Upload Binary." Continue through the submission process until the app status is "Waiting for Upload." You can then deliver the corrected binary.

xapslock
  • 1,119
  • 8
  • 21
Mohammed Mansoor
  • 161
  • 1
  • 1
  • 3

8 Answers8

41

Find the class that use the UDID by

(by terminal in the project directory)

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

you find the classes that use UDID then replace it and use UUID or replace it by new class if you are using external classes

sebataz
  • 985
  • 2
  • 10
  • 35
Masoud Al-Helou
  • 459
  • 3
  • 4
  • 1
    Its usefull to me.I used old Flurry Analytics and thats why I got same error.Using this command line I update my Flurry SDK and its resolve my problem and save my time.Thanks – Harin May 24 '13 at 05:02
  • Thanks very much... It points me to Paypal library... Can't they provide in notes/description ? – iOSAppDev Jun 12 '13 at 11:46
4

Use of the device's uniqueidentifier property in apps was deprecated in iOS 5.0 and forbidden in iOS 6 apps as of 1 May 2013. Instead, you can use the identifierForVendor property available in iOS 6.0. Apple changed the API to address privacy concerns.

Peter Gluck
  • 7,914
  • 1
  • 36
  • 35
  • can we send push notification by using identifierForVendor? – Babul May 14 '13 at 10:11
  • Yes. APNS simply requires a device token. This has historically been the UDID but [can in fact be any suitable binary value.](http://stackoverflow.com/questions/15561450/ios-6-use-of-udids-for-push-notifications-forbidden) – Peter Gluck May 15 '13 at 05:43
4

My problem with this was due to the adMob library. It was fixed in adMob SDK 6.4.2. From Google:

The AdMob SDK for iOS utilizes Apple's advertising identifier (IDFA). The SDK uses IDFA under the guidelines laid out in the iOS developer program license agreement. Developers must ensure they are in compliance with the iOS developer program license agreement policies governing the use of this identifier.

Dan
  • 591
  • 2
  • 19
1

I'm having this issue too. My project was being built using Unity 3.5.4 and using 3 different plugins.

I created an empty iOS project using unity 3.5.4, built xCode project, attempt validation: fail. Then I built the xCode project using 3.5.7 and validation was successful.

That empty project had no plugins in it so it's not any plugins fault.

One of my plugins only worked with Uniyt 3.5.4 so now I'm trying to get an updated version of that plugin that works with 3.5.7 in order to submit the app.

Hector
  • 11
  • 1
1

Admob and ShareKit + Facebook were both the culprit for me.

benvolioT
  • 4,419
  • 2
  • 33
  • 30
  • and so how did you address the issue? did you upgrade your entire sharekit library or did you just replace its facebook dependency? – abbood Jun 09 '14 at 07:02
0

I just got the same email after submitting our Tinyview app to the Apple App Store. We don't use UDID directly but it's possible that it's being accessed by a library we include, e.g. Google Analytics.

Raj Lalwani
  • 83
  • 1
  • 5
0

Admob 6.4.2 seems to work just had the same problem and now is solved... try to get it from here: http://dl.google.com/googleadmobadssdk/googleadmobadssdkios.zip

Catalin
  • 1,631
  • 4
  • 24
  • 31
0

If you're using HockeyApp, remember to either remove the code that checks if the app needs to be updated, it uses the default UDID.

Even better wrap it in some preprocessor directives so that it is included in your ad hoc builds, but not your production builds.

Mick Byrne
  • 13,717
  • 14
  • 68
  • 84