一蛤织、代碼配置
如果使用 xcconfig 來管理構(gòu)建參數(shù)的赴叹,如果你也使用該方式,那么使用下面這一行代碼就能完成配置:
APP_THIN_LINK_FLAGS = -Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab,-rename_section,__TEXT,__const,__RODATA,__const,-rename_section,__TEXT,__text,__BD_TEXT,__text,-rename_section,__TEXT,__textcoal_nt,__BD_TEXT,__text,-rename_section,__TEXT,__StaticInit,__BD_TEXT,__text,-rename_section,__TEXT,__stubs,__BD_TEXT,__stubs,-rename_section,__TEXT,__picsymbolstub4,__BD_TEXT,__picsymbolstub4,-segprot,__BD_TEXT,rx,rx
如果你是沒有使用這種方式瞳筏,在Other Linker Flags
中逐行添加以下配置即可:
-Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring
-Wl,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname
-Wl,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname
-Wl,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype
-Wl,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab
-Wl,-rename_section,__TEXT,__const,__RODATA,__const
-Wl,-rename_section,__TEXT,__text,__BD_TEXT,__text
-Wl,-rename_section,__TEXT,__textcoal_nt,__BD_TEXT,__text
-Wl,-rename_section,__TEXT,__StaticInit,__BD_TEXT,__text
-Wl,-rename_section,__TEXT,__stubs,__BD_TEXT,__stubs
-Wl,-rename_section,__TEXT,__picsymbolstub4,__BD_TEXT,__picsymbolstub4,
-Wl,-segprot,__BD_TEXT,rx,rx
如果你的二進(jìn)制文件中存在自定義 Section 的話稚瘾,比如使用了類似attribute((section("__TEXT,__custom_section")))的方式創(chuàng)建了自定義 Section,則可能需要做如下的配置以移走自定義 Section姚炕,具體見 「2.3.3 場景三」 的詳細(xì)分析摊欠。
APP_THIN_LINK_FLAGS = -Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab,-rename_section,__TEXT,__const,__RODATA,__const,-rename_section,__TEXT,__text,__BD_TEXT,__text,-rename_section,__TEXT,__textcoal_nt,__BD_TEXT,__text,-rename_section,__TEXT,__StaticInit,__BD_TEXT,__text,-rename_section,__TEXT,__stubs,__BD_TEXT,__stubs,-segprot,__BD_TEXT,rx,rx,-rename_section,__TEXT,__picsymbolstub4,__BD_TEXT,__picsymbolstub4,-rename_section,__TEXT, __custom_section,__CUSTOM_TEXT,__text,-segprot, __CUSTOM_TEXT,rx,rx
二丢烘、驗證
1、如何找到Mach-O
文件
在xcode
項目編譯后些椒,在項目目錄下找到Product
文件夾播瞳,下面有個xxxx.app
的文件,右鍵show in finder
免糕,下面有個和項目同名的可執(zhí)行文件這個就是Mach-O
文件
2赢乓、查看Mach-O
在終端進(jìn)入此文件夾,運行下面命令:比如你的文件名叫MachDemo
$xcrun size -lm MachDemo
沒移動__TEXT
之前
移動后
三石窑、成果
將最新的IPA上傳App Store后查看下載大小及安裝大小牌芋。發(fā)現(xiàn)新上傳的1.9.3版本明細(xì)下載大小減少了十幾兆。安裝大小也有不同程度的減少松逊。第一列是下載大小躺屁,第二列是安裝大小。