iOS之開發的SDK(.framework)瘦身

項目需求:最近開發的SDK,要提供給公司其他部門使用,但是開發后的.framework的大小為12M。但是某程APP不愿意,說包太大,要瘦身。所以,只能網上找資料。下面說說我的的做法,親測試可以的。

一、set Generate Debug Symbols to NO

make sure that you set Generate Debug Symbols to NO in your build settings. This can reduce the size of your static library by about 30%.
In your target's build settings look for 'Optimization Level'. By switching that to 'Fastest, Smallest -Os' you'll permit the compiler to sacrifice some speed for size.

(1)、設置Generate Debug Symbols 為NO。可以減少30%左右的體積,所以這個選項很重要。

Generate Debug Symbols 為NO.png

(2)、設置Optimization Level下的Release模式為:Fastest,Smallest[-Os] 。這是Xcode上默認的,但我們要知道,意思是開啟不增加代碼大小的全部優化,并讓可執行文件盡可能小。

設置Optimization Level.png

經過上面的設置,我的.framework有12M減到了8M。

二、刪除無用代碼

設置Dead Code Stripping為YES,去掉冗余代碼即代碼被定義但未被使用。

設置Dead Code Stripping為YES.png

三、刪除不必的指令集

我原來在Architectures中加入了armv7s。現在我將armv7s刪除,重新編譯,可以減少三分之一的體積。framework包由原來的1.8M減到1.2M。

指令集:armv6 : iPhone,iPhone2,iPhone3G,第一代和第二代iPod Touch; armv7:iPhone4,iPhone4S; armv7s:iPhone5,iPhone5C; arm64:iPhone5S

指令集是向下兼容的,所以設置了armv7是可以在armv7s的設備上運行的。

設置指令集.png

四、刪除framework中無用mach

(注:該方法沒試過,不過該方法是可信的)

點擊打開鏈接

五、ipa縮小文件體積

點擊打開鏈接

補充:

1、LinkMap分析類模塊大小
2、LinkMap下載
3、iOS APP安裝包瘦身實踐(無用資源檢測工具、圖片壓縮工具)
4、組件化-動態庫實戰(動態庫共享ipa瘦身)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • (原文:How to Create a Framework for iOS 作者:Sam Davies 譯者:Mr...
    王憲嶺閱讀 4,980評論 3 23
  • (原文:How to Create a Framework for iOS作者:Sam Davies 譯者:Mr_...
    Yaanco閱讀 2,399評論 4 5
  • 如果你想將你開發的控件與別人分享,一種方法是直接提供源代碼文件。然而,這種方法并不是很優雅。它會暴露所有的實現細節...
    小熱狗閱讀 3,505評論 3 9
  • 關于 動態庫 & 靜態庫 ,參考下面文章:iOS開發關于"框架"的那些事iOS 靜態庫,動態庫與 Framewor...
    曦風兮閱讀 1,467評論 2 2
  • 前幾天,三家一起把餐廳隔出來做成書房,是同一個師傅,板子也混一起用了,做到最后一家是時少了半塊板子,商量怎么處理,...
    陽光灑灑閱讀 131評論 0 0