背景:由于業(yè)務(wù)需要維護(hù)大量邏輯相似但是又有細(xì)微不同的應(yīng)用,之前采用多target構(gòu)建相似App的做法,之后由于業(yè)務(wù)持續(xù)擴(kuò)大,發(fā)現(xiàn)在一個(gè)控制器可能會(huì)存在多個(gè)判斷,增加耦合度狸眼,增加后續(xù)維護(hù)難度。之后對(duì)項(xiàng)目進(jìn)行重構(gòu)浴滴,分別對(duì)兩個(gè)項(xiàng)目采用了靜態(tài)庫(kù)(.a)和框架(framework)的方式來(lái)將相似邏輯抽離成為主干拓萌,差異化的地方,各自project中實(shí)現(xiàn)升略。這里說(shuō)明一下微王,framework方式下,出現(xiàn)的崩潰錯(cuò)誤dyld: Library not loaded: @rpath......
在真機(jī)運(yùn)行的時(shí)候降宅, bulid成功骂远,但是應(yīng)用在啟動(dòng)頁(yè)面就崩潰了。出現(xiàn)的關(guān)鍵錯(cuò)誤搜索是:
1腰根、dyld`__abort_with_payload
2激才、dyld: Library not loaded: @rpath
3、Reason: no suitable image found
我發(fā)生的具體錯(cuò)誤:
dyld: Library not loaded: @rpath/TYKYGovApprovalFramework.framework/TYKYGovApprovalFramework
Referenced from: /var/containers/Bundle/Application/CC63B6C4-AF48-4540-9E8F-501FE7F54A4E/ZhongKai.app/ZhongKai
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/CC63B6C4-AF48-4540-9E8F-501FE7F54A4E/ZhongKai.app/Frameworks/TYKYGovApprovalFramework.framework/TYKYGovApprovalFramework: no matching architecture in universal wrapper
顯示集成主干Framework錯(cuò)誤额嘿,蘋果官方是允許集成靜態(tài)庫(kù)瘸恼,但是不允許集成動(dòng)態(tài)庫(kù),在創(chuàng)建Framework的時(shí)候册养,Xcode 首先選擇的是Dynamic Library
這里改為Static Library 即可东帅。
2018.07.01
Static Library Archive打包成功,但是Export的時(shí)候會(huì)出現(xiàn)如下錯(cuò)誤:
Found an unexpected Mach-O header code: 0x72613c21
搜索出的解決方案有:
將靜態(tài)庫(kù)的添加從Embedded Binaries改為直接在Link Frameworks and Libraries添加球拦。這樣打包出來(lái)可以成功靠闭,但是依賴Framework的文件資源(圖片和xib文件)加載不到帐我。
后面的解決方案:
bebug模式的下的running:Framework為Static Library
Archive(release)將Framework改為Dynamic Library
(有大神有更好的請(qǐng)幫忙指出來(lái),謝謝)