DTCoreText的集成

? ? ? 由于項(xiàng)目中要處理富文本,加載html字符串,所以就選擇了DTCoreText這個(gè)第三方庫。這個(gè)框架很坑爹啊,以往的第三方庫直接Download,拖入自己的項(xiàng)目中就能用,這個(gè)庫卻不行,下載下來缺少文件,運(yùn)行不了,只能按照官方提供的導(dǎo)入方式:點(diǎn)擊我。

? ? ? 從這個(gè)文檔可以看出,官方提供了三種安裝方式:

? ? ?1、使用cocoapods

? ? ?2、作為一個(gè)子項(xiàng)目(sub-project)

? ? ? 3、作為一個(gè)Framework

? ? ? 在這里我介紹下第三種安裝方式,即作為Framework來使用。

一 、下載源代碼


在終端使用以下命令將DTCoreText項(xiàng)目下載到自己的電腦上

git clone --recursive https://github.com/Cocoanetics/DTCoreText.git Externals/DTCoreText

二、編譯Framework


打開下載好的項(xiàng)目,確定這個(gè)項(xiàng)目能正常運(yùn)行,然后調(diào)為Release模式:

由于下載下來的項(xiàng)目開發(fā)環(huán)境是8.0,就是說你最終得到的framework僅支持8.0及以上的項(xiàng)目。由于我的項(xiàng)目最低支持7.0,所以要調(diào)下


選擇DTCoreText(iOS )這個(gè)選項(xiàng),分別選擇真機(jī)和模擬器進(jìn)行編譯,如圖:

完成后,Xcode中的File -> Project Settings,會(huì)出現(xiàn)這樣

點(diǎn)擊DerivedData后面的小箭頭,進(jìn)入到編譯后產(chǎn)生的文件夾中,即:

Release-iphoneos文件夾,和Release-iphonesimulator文件夾,分別是真機(jī)和模擬器編譯后對(duì)應(yīng)的文件,每個(gè)文件夾下有四個(gè)文件

三 、 合并Framework

? ? ?模擬器的framework只能用于模擬器,真機(jī)的framework只能用于真機(jī),所以我們要將兩者合并為一個(gè),使其能夠在模擬器和真機(jī)上同時(shí)使用。

? ? 將Release-iphoneos和Release-iphonesimulator文件夾拷貝到桌面上,分別合并DTCoreText.framework、DTFoundation.framework。打開終端,分別輸入后回車

如果操作成功,在你的桌面上會(huì)出現(xiàn)兩個(gè)這樣的文件:

然后把這兩個(gè)文件分別替換掉Release-iphoneos文件夾中DTCoreText.framework下的DTCoreText文件,和DTFoundation.framework下的DTFoundation文件。這時(shí)候,Release-iphoneos文件夾中的DTCoreText.framework和DTFoundation.framework正是我們所需要的framework。不容易啊,終于成功了,將這兩個(gè)framework拷貝到桌面上。

四 、將framework集成到自己的項(xiàng)目中

? ? ? 新建一個(gè)自己的工程,將這兩個(gè)framework拖入到工程中,導(dǎo)入頭文件#import,輸入測試代碼:

這時(shí)候你運(yùn)行,程序可能會(huì)崩潰:

dyld: Library not loaded: @rpath/DTCoreText.framework/DTCoreText

Referenced from: /Users/lemon4ex/Library/Developer/CoreSimulator/Devices/71B50DE8-D733-43C8-A99D-4DE1247C3516/data/Containers/Bundle/Application/4783EEC4-CEBD-4FD9-872A-9CF606472853/xfish.app/xfish

Reason: image not found

不要急,這時(shí)候你需要在Xcode中設(shè)置一下:

OK,再次運(yùn)行程序,大功告成!??!

Demo地址請(qǐng)至Github:點(diǎn)擊我

最后編輯于
?著作權(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)容

  • (原文:How to Create a Framework for iOS 作者:Sam Davies 譯者:Mr...
    王憲嶺閱讀 5,071評(píng)論 3 23
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評(píng)論 25 708
  • 僅以方便自己查閱記錄前言1.靜態(tài)庫和動(dòng)態(tài)庫有什么異同?靜態(tài)庫:鏈接時(shí)完整地拷貝至可執(zhí)行文件中,被多次使用就有多份冗...
    190CM閱讀 4,529評(píng)論 0 4
  • 原文鏈接在上一篇教程(中譯版)中,你學(xué)到了怎么樣創(chuàng)建一個(gè)可復(fù)用的圓形旋鈕控件。然而你可能不清楚怎樣讓其他開發(fā)者更方...
    _冷憶閱讀 2,611評(píng)論 9 5
  • 我們都在等待 等一個(gè)剛剛好到來的人 在這之前 我們只需努力的成為更好的自己 這樣 如果有一天遇見了對(duì)的他 才足以相配
    翾譞紫琳閱讀 476評(píng)論 0 3

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