2013-05-10 41 views
15

的唯一标识符方法请你帮我解决这个问题下文提到的问题,从应用程序商店获得应用程序不允许访问UDID,并不得使用的UIDevice

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

如果您认为此消息有误,发送,你只有 用于按照指引苹果发布的API,以了解为何 你相信的详细信息发送 应用程序的九位数的Apple ID,沿上述API被错误地标记为 [email protected]。有关更多信息,请访问Technical 支持信息页面。

一旦这些问题得到纠正,请转到版本详细信息页面 ,然后单击“准备上传二进制文件”。继续完成提交 过程,直到应用状态为“等待上传”。然后您可以发送 修正的二进制文件。

回答

0

我刚刚提交我们的Tinyview应用程序到Apple App Store后收到了同样的电子邮件。我们不直接使用UDID,但有可能它正在被我们包含的库访问,例如,谷歌分析。

41

查找(在项目目录中由终端)的

使用UDID

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

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

+0

非常好的提示... – 2013-05-16 11:44:26

+0

辉煌。谢谢。 – 2013-05-23 16:40:39

+1

它对我有用。我使用旧的Flurry Analytics,这就是为什么我得到相同的错误。使用此命令行我更新我的Flurry SDK,并解决我的问题,并节省我的时间。谢谢 – Harin 2013-05-24 05:02:45

4

Use of the device's uniqueidentifier property in apps was deprecated in iOS 5.0 d截至2013年5月1日iOS 6应用程序中禁止使用。相反,您可以use the identifierForVendor property available in iOS 6.0。苹果改变了API来解决隐私问题。

+0

我们可以使用identifierForVendor发送推送通知吗? – Babul 2013-05-14 10:11:00

+0

是的。 APNS只需要一个设备令牌。这在历史上一直是UDID,但[事实上可以是任何合适的二进制值。](http://stackoverflow.com/questions/15561450/ios-6-use-of-udids-for-push-notifications-forbidden) – 2013-05-15 05:43:13

4

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

适用于iOS的AdMob SDK利用Apple的广告标识符(IDFA)。 SDK根据iOS开发人员 程序许可协议中列出的准则使用IDFA。开发人员必须确保他们在遵守iOS开发者计划许可协议政策 管理此标识符的使用方面符合 。

+0

谢谢!这解决了我的问题! – rosaMerino 2013-06-20 16:11:12

1

我也有这个问题。我的项目正在使用Unity 3.5.4构建,并使用3种不同的插件。

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

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

我的一个插件只能与Uniyt 3.5.4一起使用,所以现在我试图获得该插件的更新版本,与3.5.7一起使用以提交应用程序。

1

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

+0

等等,你是如何解决这个问题的?你是升级你的整个sharekit库还是你只是替换它的facebook依赖? – abbood 2014-06-09 07:02:19

0

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

甚至更​​好地将其包含在某些预处理器指令中,以便将其包含在特别版本中,但不包括在生产版本中。

相关问题