Iphone 如何检测哪个第三代sdk使用UDID?

Iphone 如何检测哪个第三代sdk使用UDID?,iphone,ios,objective-c,appstore-approval,udid,Iphone,Ios,Objective C,Appstore Approval,Udid,我们使用了很多来自广告提供商的第三方SDK,由于苹果在5月1日之后将不允许UDID访问,我想检查哪些SDK使用UDID功能。有一种简单的方法或工具可以做到这一点吗?一种简单而天真的方法是在库文件上运行字符串和grep。i、 e strings libSomething.a | grep uniqueIdentifier 如果您看到任何一行准确地打印出uniqueIdentifier,他们就称之为风险。这种方法不是100%防弹的。但是我希望苹果在自动验证中也会做类似的检查。你可以为-[UIDev

我们使用了很多来自广告提供商的第三方SDK,由于苹果在5月1日之后将不允许UDID访问,我想检查哪些SDK使用UDID功能。有一种简单的方法或工具可以做到这一点吗?

一种简单而天真的方法是在库文件上运行
字符串和
grep
。i、 e

strings libSomething.a | grep uniqueIdentifier

如果您看到任何一行准确地打印出
uniqueIdentifier
,他们就称之为风险。这种方法不是100%防弹的。但是我希望苹果在自动验证中也会做类似的检查。

你可以为-[UIDevice uniqueIdentifier]设置一个符号断点。

为什么不试试secureudid(secureudid.org)


尝试此方法

我已经尝试过此方法,发现一些SDK(最新版本)仍然包含“uniqueIdentifier”方法,我不确定它是否来自[[UIDevice currentDevice]uniqueIdentifier]或者这只是他们自己的方法。@ocean不如为uniqueIdentifier添加一个断点,看看会发生什么?@ePetel如果代码/库中存在uniqueIdentifier,即使您从未调用它,也会被拒绝。所以,如果lib/framework不调用符号断点,而是在代码中使用uniqueIdentifier,那么符号断点就没有帮助了@Fab1n这只是一个建议,也许这可以显示另一个
类是否正在调用它……无论如何,SDK开发人员应该尽快更新。上周,我需要提交并进行此黑客攻击以通过自动检查。现在回顾…@epatel疯狂马!!!:-)我只想记住,运行时检查并不能避免被拒绝。到目前为止,字符串是找出哪个框架/库导致拒绝的最佳解决方案,因此您不必更新所有的库,因为这可能意味着需要大量时间来适应这些库的新api
NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
  uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
  [uuid autorelease];
 CFRelease(theUUID);
}