首先,在OC項目的Podfile文件中添加如下
use_frameworks!
pod 'PromiseKit', '~> 4.2.2' #任意一個swift庫
然后pod install
接著編譯command+r
會有報錯。
先不管報錯,xcode提示修改項目配置,主要是修改
ALWAYS_SEARCH_USER_PATHS = NO;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
如果沒有提示,請自行到project.pbxproj文件中找到ALWAYS_SEARCH_USER_PATHS改為NO;
在其上面添加一行ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
然后就是修改報錯
以前沒有加入use_frameworks!
前OC調用Pod引入的第三方庫時,是這樣調用的#import <YYKit.h>
,現在全部給它加上frame前綴#import <YYKit/YYKit.h>
記住不要按照xcode的提示去修改,它提示你把<>
改為""
,這樣就真的找不到頭文件了。
這是一個艱苦的過程,我足足改了100+個文件,還好有批量替換?
如果你也和我一樣用到mattt大神的Ono,或者其他比較古老的第三方庫,或許你也碰到這樣的問題(如果沒看到,clean后再看)
引用Ono.h地方
是的,已經添加frame前綴Ono了,還是報錯;
一共報了2處錯誤,第一個就是它,一開始以為是frame前綴拼錯了,用代碼提示來寫也不對。
跳轉到Ono.h文件里邊也沒發現報錯
Ono.h.png
想著處理第二個問題再說咯,這時發現了問題的端倪
第二個問題才是重點! ONOXMLDocument.h.png
問題描述是:
Include of non-modular header insider framework module 'xxxx'
解決方案是在Build Setting中修改
Allow Non-modular includes in Framework Modules
為YES