Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice

那年仲夏 提交于 2019-11-27 00:46:58

问题


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.


回答1:


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




回答2:


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.




回答3:


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.




回答4:


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.




回答5:


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




回答6:


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.




回答7:


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




回答8:


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.



来源:https://stackoverflow.com/questions/16489079/apps-are-not-permitted-to-access-the-udid-and-must-not-use-the-uniqueidentifier

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!