今天我们收到了有关提交内容的反馈,但我们不了解所报告的问题:“不允许应用访问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匹配
如何解决上述问题?
约翰答案 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]
如果找到它,只需将其替换为其他唯一标识符或其他一些业务逻辑,然后创建一个新的二进制文件并上传它。它将通过审查过程。