DTCoreText的集成

作者: Sky521 | 来源:发表于2016-05-18 11:29 被阅读4864次

      由于项目中要处理富文本,加载html字符串,所以就选择了DTCoreText这个第三方库。这个框架很坑爹啊,以往的第三方库直接Download,拖入自己的项目中就能用,这个库却不行,下载下来缺少文件,运行不了,只能按照官方提供的导入方式:点击我

      从这个文档可以看出,官方提供了三种安装方式:

     1、使用cocoapods

     2、作为一个子项目(sub-project)

      3、作为一个Framework

      在这里我介绍下第三种安装方式,即作为Framework来使用。

一 、下载源代码


在终端使用以下命令将DTCoreText项目下载到自己的电脑上

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

二、编译Framework


打开下载好的项目,确定这个项目能正常运行,然后调为Release模式:

由于下载下来的项目开发环境是8.0,就是说你最终得到的framework仅支持8.0及以上的项目。由于我的项目最低支持7.0,所以要调下

选择DTCoreText(iOS )这个选项,分别选择真机和模拟器进行编译,如图:

完成后,Xcode中的File -> Project Settings,会出现这样

点击DerivedData后面的小箭头,进入到编译后产生的文件夹中,即:

Release-iphoneos文件夹,和Release-iphonesimulator文件夹,分别是真机和模拟器编译后对应的文件,每个文件夹下有四个文件

三 、 合并Framework

     模拟器的framework只能用于模拟器,真机的framework只能用于真机,所以我们要将两者合并为一个,使其能够在模拟器和真机上同时使用。

    将Release-iphoneos和Release-iphonesimulator文件夹拷贝到桌面上,分别合并DTCoreText.framework、DTFoundation.framework。打开终端,分别输入后回车

如果操作成功,在你的桌面上会出现两个这样的文件:

然后把这两个文件分别替换掉Release-iphoneos文件夹中DTCoreText.framework下的DTCoreText文件,和DTFoundation.framework下的DTFoundation文件。这时候,Release-iphoneos文件夹中的DTCoreText.framework和DTFoundation.framework正是我们所需要的framework。不容易啊,终于成功了,将这两个framework拷贝到桌面上。

四 、将framework集成到自己的项目中

      新建一个自己的工程,将这两个framework拖入到工程中,导入头文件#import,输入测试代码:

这时候你运行,程序可能会崩溃:

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

不要急,这时候你需要在Xcode中设置一下:

OK,再次运行程序,大功告成!!!

Demo地址请至Github:点击我

相关文章

网友评论

  • silence_xz:思路很清晰!
  • 凉秋落尘:将你demo的两个包导入,按照后面的步骤编译不过
  • 28c3d7f590a5:此方式添加后,当archive app store 版本包的时候,会保错
    ld: bitcode bundle could not be generated because '/Users/gaodaobin/Desktop/Jinmi/Jinmi/SDK/DTCoreText/DTCoreText.framework/DTCoreText' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build file '/Users/gaodaobin/Desktop/Jinmi/Jinmi/SDK/DTCoreText/DTCoreText.framework/DTCoreText' for architecture armv7
    不知道是什么原因,是不是编译时候设置的有问题?
  • MYS_iOS_8801:你好 请问你 使用的 DTCoreText之后能上架成功吗
  • 帅帅滴小胖次:你好,我这边是这样的HTML(<p><img src=\"http://***IP***/ueditor/php/upload/image/20171113/1510580860803601.png\"/></p><p><img src=\"http://***IP***/ueditor/php/upload/image/20171113/1510580858153347.png\"/></p><p><br/></p>)图片不能加载出来,要怎么处理图片的,请问楼主是怎么处理的啊,麻烦告知一下,谢谢。
  • 刘超_a594:你好,发你私信了,项目用的dtcoretext,但是不知道为什么图片显示不出来,老项目了,但是字可以
  • 悲伤的盖茨比:这种方式导入到app中,可以发布到appstore吗
    Rdxer:@悲伤的盖茨比 你还是 按照 cocopods 的方式导入吧 :sob: 上传的 时候一连串的 红色错误 :angry:
    悲伤的盖茨比:@Rdxer 我操,不会吧,报什么原因
    Rdxer:试过了 不行 报错 :sweat:
  • fc58ea6da6ab:我怎么多这么一个文件啊?RTDemoApp 模拟器那个文件夹...大神 求帮忙 308023168 有重谢!
  • 天怒人怨鬼见愁:按照你的方法一步步用了,然后碰到启动程序后还是crash,最后将Link Binary With Libraries中的Required改为Optional才好了
  • 鬼崇祟:我想问一下倒入的头文件是什么
    哇哇卡:@鬼崇祟 #import <DTCoreText/DTCoreText.h> 是不是这个?
  • Thnaos_Liu:Last login: Wed May 25 12:51:11 on ttys001
    bogon:~ liuyisi_leader$ lipo -create /Users/liuyisi_leader/Desktop/Release-iphoneos/DTCoreText.framework/DTCoreText /Users/liuyisi_leader/Desktop/Release-iphoneos/DTFoundation.framework/DTCoreText -output ~/Desktop/DTCoreText
    fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can't open input file: /Users/liuyisi_leader/Desktop/Release-iphoneos/DTFoundation.framework/DTCoreText (No such file or directory)
    bogon:~ liuyisi_leader$ lip -create /Users/liuyisi_leader/Desktop/Release-iphonesimulator/DTCoreText.framework/DTFoundation /Users/liuyisi_leader/Desktop/Release-iphonesimulator/DTFoundation.framework/DTFoundation -output ~/Desktop/DTFoundation
    -bash: lip: command not found
    bogon:~ liuyisi_leader$
  • Thnaos_Liu:Last login: Wed May 25 12:45:44 on ttys000
    bogon:~ liuyisi_leader$ lipo -create /Users/liuyisi_leader/Desktop/Release-iphoneos/DTCoreText.framework /Users/liuyisi_leader/Desktop/Release-iphoneos/DTFoundation.framework -output ~/Desktop/DTCoreText
    fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can't map input file: /Users/liuyisi_leader/Desktop/Release-iphoneos/DTCoreText.framework (Invalid argument)
    bogon:~ liuyisi_leader$ lip -create /Users/liuyisi_leader/Desktop/Release-iphonesimulator/DTCoreText.framework /Users/liuyisi_leader/Desktop/Release-iphonesimulator/DTFoundation.framework ~/Desktop/DTFoundation
    -bash: lip: command not found
    bogon:~ liuyisi_leader$
  • Thnaos_Liu:972491872 QQ
    972491872@qq.com 邮箱
  • Thnaos_Liu:求细节....操作..
    合并咋合并的.....路径操作有没有细节操作截图...
  • Thnaos_Liu:将Release-iphoneos和Release-iphonesimulator文件夹拷贝到桌面上,分别合并DTCoreText.framework、DTFoundation.framework。打开终端,分别输入后回车 你咋合并的...一直操作失败
    哇哇卡:@Thnaos_Liu 作者合并的是真机和模拟器的DTCoreText.framework里面的DTCoreText,你合并的路径少了DTCoreText,而且真机和模拟器两个文件路径之间要用空格隔开,-create 和-output 指令后面也需要有空格隔开,DTFoundation也是上述相同的操作,你检查一下吧。

本文标题:DTCoreText的集成

本文链接:https://www.haomeiwen.com/subject/ghiirttx.html