下面介紹了 iOS 優化 ipa 安裝包大小的幾種方法。
一、配置編譯選項 Genetate Debug Symbols 設置為 NO
Generate Debug Symbols 這個設置在 DEBUG 和 RELEASE下 均默認為 YES。
當 Generate Debug Symbols 設置為 YES 時,編譯產生的 .o 文件會大一些,當然最終生成的可執行文件也大一些。
當 Generate Debug Symbols 設置為 NO 的時候,在 Xcode 中設置的斷點不會中斷,同樣生成的 ipa 安裝包也會小一些。
因為 armv7 用于支持 4s 和 3gs ,4s 是 2011 年 11 月正式上線,雖然還有小部分人在使用,如果是是追求包體大小的完全可以舍棄了。
ipa 包的體積增大很大程度上取決于資源文件的大小。包括 Images.xcassets 中無用的圖片, bundle 中的音頻、視頻、圖片 和字體文件等。
通過 AppCode 打開對應的工程文件 選擇 Code -> inspect Code 分析代碼,去掉無用的引用及代碼。查找內部使用到的第三方庫,一方面可以進行刪減代碼,用不到的類,可以直接刪除,還有把第三方庫中的圖片資源刪除掉。
Build Settings -> Optimization Level 有幾個編譯優化選項,release 版應該選擇 Fastest, Smalllest ,這個選項會開啟那些不增加代碼大小的全部優化,并讓可執行文件盡可能小。
Strip Linked Product / Deployment Postprocessing / Symbols Hidden by Default 在 release 版本應該設為 YES ,可以去除不必要的調試符號。Symbols Hidden by Default 會把所有符號都定義成 ”private extern” 。
( 這些選項目前都是 XCode 里 release 的默認選項,但舊版 XCode 生成的項目可能不是,可以檢查一下 )
找到自己打包后的 ipa ,然后右鍵,打開方式選擇歸檔實用工具,就會解壓出來一個名為 Payload 文件夾。
在 Payload 文件夾中找到當前 ipa 的 app 文件(基本就是和這個ipa名字一樣的文件,app 后綴系統默認隱藏),右鍵顯示包內容。
進入到文件夾內,按照大小進行排序,你會發現所有的資源。
點擊 Browse,選擇一個文件夾。
點擊 Search 開始搜索。
等待片刻即可看到結果,可直接對搜索結果進行操作。
針對減小 ipa 包體積的操作,我們必須考慮相關影響,以確保做出正確的決定。如果不做權衡的話,我們無法知道需要對程序做出什么樣的改變。