2012-03-29 52 views
6

顯然,Apple已經開始拒絕使用[UIDevice uniqueIdentifier]的應用程序。我聽說過應用程序在過去一週被拒絕和批准使用它的報告(有些可以通過,有些則不會)。然而,沒有一個主要的廣告網絡(爲我的應用產生收入)還沒有使用不使用UDID的API。我的應用中包含的所有API都使用它。他們都表示他們正在開發一種新的API,並且即將推出,但可能要等上幾個月。Apple在應用程序審查期間如何檢測UDID訪問?

對我來說,蘋果似乎很奇怪會通過應用程序審查過程執行此策略,而不是通過一個簡單地不允許它的新版本操作系統(並且人們在測試期間有時間進行編程) 。

所有這一切說,我的問題是蘋果公司如何檢測,如果你在應用程序審查期間訪問UDID?他們是否以某種方式掃描捆綁軟件以查看該通話是否在該處,或者他們是否在監視實際正在測試應用程序的系統調用?我想如果用戶想要付費,或者給他們選擇去支持廣告並因此提供他們的UDID,可能不會訪問廣告API。但是,我需要了解蘋果是否拒絕基於[UIDevice uniqueIdentifier]簡單地編譯到您的代碼中,或者如果他們根據您在應用程序審查測試期間調用[UIDevice uniqueIdentifier]來檢測。

請不要回答這個問題,爲什麼你不應該使用[UIDevice uniqueIdentifier]或者如何創建自己的UDID等。我的問題是我需要的還沒有的第三方庫替代方案。問題是:Apple在應用程序審查期間如何檢測UDID訪問?

+1

「而不是通過一個新版本的操作系統,根本不允許它」,但後來蘋果公司無法使用它。 ;) – Joel 2012-03-29 22:00:13

+0

在不強迫開發人員先更新應用程序的情況下刪除API會破壞當前在客戶設備上運行的已批准和已購買的應用程序,這可能會導致客戶對操作系統更新感到非常不滿。 – hotpaw2 2012-03-29 22:07:41

回答

7

他們已經知道使用靜態分析,它基本上掃描編譯後的二進制代碼,以調用特定方法的編譯版本。他們也使用它來檢測對私有API的調用。通過以創造性的方式從字符串構造選擇器,可能誘騙靜態分析。儘管這不是誠實的或推薦的。

但更強大的方法很可能通過HTTP代理,通過使用您的應用程序,他們可以監視任何發送UDID的HTTP流量。這可能是通過哈希或2way加密得到的。這也不是誠實的或推薦的。

而今年夏天iOS6問世時,該方法可能會被徹底刪除,使得其使用的所有混淆都完全沒有意義。

+0

第三方廣告網絡API經過預編譯,因此無法在其源代碼中「混淆」[UIDevice uniqueIdentifier]的調用。我只是想給用戶選項,而不是在啓動時自動連接到API。但很好的答案。謝謝。 – user1301928 2012-03-29 22:16:42

2

蘋果被報告對應用程序中使用的所有方法簽名使用靜態掃描(偶爾會拒絕一個應用程序使用相同的消息簽名作爲開發人員自定義類的一個蘋果公司的非公開)

此外,他們之前也曾報道過在特殊硬件和/或未發佈的操作系統版本上運行應用程序,這些應用程序可能包含或可能不包含某種儀器,例如網絡流量。

相關問題