寫在前面
我的項(xiàng)目DDD是swift 的,然后其中一個(gè)projectA 是swift 的,然后projectA中有使用OC混編渔肩,還在projectA中做了module磁餐,最后projectA 的動(dòng)態(tài)庫給到DDD用,DDD在打包的時(shí)候如題
這里面也是踩了不少坑。建議Swift制作Framework一些配置項(xiàng)的設(shè)置參考這個(gè)
解決過程
網(wǎng)上的多是類似于這樣的多數(shù)是說靜態(tài)庫放到enbed frameworks 里面了。但是我的framework就是動(dòng)態(tài)庫,所以問題還是要看日志
查看verbose.log(如果這個(gè)沒有東西卸勺,就挨個(gè)log,查看箩绍,總歸不同的問題記錄在不同的log的)
說的都是找不到libswiftXX的動(dòng)態(tài)庫
2020-03-08 12:15:29 +0000 [OPTIONAL] Can't have a profile, not a bundle at
<DVTFilePath:0x7fcd52a12e30:'/Users/XXX/Library/Developer/Xcode/Archives/2020-03-08/OVPNTestApp 2020-3-8, 8.14 PM.xcarchive/Products/
Applications/Gloable.app/Frameworks/libswiftDarwin.dylib'>
我的項(xiàng)目DDD是swift 的孔庭,然后log里有問題的全是libswiftXXX的dylib可執(zhí)行文件
所以應(yīng)該是和swift的編譯有關(guān)。至少是swift的系統(tǒng)庫
然后就把2020-3-8, 8.14 PM.xcarchive/Products/ Applications/Gloable.app/Frameworks/libswiftDarwin.dylib
在finder 中去看看材蛛,發(fā)現(xiàn)報(bào)錯(cuò)中的那些信息都在啊
然后一頓搜索
解決
最后自己對(duì)照著新建的demo圆到,網(wǎng)絡(luò)上文章里的可能原因,一個(gè)個(gè)對(duì)比卑吭,終于找到原因了芽淡。
我自己引入自己開發(fā)的swift 的framework 動(dòng)靜態(tài)設(shè)置沒有問題,系統(tǒng)的動(dòng)態(tài)庫比如NetworkExtension.framework 如果你設(shè)置錯(cuò)豆赏,編譯直接報(bào)錯(cuò)的挣菲。問題就在于這個(gè)Pods_[projectName].framework ,這是pods腳本創(chuàng)建的,我不知道啥時(shí)候改了它的embed屬性掷邦,導(dǎo)致打包報(bào)錯(cuò)白胀。把它改成不是embed的就可以打包了。這玩意影響了我swift項(xiàng)目對(duì)于系統(tǒng)庫的編譯引用抚岗。
總結(jié)
- swift 項(xiàng)目引入不同語言編寫的動(dòng)態(tài)靜態(tài)庫或杠,對(duì)于編譯設(shè)置有一定的要求,特別是混編的宣蔚。所以向抢,不可避免的一些配置屬性可能不了解,這次又認(rèn)識(shí)了幾個(gè)胚委,在參考部分我都羅列出來了
- framework和embed的關(guān)系是在target==>general==>Frameworks,Libraries,and Embeded Content 中配置的挟鸠,其中的三個(gè)屬性值,有三個(gè)亩冬,這次是搞清楚干啥的了
- 我的項(xiàng)目比Swift制作Framework一些配置項(xiàng)的設(shè)置里面的demo還要復(fù)雜一些艘希,在文中開頭有說結(jié)構(gòu),其中的modulemap也是花了我兩天時(shí)間,但是沒有做記錄覆享,因?yàn)槟莻€(gè)玩意我還沒有完全搞懂鸠姨。
- 定好語言,能不混編就不要混編淹真,用你最熟悉的一套搞下來,能省不少事连茧。不過換個(gè)角度核蘸,嘗試對(duì)自己而言的新東西總歸要付出一定的時(shí)間精力的
參考
Embedding Content with Swift
dyld: Library not loaded: @rpath/libswiftCore.dylib
Swift制作Framework一些配置項(xiàng)的設(shè)置