1. 程式人生 > >SDK開發心得之 合併失敗

SDK開發心得之 合併失敗

最近開發SDK, 總結下開發中遇到的問題; 希望對踩坑的朋友有點幫助,也給自己一個教訓,不再跳進去;

正常的開發SDK流程網上很多,就不再多贅述了:
http://blog.sina.com.cn/s/blog_14679a7d20102x51w.html
https://www.jianshu.com/p/c131baae4307

這篇文章只是記錄一些開發過程中本人遇到的小問題

在正常的流程打包生成的 .framework之後, 本人沒有使用指令碼合併程式碼, 而是開啟終端手動執行合併
lipo -create 真機.framework 模擬器.framework -output 合併.framework

在執行合併程式碼過程中出現合併失敗; 報的原因是
lipo 報錯 error:can’t map input file: xxxFramework.framework/ (Invalid argument)

其實是自己執行終端合併命令出錯了, 應該是:
lipo -info xxxFramework.framework/xxxFramework
合併的應該是.framework檔案下的xxxFramework

正確的應該是:
lipo -create 真機.framework/xxxFramework 模擬器.framework/xxxFramework -output 合併.framework

我是想著, 畢竟打出的包是要執行到真機上的, 所以就沒合併,但是在匯入到demo中的時候,會報錯, 找不到你匯入的SDK的路徑,你需要如圖才能找到你的SDK;
這裡寫圖片描述

這樣就能執行程式了, 但是在你接入專案之後要上傳App Store時,會報上傳失敗,這是一個嚴重的隱患; 導致你的專案無法打包上架;蘋果上架稽核是要先經過機器稽核的,上傳的時候檢測出你的專案少了一個什麼什麼架構 9*** 的錯誤;
所以,奉勸各位朋友,不要投機取巧, 一定要把真機和模擬器的SDK給合併了再接入專案工程中;

在合併SDK之後, 當你拖入 SDK時,主專案中就能自動識別你的SDK了;

XCode 9.2之前的版本匯入 xxx.bundle 時, 是需要再做一步匯入工作的, 但是在XCode 9.2之後就不用了, 如圖:
這裡寫圖片描述

希望對大家有幫助 jesse