不允许应用访问UDID,也不得使用UIDevice的uniqueIdentifier方法

时间:2013-05-10 18:58:28

标签: iphone mobile app-store itunesconnect iphone-accessory

请您帮我修复从Apps商店获取的以下问题

  

不允许应用访问UDID,也不得使用   UIDevice的uniqueIdentifier方法。请更新您的应用和   用户将用户与供应商或广告标识符相关联的服务器   在iOS 6中引入。如果源代码中的方法名称与   上面列出的私有Apple API,改变您的方法名称将有所帮助   防止此应用在未来的提交中被标记。在   另外,请注意,上述API中的一个或多个可能位于a中   您的应用程序附带的静态库。如果是这样,他们一定是   除去。

     

如果您认为此邮件是错误发送的,并且您只有   使用Apple发布的API按照指南发送   应用程序的九位数Apple ID,以及有关原因的详细信息   您认为上述API被错误地标记为   appreview@apple.com。有关详细信息,请访问技术部门   支持信息页面。

     

更正这些问题后,请转到“版本详细信息”页面   然后单击“准备上传二进制文件”。继续提交   进程直到应用程序状态为“等待上传”。那你可以   提供纠正的二进制文件。

8 个答案:

答案 0 :(得分:41)

找到使用 UDID

的类

(通过项目目录中的终端)

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

您找到使用 UDID 的类然后替换它并使用 UUID ,或者如果您使用外部类,则将其替换为新类

答案 1 :(得分:4)

截至2013年5月1日,在iOS 6应用中禁止使用

Use of the device's uniqueidentifier property in apps was deprecated in iOS 5.0。相反,您可以use the identifierForVendor property available in iOS 6.0。 Apple更改了API以解决隐私问题。

答案 2 :(得分:4)

我的问题是由于adMob库。它已在adMob SDK 6.4.2中修复。来自Google:

  

适用于iOS的AdMob SDK使用Apple的广告标识符(IDFA)。   SDK根据iOS开发人员制定的指南使用IDFA   计划许可协议。开发人员必须确保他们在   符合iOS开发人员计划许可协议政策   管理这个标识符的使用。

答案 3 :(得分:1)

我也有这个问题。我的项目是使用Unity 3.5.4和使用3个不同的插件构建的。

我使用unity 3.5.4创建了一个空的iOS项目,构建了xCode项目,尝试验证:失败。然后我使用3.5.7构建了xCode项目,验证成功。

那个空项目没有插件,所以它不是任何插件故障。

我的一个插件只与Uniyt 3.5.4配合使用,所以现在我正在尝试获取与该3.5.7一起使用的插件的更新版本,以便提交应用程序。

答案 4 :(得分:1)

Admob和ShareKit + Facebook都是我的罪魁祸首。

答案 5 :(得分:0)

我将Tinyview应用程序提交到Apple App Store后,我收到了同样的电子邮件。我们不直接使用UDID,但它可能被我们包含的库访问,例如Google Analytics。

答案 6 :(得分:0)

Admob 6.4.2似乎工作只是遇到了同样的问题,现在已经解决了......试着从这里开始:http://dl.google.com/googleadmobadssdk/googleadmobadssdkios.zip

答案 7 :(得分:0)

如果您正在使用HockeyApp,请记住删除检查应用是否需要更新的代码,它使用默认的UDID。

更好地将它包装在一些预处理程序指令中,以便它包含在您的临时构建中,但不包含在您的生成构建中。