2012-03-29 16 views
1

就像近期AppStore拒絕正在訪問UDID的應用程序一樣,Facebook SDK & API是否可以訪問iDevices UDID?好心提醒。謝謝!Facebook SDK和API是否可訪問iDevices UDID?

+0

沒有Facebook的API不使用您的UDID。請在Facebook開發者頁面上閱讀文檔以獲取更多詳細信息。 – 2013-04-26 09:41:10

+0

查看此[FACEBOOK API開發人員參考資料](https://developers.facebook.com/docs/reference/iossdk/)以獲取更多詳細信息 – 2013-04-26 09:49:03

+0

同時您可以通過調用以下代碼來檢查是否有任何第三方框架使用它在終端'字符串yourLibName.a | grep uniqueIdentifier' – 2013-04-26 10:34:23

回答

0

我使用的是舊版本的facebook-ios-sdk,但它似乎沒有訪問UDID。在iOS上獲取UDID的正確方法是致電

[[UIDevice currentDevice] uniqueIdentifier] 

如果您使用的是Facebook sdk,它可讓您訪問源代碼。因此,您可以搜索源代碼,並查看是否使用了唯一標識符消息。在UNIX(或OS X終端),你可以嘗試:

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

這並沒有露面任何匹配使用的版本我用的SDK(約一歲)。

肯定有更多的惡魔般的方式來訪問函數,以避免輕鬆檢測(例如我使用UNIX grep),但是Apple已經批准了許多使用此SDK的應用程序。我認爲你是安全的。

1

是的,的確是Facebook的最新SDK IOS 3.5.1仍然使用字符串「唯一標識符」,你可以看到,當您使用命令

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

不幸的是這將導致使用Facebook的SDK給任何應用程序在第一步被拒絕並被標記爲「無效二進制」。如果沒有上傳,您可以使用驗證功能在Xcode Organizer - Archives中驗證。

所以,是的,這是一個問題,任何提示解決這個問題都是值得歡迎的!

在這個問題上的一些更多的研究:

我檢查Facebook的IOS的來源上github SDK 3.5.1。實際上,在源中沒有對標識符「uniqueIdentifier」的引用。唯一使用的庫是IOS本身的Accounts.framework。所以它看起來像蘋果自己不得不更新他們的圖書館!

+0

Facebook在此處承認:http://developers.facebook.com/ios/change-log-3.x/「使用UIDevice防止關於[UIDevice uniqueIdentifier]的App Store審批誤報。」 – russau 2013-06-14 19:00:36