OC項(xiàng)目加入swift第三方庫遇到的坑

首先,在OC項(xiàng)目的Podfile文件中添加如下

use_frameworks!
pod 'PromiseKit', '~> 4.2.2' #任意一個(gè)swift庫

然后pod install
接著編譯command+r
會(huì)有報(bào)錯(cuò)。
先不管報(bào)錯(cuò),xcode提示修改項(xiàng)目配置,主要是修改

ALWAYS_SEARCH_USER_PATHS = NO;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

如果沒有提示,請(qǐng)自行到project.pbxproj文件中找到ALWAYS_SEARCH_USER_PATHS改為NO;
在其上面添加一行ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

然后就是修改報(bào)錯(cuò)
以前沒有加入use_frameworks!前OC調(diào)用Pod引入的第三方庫時(shí),是這樣調(diào)用的#import <YYKit.h>,現(xiàn)在全部給它加上frame前綴#import <YYKit/YYKit.h>
記住不要按照xcode的提示去修改,它提示你把<>改為"",這樣就真的找不到頭文件了。
這是一個(gè)艱苦的過程,我足足改了100+個(gè)文件,還好有批量替換?

如果你也和我一樣用到mattt大神的Ono,或者其他比較古老的第三方庫,或許你也碰到這樣的問題(如果沒看到,clean后再看)

引用Ono.h地方

是的,已經(jīng)添加frame前綴Ono了,還是報(bào)錯(cuò);
一共報(bào)了2處錯(cuò)誤,第一個(gè)就是它,一開始以為是frame前綴拼錯(cuò)了,用代碼提示來寫也不對(duì)。
跳轉(zhuǎn)到Ono.h文件里邊也沒發(fā)現(xiàn)報(bào)錯(cuò)
Ono.h.png

想著處理第二個(gè)問題再說咯,這時(shí)發(fā)現(xiàn)了問題的端倪

第二個(gè)問題才是重點(diǎn)! ONOXMLDocument.h.png

問題描述是:Include of non-modular header insider framework module 'xxxx'
解決方案是在Build Setting中修改Allow Non-modular includes in Framework ModulesYES

參考資料:include of non-modular header inside XXXX

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容