无效的应用程序二进制

今天,我们收到了关于我们提交的反馈,我们不理解报告的问题:“应用程序不允许访问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匹配

如何解决上述问题?

由约翰

你应该删除任何使用UDID。 截至2013年5月1日,苹果开始拒绝使用该应用程序。

在您的应用程序中使用标识符

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

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

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

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

根据苹果新的审查指南,不允许或禁止在您的应用程序中使用您设备的UDID进行任何types的身份识别或任何其他目的。 苹果在很长一段时间后发现,UDID也被用来破解用户的一些数据攻击和其他各种黑客攻击,因为他们立即意识到它们限制了在任何应用程序中使用UDID。

所以我build议你从应用程序中删除任何使用UDID的代码或代码,在应用程序中search以下代码行

 [[UIDevice currentDevice] uniqueIdentifier] 

如果你find它,只需用其他唯一标识符或其他业务逻辑代替它,然后创build一个新的二进制文件并上传它。 这将通过审查过程。

你可以在这里find更多关于IOS应用程序的新闻和更新,以及这里关于UDID的用法