【问题标题】:Does Facebook SDK & APIs access iDevices UDID?Facebook SDK 和 API 是否访问 iDevices UDID?
【发布时间】:2012-03-29 12:30:20
【问题描述】:

与最近 AppStore 拒绝访问 UDID 的应用程序一样,Facebook SDK 和 API 是否会访问 iDevices UDID?好心提醒。谢谢!

【问题讨论】:

  • No facebook api 不使用您的 UDID。请阅读 facebook 开发者页面上的文档以获取更多详细信息。
  • 查看Developer Reference for FACEBOOK API了解更多详情
  • 同时您可以通过在终端strings yourLibName.a | grep uniqueIdentifier中调用以下代码来检查您的任何第三方框架是否使用它

标签: ios facebook-ios-sdk udid


【解决方案1】:

是的,当您使用命令时,确实最新的 Facebook IOS SDK 3.5.1 仍然使用字符串“uniqueIdentifier”

cd facebook-ios-sdk/
strings FacebookSDK.framework/FacebookSDK | grep uniqueIdentifier

很遗憾,这会导致任何使用 Facebook SDK 的应用在第一步中被拒绝并被标记为“无效二进制”。无需上传,您就可以在 Xcode Organizer - Archives 中使用 Validate 功能验证这一点。

所以,是的,这是一个问题,欢迎任何解决此问题的提示!

关于这个问题的更多研究:

我在github 上查看了 facebook ios sdk 3.5.1 的来源。实际上,源中没有对标识符“uniqueIdentifier”的引用。唯一使用的库是 IOS 本身的 Accounts.framework。所以看起来苹果自己必须更新他们的图书馆!

【讨论】:

【解决方案2】:

我使用的是旧版本的 facebook-ios-sdk,但它似乎没有访问 UDID。在 iOS 上获取 UDID 的正确方法是调用

   [[UIDevice currentDevice] uniqueIdentifier]

如果您使用的是 facebook sdk,它可以让您访问源代码。因此,您可以搜索源代码,看看是否使用了 uniqueIdentifier 消息。在 UNIX(或 OS X 终端)上,您可以尝试:

   cd facebook-ios-sdk/
   find . -name '*.m' | xargs grep uniqueIdentifier

这与我使用的 SDK 版本(大约一年前)没有任何匹配。

肯定有一些更邪恶的方法来访问函数以避免容易检测(例如我使用 UNIX grep),但 Apple 已经批准了许多使用此 SDK 的应用程序。我认为你很安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多