App rejected, but I don't use UDID

2019-01-03 09:03发布

Today we received a feedback about our submission and we do not understand the reported problem: "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.".

We know about the rejections about udid, but our App do not use this! After read this, our team reevaluated the App and we do not found occurrences from "UIDevice uniqueIdentifier". We also revised all used libraries and really we do not find any call from UDID.

Someone have ideas?

After research, I executed "greap" command and I am suspecting about FacebookSDK:

my-app-directory $ grep -Rnis 'uniqueIdentifier' *
Binary file MyApp/FacebookSDK.framework/FacebookSDK matches
Binary file MyApp/FacebookSDK.framework/Versions/A/FacebookSDK matches
Binary file MyApp/FacebookSDK.framework/Versions/Current/FacebookSDK matches
Binary file MyApp/MyApp.xcodeproj/project.xcworkspace/xcuserdata/myuser.xcuserdatad/UserInterfaceState.xcuserstate matches

FacebookSDK uses uniqueIdentifier?? Whats the resolution?

14条回答
\"骚年 ilove
2楼-- · 2019-01-03 09:38

In my case for this problem was responsible BugSense SDK (I used obsolete version). After upgrading to the newest version (3.1.3) everything is ok.

查看更多
贼婆χ
3楼-- · 2019-01-03 09:39

I'm facing the same issue today. There is a variable in openssl named uniqueIdentifier. Maybe it causing the problem.

查看更多
Root(大扎)
4楼-- · 2019-01-03 09:45

I have the same issue today. I upgrade AdMob SDK to 6.4.1 and submit again but no use. But it passed upload check after I disabled AdMob code and don't link to its library.

According to Google's announcement, AdMob SDK 6.4 and above do not access UDID anymore. Obviously, Apple doesn't think so.

查看更多
▲ chillily
5楼-- · 2019-01-03 09:47

Check the binary you generated with the strings command, and look for uniqueIdentifier:

$ strings YOUR_BINARY | grep uniqueIdentifier

It is likely you're going to find it in there.

I found that OpenSSL has a string uniqueIdentifier declared in their headers, so it's probable your application (or any static library you're providing with your app) has included it.

In my case the culprit was libspotify.

查看更多
forever°为你锁心
6楼-- · 2019-01-03 09:49

I had the same problem yesterday updating my applications.
After search for third parties libraries using UDID I realized I was using Conversion Tracking for iOS. This library used UDID but the the April 10 released an update fixing this problem:

The iOS conversion tracking SDK v1.2.0 no longer accesses UDID (released April 10, 2013).

I hope it helps.

查看更多
疯言疯语
7楼-- · 2019-01-03 09:50

I had the same issue, but was able to pin-point the file containing uniqueIdentifier using the following command in terminal, within my project folder.

grep -Rnis 'uniqueIdentifier' *

This echo'd out a bunch of lines in my terminal window, with the culprit being libGoogleAdModAds.a - even though I wasn't actually using it in my code, it was still referenced in my project and therefore added to the build.

my source was: http://www.commandlinefu.com/commands/view/3573/search-for-a-string-inside-all-files-in-the-current-directory

查看更多
登录 后发表回答