網(wǎng)上看了很多文章,但是除了基本配置外,其他的一律沒(méi)解決我的問(wèn)題,經(jīng)過(guò)一天的摸索,終于在下班時(shí)分摸索成功了。下面給大家說(shuō)一下我踩的坑以及最后成功的方法。
cocoapods配置
咱們先從cocoapods說(shuō)起。因?yàn)?Apple 不允許開(kāi)發(fā)者構(gòu)建內(nèi)含 Swift 代碼的靜態(tài)庫(kù),所以要往 OC 項(xiàng)目中集成第三方 Swift 代碼的時(shí)候就只能通過(guò)動(dòng)態(tài)框架( framework )的形式了。而 CocoaPods 還不能很好地將 framework 和靜態(tài)庫(kù)混編到一起,所以要么不用 framework,要用就要全部用上。關(guān)于這一點(diǎn),CocoaPods 官博上的原話是這樣說(shuō)的:
This is an all or nothing approach per integrated targets, because we can’t ensure to properly build frameworks, whose transitive dependencies are static libraries.
所以,到這里匯集成一句話:Podfile文件中用 “use_frameworks!”。
Xcode配置
設(shè)置混編

當(dāng)項(xiàng)目中沒(méi)有.swift文件時(shí),需創(chuàng)建一個(gè).swift文件。第一次創(chuàng)建"Test.swift"文件時(shí),會(huì)彈窗提示你是否需要自動(dòng)生成一個(gè)橋接文件,這個(gè)時(shí)候你要毫不猶豫的點(diǎn)是!

但是如果假如你點(diǎn)了否,沒(méi)關(guān)系,稍微再多花點(diǎn)時(shí)間而已:
1.手動(dòng)創(chuàng)建一個(gè)頭文件,名字叫Your_Product_Name-Bridging-Header.h。
2.確保你的項(xiàng)目目錄下至少有一個(gè) .swift 文件。
3.確保在Targets的 Build Settings 里,Product Module Name是有值的。(如果沒(méi)有,直接設(shè)置為$(PRODUCT_NAME)就可以了)
還有一點(diǎn)需要注意,您的swift language version要和導(dǎo)入的第三方庫(kù)相匹配。

下面代碼中就是我踩的坑了。
代碼配置
按照網(wǎng)上的資料,我就直接在要使用第三方庫(kù)的地方直接導(dǎo)入“項(xiàng)目名-swift.h”文件并使用了庫(kù)中其方法,結(jié)果報(bào)錯(cuò)了,not find func...此刻的我毫不慌張,我把報(bào)錯(cuò)在網(wǎng)上一搜,結(jié)果懵逼了,搜不到!然后我還是毫不慌張,整整用了一下午的時(shí)間這試一下,那試一下,最后還真讓我給鼓搗成功了!具體方法如下:
在bridge文件中導(dǎo)入需要引用的第三方庫(kù)

在需要用到三方庫(kù)的地方導(dǎo)入“項(xiàng)目名-swift.h”文件以及橋接文件
兩個(gè)文件都要導(dǎo)入哦

最終大功告成!