与最近 AppStore 拒绝访问 UDID 的应用程序一样,Facebook SDK 和 API 是否会访问 iDevices UDID?好心提醒。谢谢!
2 回答
是的,当您使用命令时,确实最新的 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。所以看起来苹果自己必须更新他们的图书馆!!
我正在使用旧版本的 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 的应用程序。我认为你是安全的。