iOS二進制和資源包的自檢

  由於如今作的是企業版的APP,不能保證用戶不越獄,也不能保證有些用戶喜歡本身修改ipa包裏的資源文件,好比更換一些資源圖片。所以,咱們有必要在請求報文中,增長正版應用的二進制和資源文件的標識,讓服務器知道,此請求是否來自正版的未經修改的app。服務器

  在沙盒中咱們能夠讀到本身程序的二進制,也能夠讀到資源文件簽名文件,咱們能夠對其取md5值獲得一個標記字符串,而後發給服務器,對比存儲在服務器段的MD5值是否正確,若是APP被修改就禁止繼續使用,殺掉本身的進程。app

  下面是獲取本身APP的二進制、資源文件和簽名文件的獲取方法。由於從iOS8開始沙盒機制有所變化,文稿和資源文件分開在不一樣的路徑,並且文稿是一個動態的路徑,因此獲取方法要區分系統版本。加密

   下面貼代碼:blog

  定義加密類型(MD5  SHA1  SHA512)進程

  

  封裝加密方法圖片

  

  獲取資源包的加密後字符串ip

  

  獲取簽名證書加密後的字符串md5

  

  能夠根據本身的須要把這些信息發送給服務器進行判斷,如今咱們作的是APP版本號、iPhone版或iPad版再加上面兩條字符串發給服務器。資源

 

  外加自動殺掉本身進程的方法:字符串

  

 

補充:忽然發如今打包以前clean一下,獲取到的sourceData會改變,如今的作法是增長一個彈出的alertView,title是獲取的sourcedata的md5值,每次打包前clean一次,而後run一次,經過彈出的提示手動記錄一下md5值,而後註釋掉alertView的代碼,這時候再打包,注意此次就不要clean了,只改變幾行簡單的代碼不會影響APP的功能也不會改變appdata和sourcedata。(若是發現其餘更好的方法會及時更新)

相關文章
相關標籤/搜索