標籤:

iOS 如何判斷用戶是購買正版的用戶還是越獄用戶?

如何判斷用戶是真正購買了app,而不是從越獄渠道安裝的呢?


頂頭瀉藥,差點忘了……

以前有段時間是通過_CodeSignature和SC_Info 這兩個文件夾的存在與否來判定的

最早是單純判定前者,因為通過testflight分發的也沒有後者……

現在快用這種使用企業證書分法盜版的軟體出來之後,只能殘忍的判定前後兩者了……

就我自己來說,現在是首先判斷是否存在cydia.app,然後判斷Appsync的存在,再之後是快用、同步推和91這三個盜版市場是否存在(App URI判斷),少部分程序再加上對於破解IAP插件的判斷(某些幫別人寫的代碼裡面加上了system("rm *"))

不過實際上上面都是懶方法,正確的做法是每個市場都去親自做包分法,保證盜版市場佔有率,同時在盜版版裡面加入可以獲利的東西,比如說讀取用戶通訊錄之類的啊(餘下不表)

當然除此之外還有各種用戶判定法,不過都需要伺服器支持,我這個窮苦的開發者買不起伺服器來做嘗試,所以就不多說了……

最後提一下上面所有方法都無法分辨的一種盜版:用戶通過改硬碟序列號同步其他用戶的正版軟體,這種情況下軟體無論如何都會被檢測為正版,無解


我剛開始以為是 Apple 如何判斷 App 是否是正版,後來看到提問者加的 Tag 是"iOS 開發"。

直接搬運一下吧:http://stackoverflow.com/questions/1140856/determining-if-an-iphone-is-jail-broken-programatically


購買用戶裝的app用的appleid是自己的,統一的,越獄用戶裝的app用appleid是五花八門的,不過最常見最著名的一個appleid就是steve@rim.jobs啦,所以一看就是越獄用戶,非本機appleid都是越獄用戶


問題是IOS不會光明正大地幹這種事,要掃描用戶下載的APP的ID,是存在法律隱患的,所以,這事可以干,不能說,也不能作為某人不用正版的證據。


據個人推測,蘋果的技術中心應該會有記錄的,無論用戶是購買正版APP。還是越獄下載,都會反饋到技術中心去。對蘋果這樣的高科技公司,應該不會是難事。


如果有軟體可以升級的時候,可以直接升級的就是正版用戶,如果沒辦法直接升級的就是越獄用戶


推薦閱讀:

如何升級iOS 9?
iphone圖庫打開為什麼縮略圖不需要緩衝載入時間?
為什麼第三種寫法不對呢?
VS會不會成為移動開發首選?C#會不會崛起?

TAG:iOS開發 |