一、iOS模擬器的庫合并方法
提供iOS真機(jī)與模擬器靜態(tài)庫(.a文件)的合并腳本及操作指南,合并后生成支持真機(jī)+模擬器的通用靜態(tài)庫,簡(jiǎn)化開發(fā)調(diào)試與打包流程。腳本自動(dòng)匹配同名庫文件、移除沖突架構(gòu),無需手動(dòng)操作。
1.1 功能說明
腳本核心作用:
1、自動(dòng)匹配Lib/iOS(真機(jī)庫)與Lib/iOS-simulator(模擬器庫)的同名.a文件
2、移除模擬器庫中的arm64架構(gòu)(避免與真機(jī)架構(gòu)沖突,導(dǎo)致IPA打包失?。?/p>3、合并生成通用靜態(tài)庫,支持在模擬器和真機(jī)環(huán)境下直接使用
1.2 使用步驟
按以下步驟執(zhí)行合并操作,無需額外配置(默認(rèn)路徑下):
1、將SDK解壓后,以根目錄作為工作目錄(或修改腳本中IOTC_ROOT參數(shù)指定路徑);
2、復(fù)制下方combine.sh腳本到SDK根目錄;
3、終端進(jìn)入SDK根目錄,執(zhí)行授權(quán)命令:chmod +x combine.sh;
4、執(zhí)行合并腳本:./combine.sh;
Lib/iOS_all 目錄(可通過OUT_DIR參數(shù)自定義)。1.3 合并腳本(combine.sh)
1.4 參數(shù)配置
| 參數(shù)名 | 類型 | 默認(rèn)值 | 說明 |
|---|---|---|---|
| IOTC_ROOT | String | . | SDK根目錄路徑,如腳本不在根目錄,需改為絕對(duì)路徑(例:/Users/xxx/SDK) |
| OUT_DIR | String | iOS_all | 通用庫輸出目錄,位于Lib文件夾下(默認(rèn)路徑:Lib/iOS_all) |
| TMP_DIR | String | tmp | 臨時(shí)處理目錄,用于存放移除架構(gòu)后的模擬器庫,腳本執(zhí)行后自動(dòng)刪除 |
1.5 結(jié)果驗(yàn)證
執(zhí)行以下命令驗(yàn)證合并是否成功,若輸出包含多架構(gòu)則表示合并有效:
成功示例輸出:
1.6 注意事項(xiàng)
1. 目錄要求:SDK需包含 Lib/iOS(真機(jī)庫)和 Lib/iOS-simulator(模擬器庫),路徑不一致需修改腳本中的目錄名稱;
2. 依賴工具:需安裝Xcode及命令行工具,執(zhí)行 xcode-select --install 可完成安裝(依賴lipo工具進(jìn)行架構(gòu)處理);
3. 文件名匹配:真機(jī)庫與模擬器庫的.a文件名必須完全一致(例:libiotc.a),否則會(huì)跳過合并;
4. 權(quán)限說明:若執(zhí)行腳本時(shí)提示權(quán)限不足,重新執(zhí)行授權(quán)命令:chmod +x combine.sh;
5. 沖突處理:若輸出目錄已存在同名庫文件,腳本會(huì)自動(dòng)覆蓋,無需手動(dòng)刪除。
