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

寵の児 提交于 2019-11-28 05:05:34
Masoud Al-Helou

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

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.

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.

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.

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

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.

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

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.

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