应用程序二进制文件无效

时间:2013-05-09 19:25:23

标签: iphone ios cordova udid

今天我们收到了有关提交内容的反馈,但我们不了解所报告的问题:“不允许应用访问UDID,也不得使用UIDevice的uniqueIdentifier方法。请更新您的应用和服务器以将用户与iOS 6中引入的供应商或广告标识符。“。

我们知道关于udid的拒绝,但我们的应用程序不使用它!阅读本文后,我们的团队重新评估了应用程序,我们没有发现“UIDevice uniqueIdentifier”的出现。我们还修改了所有使用过的库,实际上我们找不到UDID的任何调用。

有人有想法吗?

经过研究,我执行了“greap”命令:

my-app-directory $ grep -Rnis'uniqueIdentifier'* 二进制文件John.xcodeproj / project.xcworkspace / xcuserdata / franz.xcuserdatad / UserInterfaceState.xcuserstate匹配

二进制文件John.xcodeproj / project.xcworkspace / xcuserdata / mahendra.xcuserdatad / UserInterfaceState.xcuserstate匹配

二进制文件John.xcodeproj / project.xcworkspace / xcuserdata / pareshrathod.xcuserdatad / UserInterfaceState.xcuserstate匹配

二进制文件John.xcodeproj / project.xcworkspace / xcuserdata / User.xcuserdatad / UserInterfaceState.xcuserstate匹配

如何解决上述问题?

约翰

2 个答案:

答案 0 :(得分:4)

您应该删除任何UDID用法。截至2013年5月1日,Apple开始拒绝使用此应用程序。

  

在您的应用中使用标识符

     

从5月1日开始,App Store将不再接受访问UDID的新应用或应用更新。请更新您的应用和服务器,以便将用户与iOS 6中引入的供应商或广告标识符相关联。您可以在UIDevice Class Reference中找到更多详细信息。

来源:https://developer.apple.com/news/

虽然我没有独立确认,但我相信这是你应该使用的:

NSUUID *uuid = [[UIDevice currentDevice] identifierForVendor];
NSString *uuidString = [uuid UUIDString];

答案 1 :(得分:3)

根据Apple的新审核指南,不允许或禁止将您的设备的UDID用于您的应用程序中的任何类型的标识或任何其他目的。很长一段时间后,Apple发现UDID还用于破解用户和其他各种黑客攻击的一些数据,因为他们立即意识到它们限制了在任何应用程序中使用UDID。

所以我建议您从使用UDID的应用程序中删除任何剪切或代码,在应用程序中搜索以下代码行

[[UIDevice currentDevice] uniqueIdentifier]

如果找到它,只需将其替换为其他唯一标识符或其他一些业务逻辑,然后创建一个新的二进制文件并上传它。它将通过审查过程。

您可以找到有关IOS应用here的更多新闻和更新以及有关UDID here的使用情况