二进制文件因非公开API使用而被拒绝(谷歌解析iOSv2)

我最近因为某个原因拒绝了应用程序 – 非公共API使用:不允许应用程序访问UDID,也不得使用UIDevice的uniqueIdentifier方法。 请更新您的应用和服务器,以将用户与iOS 6中引入的供应商或广告标识符相关联。

我在这个应用程序中使用了谷歌分析iOS v2,它是否导致了这个问题?

由于新的UDID政策,我的应用被拒绝了。 就我而言,我正在使用AdMob,解决此问题的步骤是:

  • 将AdMob更新到最新版本(Google警告我,如果我尝试在5月1日之后提交,我的应用会被拒绝)。

  • 转到Xcode>管理器>项目>您的项目>删除(派生数据)。

  • 产品>清洁。

在完成这些步骤之后,我提交了我的应用程序,现在正在等待审核(在上传收到之后苹果拒绝了我的应用程序之前)。

希望能帮助到你!

而另一件事,如果在您的代码中使用

[UIDevice currentDevice].uniqueIdentifier; 

你必须变得更好

 // Get UUID value NSUUID *uuid = [NSUUID UUID]; // Convert UUID to string and output result NSLog(@"UUID: %@", [uuid UUIDString]); 

输出看起来像这样:

 UUID: A84AFC3C-B3A7-31C7-B3E9-234AF423C6B1 

要找出使用相关方法的内容,请使用terminal和cd到项目的根目录并运行以下命令;

find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier

然后,这将告诉您使用它的是什么。 更新和/或删除您的代码和/或使用它的任何库。

我遇到了同样的问题……我删除了提出问题的库,在我的案例中是adMob库。 但要注意检查甚至在你没有旧库的文件夹内,这是我的问题。 祝你好运

对于Google Analytics SDK 2.0b4和UDID参考,只需从项目中删除libGoogleAnalytics_debug.a ,清理,重新编译并再次提交。

你需要更换

 [[UIDevice currentDevice] uniqueIdentifier] 

用其他方法。 请参考这个url,它对我有用。