ios 在window和mac上另類打包方式

原文出自:Spring sky ,歡迎轉載,請保留版權和原文地址;http://blog.csdn.net/springsky_/article/details/24355259

寫這個文章,我先給大家舉一個例子把。
情況如下:A是開發者,B是ipa的使用者,A和B距離很遠,如果B需要安裝ipa,正常的情況如下:1.B到A這裏去,讓A給安裝    2.A需要在網上上傳一個ipa,提供給B,B需要下載ipa,然後安裝。如果ipa很大,那麼A上傳需要很長時間,B下載也需要很長時間,如果A只是修改了部分代碼,或者一個圖片,可能雙雙都要浪費很多時間

如果B手上有一個ipa,並且A只是修改了部分代碼或者替換部分圖片,有沒有更快捷的方式替換解決發送ipa的問題?

爲此,我做了很多實驗:
No.1  把ipa後綴名修改爲zip,解壓後得到一個“Payload”文件夾,直接打開這個文件夾,選中xxx.app文件,右鍵顯示包內容,直接替換裏面的圖片,然後把xxx.app直接拖到iTunes中生成ipa,打包可以,但是安裝一直顯示“安裝中....”,實際上這種方式是不可行的;

No.2  把ipa後綴名修改爲zip,解壓後得到一個“Payload”文件夾,直接打開這個文件夾,選中xxx.app文件,右鍵顯示包內容,直接替換裏面的圖片,然後把Payload這個目錄壓縮爲一個zip,然後再把後綴名zip修改爲ipa結果一樣:安裝一直顯示“安裝中....”,這種方式依然是不可行的


最後我猜想,不管替換哪種類型的文件,ipa可能存在一種簽名,或者對文件進行MD5校驗,然後在安裝的過程中進行了MD5驗證簽名,基於這種方式,我就想了一個辦法,如果我們把ipa中得“文件簽名”替換掉,是否能安裝成功?

so,我就在“顯示包內容”這個目錄裏面,發現了一個“_CodeSignature”目錄,對應的這個目錄下,還有一個CodeResources文件,我想這大概就是簽名的文件吧,如下圖:


結果依照上面的No.1方式去打包,過了不到2分鐘的時間,看見iTunes 複製文件完成,安裝...  突然眼睛一亮,安裝成功,哈哈,這一刻,哥真的笑出來了,多麼激動得一顆哇。

最後,我想用這種方式來替換編譯的代碼,其實就是替換xxx.app目錄下的xxx文件即可(xxx是你的項目名稱,特別要注意哦,如果我得項目名稱是aaa,那麼在aaa.app的目錄下 ,就又一個aaa的unix可執行文件,只要替換aaa文件即可),然後用No.1和No2的方式去打包,安裝,都成功了,哈哈,將來不再爲只是替換了一張圖片,一行代碼而發送龐大的ipa而煩惱了。

那麼,我將用上面的舉例總結一下重要的步驟:

1.讓B先把手上的ipa的後綴名修改爲zip,然後解壓,得到"Payload"目錄;

2.A把編譯後的xxx.app下得“_CodeSignature” 提供給B,然後把需要替換的文件(圖片 or mp3  or 編譯後的代碼)也替換給A,並且名稱保持一致;

3.B打開Payload目錄,然後再打開xxx.app,替換裏面的“_CodeSignature”目錄和相關的替換文件。然後依照上面的No1或者No2方式去打包,即可得到一個可安裝的ipa文件,安裝,都ok了。


特別是替換籤名,相當重要!
以上是基本的操作步驟了,如果大家有什麼疑問的,即可聯繫我 QQ:840950105    加我的時候請註明 問題的原因吐舌頭

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章