请您帮我修复从Apps商店获取的以下问题
不允许应用访问UDID,也不得使用 UIDevice的uniqueIdentifier方法。请更新您的应用和 用户将用户与供应商或广告标识符相关联的服务器 在iOS 6中引入。如果源代码中的方法名称与 上面列出的私有Apple API,改变您的方法名称将有所帮助 防止此应用在未来的提交中被标记。在 另外,请注意,上述API中的一个或多个可能位于a中 您的应用程序附带的静态库。如果是这样,他们一定是 除去。
如果您认为此邮件是错误发送的,并且您只有 使用Apple发布的API按照指南发送 应用程序的九位数Apple ID,以及有关原因的详细信息 您认为上述API被错误地标记为 appreview@apple.com。有关详细信息,请访问技术部门 支持信息页面。
更正这些问题后,请转到“版本详细信息”页面 然后单击“准备上传二进制文件”。继续提交 进程直到应用程序状态为“等待上传”。那你可以 提供纠正的二进制文件。
答案 0 :(得分:41)
找到使用 UDID 按
的类(通过项目目录中的终端)
find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier
您找到使用 UDID 的类然后替换它并使用 UUID ,或者如果您使用外部类,则将其替换为新类
答案 1 :(得分:4)
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。
更好地将它包装在一些预处理程序指令中,以便它包含在您的临时构建中,但不包含在您的生成构建中。