无效的应用程序二进制文件[关闭]
Posted
技术标签:
【中文标题】无效的应用程序二进制文件[关闭]【英文标题】:Invalid Application Binary [closed] 【发布时间】:2013-05-09 19:25:22 【问题描述】:今天我们收到了关于我们提交的反馈,我们不理解所报告的问题:“应用程序不允许访问 UDID 并且不得使用 UIDevice 的 uniqueIdentifier 方法。请更新您的应用程序和服务器以将用户与ios 6 中引入的供应商或广告标识符。”。
我们知道关于 udid 的拒绝,但我们的应用程序不使用它!阅读此内容后,我们的团队重新评估了该应用程序,我们没有发现“UIDevice uniqueIdentifier”的出现。我们还修改了所有使用的库,实际上我们没有找到任何来自 UDID 的调用。
有人有想法吗?
经过研究,我执行了“greap”命令:
我的应用程序目录 $ 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 匹配
我该如何解决以上问题?
约翰
【问题讨论】:
【参考方案1】:您应该删除对 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];
【讨论】:
我不知道我在哪里使用?请帮助我如何识别? 好的,但是我应该在哪里输入这两行? 约翰,你比我更了解你的代码。我不能告诉你你在哪里用过它。您导入的第三方库可能正在访问它。 抱歉,其他人将不得不为您回答这个问题。我既不使用 PhoneGap 也不使用 FacebookSDK。也许谷歌或文档可以对这个主题有所了解。祝你好运,约翰。 约翰,没有。这是了解更多信息的良好起点:developer.apple.com/library/ios【参考方案2】:根据 Apple 的新审核指南,不允许或禁止在您的应用程序中将您设备的 UDID 用于任何类型的识别或任何其他目的。很长一段时间后,Apple 发现 UDID 也被用于破解用户的一些数据黑客和各种其他黑客,因为他们立即意识到他们限制在任何应用程序中使用 UDID。
所以我建议你从你的应用程序中删除任何使用 UDID 的剪辑或代码,在你的应用程序中搜索以下代码行
[[UIDevice currentDevice] uniqueIdentifier]
如果您找到它,只需将其替换为其他唯一标识符或其他一些业务逻辑,然后用它创建一个新的二进制文件并上传它。它将通过审查过程。
你可以找到更多关于IOS应用here的新闻和更新以及关于UDID的使用here
【讨论】:
更多macrumors.com/2013/03/21/…以上是关于无效的应用程序二进制文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
itunesconnect iphone 应用程序状态 - 无效的二进制文件