iTunes App Submission无效的二进制问题

时间:2013-05-08 20:00:04

标签: iphone cordova itunesconnect

非公开API使用:

不允许应用访问UDID,也不得使用UIDevice的uniqueIdentifier方法。请更新您的应用和服务器,以将用户与iOS 6中引入的供应商或广告标识符相关联。 如果源代码中的方法名称与上面列出的私有Apple API匹配,则更改方法名称将有助于防止在将来的提交中标记此应用程序。此外,请注意,上述API中的一个或多个可能位于应用程序附带的静态库中。如果是这样,他们必须被删除。

请帮助我如何避免他的问题。

此致 约翰

3 个答案:

答案 0 :(得分:7)

  

应用不允许访问 UDID ,并且不得使用 uniqueIdentifier 方法的UIDevice 即可。请更新您的应用和服务器,以便将用户与iOS 6中引入的 供应商 广告标识 相关联

Theres你的答案。

  

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

Source

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];
}

我还可以使用其他什么来创建唯一标识符。

干杯

沙恩