非公开API使用:
不允许应用访问UDID,也不得使用UIDevice的uniqueIdentifier方法。请更新您的应用和服务器,以将用户与iOS 6中引入的供应商或广告标识符相关联。 如果源代码中的方法名称与上面列出的私有Apple API匹配,则更改方法名称将有助于防止在将来的提交中标记此应用程序。此外,请注意,上述API中的一个或多个可能位于应用程序附带的静态库中。如果是这样,他们必须被删除。
请帮助我如何避免他的问题。
此致 约翰
答案 0 :(得分:7)
应用不允许访问 UDID ,并且不得使用的 uniqueIdentifier 方法的UIDevice 即可。请更新您的应用和服务器,以便将用户与iOS 6中引入的 供应商 或 广告标识 相关联
Theres你的答案。
“从5月1日开始,App Store将不再接受访问UDID的新应用或应用更新。请更新您的应用和服务器,以便将用户与iOS 6中引入的供应商或广告标识符相关联 “
Apple现在会阻止任何访问uniqueIdentifier
UIDevice
属性的应用。使用Vendor or Advertising标识符替换所有匹配项,或使用OpenUDID。
NSUUID *uuid = [[UIDevice currentDevice] identifierForVendor];
NSString *uuidString = [uuid UUIDString];
一些可能有帮助的StackOverflow问题:
如果您自己没有使用过uniqueIdentifier
,那么它将是一个SDK库调用它。通常来自广告网络,例如Mobclix,AdMob或Smaato。所有流行的广告网络都更新了SDK,删除了uniqueIdentifier
。查看他们的网站以获取最新的SDK。
<强>更新强>
您在使用PhoneGap的评论中看到,猜测您尚未更新到最新版本。
确保您使用http://phonegap.com/download/的最新版本(2.7.0)(2013年4月30日发布)
答案 1 :(得分:6)
我遇到了同样的问题,Apple给了我一些提示,找出使用&#34; uniqueIdentifier&#34; API调用。即使在二进制库中。
&#34;虽然您可能已从应用中删除了对UDID的访问和使用, 无效的二进制消息表示您的应用使用或访问 UDID的。如果出现任何问题,请检查您的源代码 &#34;唯一标识符&#34;方法;这是返回设备的方法 UDID。
此外,如果要链接外部框架,例如 广告库,这些第三方图书馆可能正在访问和 使用UDID。我们建议您最多更新您的库 最新版本并使用&#34; nm&#34;工具,以确定是否库 正在调用这种方法。
有关&#34; nm&#34;的更多信息工具,请参阅手册页 &#34; nm&#34; Xcode工具中的工具:
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/nm.1.html
此外,如果您无权访问图书馆的来源,那么您 也许能够使用&#34;字符串&#34;来搜索已编译的二进制文件。或&#34; otool&#34; 命令行工具。 &#34;字符串&#34;工具可以输出一个列表 图书馆调用的方法和&#34; otool -ov&#34;将输出 Objective-C类结构及其定义的方法。这些 技术可以帮助您缩小有问题的代码 驻留&#34;
希望有所帮助
答案 2 :(得分:0)
我正在使用此方法创建唯一标识符。
现在不允许这样做。这是一个月前发布我的应用程序的先前版本。
- (NSString *)uuid
{
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
return [(NSString *)uuidStringRef autorelease];
}
我还可以使用其他什么来创建唯一标识符。
干杯
沙恩