由于公司項目由原生轉為了混合開發(fā),但是APP 的 release包 生成ipa ,有 80M 之大,
實際上,應用原生的部分已經很小了,但是項目中還存在著 很多原生的控制器,viewmodel 等類所以決定對現(xiàn)有app 進行瘦身
1.審視APP哪些東西很導致ipa 包很大
將ipa 包解壓,發(fā)現(xiàn),除了打包生成的二進制,和資源文件外,有兩個文件最大;
那么主要針對不用的圖片文件 和 打包后的資源文件處理,盡量減少不用的代碼的引用也能減小ipa 的包的大小;
2.瘦身結果


3.瘦身思路
- 1.刪除不需要的資源文件
- 2.刪除廢除的第三方SDK
- 3.對于低版本的RAM 不再支持
4.瘦身工具
- 工具1: synx --項目虛擬文件夾整理工具 下載鏈接https://github.com/venmo/synx
一個命令行工具,重組您的Xcode項目文件夾以匹配您的Xcode工程,把你project 里虛擬目錄分隔成真實的文件夾,
- 工具2 :LSUnusedResources--[ 項目資源文件清理工具 ] ()下載鏈接 https://github.com/tinymind/LSUnusedResources
刪除project 工程中不用的資源文件
ipa 解壓后,除了資源文件還有一個比較大的 .car 文件,解壓查看xcode 打包了哪些東西,是什么東西導致ipa 爆大;
5.瘦身過程
App 瘦身整理:
8月1號之前的 公司項目 (8月1日)
| 安裝包大小 | size |
|---|---|
| 5.4.4 版本ipa包 | 77.5M |
| Universal | 97.9 MB |
| iPhone 6s | 54.2 MB |
| iPhone 6s Plus | 60.3 MB |
5.4.5 版本 瘦身后 (8月11日)
| 安裝包大小 | size |
|---|---|
| 5.4.4 版本ipa包 | 68.9 MB |
| Universal | 80.8 MB |
| iPhone 6s | 40.1 MB |
| iPhone 6s Plus | 48.4 MB |
(測試通過)
平均安裝包縮小了大約 15M ;
5.4.5 (223 版本-- 刪除 ARMV7 ) (8月11日)
| 223 安裝包大小 | size |
|---|---|
| 5.4.4 版本ipa包 | 48.6 MB |
| Universal | 62.2 MB |
| iPhone 6s | 40.1 MB |
| iPhone 6s Plus | 48.4 MB |
總結 223 版本因為刪除了ARMV7 所以包小了很多,當我恢復支持ARMV6 ,且刪除了引用的viewModel 和Controller 但是ipa 包反而變大了,所以,我猜測刪除ARMV7 是有效的;
5.4.7 (240 版本-- 刪除很多control 和viewmodel ) (8月11日)
| 224 安裝包大小 | size |
|---|---|
| 5.4.4 版本ipa包 | 54.7 MB |
| Universal | 64.2 MB |
| iPhone 6s | 31.7 MB |
| iPhone 6s Plus | 39.8 MB |
總結 224(測試中)恢復刪除的ARM7,ipa 變大了,但是單獨的 各個iphone 的版本實際上還是縮小了一些;所以,ARM的支持越多,會導致生成的ipa 越大,但是相應各個iphone 的安裝包實際變化不大
ARM了解
刪除過時的 ARM 支持
首先來了解一下Architectures中幾個參數(shù)的含義
指令集對應的機型:
2018 A12芯片arm64e : iphone XS、 iphone XS Max、 iphoneXR
2017 A11芯片arm64: iPhone 8, iPhone 8 Plus, and iPhone X
2016 A10芯片arm64:iPhone 7 , 7 Plus, iPad (2018)
2015 A9芯片arm64: iPhone 6S , 6S Plus
2014 A8芯片arm64: iPhone 6 , iPhone 6 Plus
2013 A7芯片arm64: iPhone 5S
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
模擬器32位處理器測試需要i386架構,
模擬器64位處理器測試需要x86_64架構,
真機32位處理器需要armv7,或者armv7s架構,
真機64位處理器需要arm64架構。
友情鏈接:
參考了這幾個哥們的文章和瘦身記錄;
iOS學習之解壓Assets.car;
縮小 ipa包 壓縮 ipa iOS 如何縮小打包項目ipa大小;
當我們談論iOS瘦身的時候,我們到底在談論些什么;