DTCoreText的集成

      由于项目中要处理富文本,加载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:点击我

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (原文:How to Create a Framework for iOS 作者:Sam Davies 译者:Mr...
    王宪岭阅读 10,382评论 3 23
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,270评论 25 709
  • 仅以方便自己查阅记录前言1.静态库和动态库有什么异同?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗...
    190CM阅读 9,802评论 0 4
  • 原文链接在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件。然而你可能不清楚怎样让其他开发者更方...
    _冷忆阅读 7,122评论 9 5
  • 我们都在等待 等一个刚刚好到来的人 在这之前 我们只需努力的成为更好的自己 这样 如果有一天遇见了对的他 才足以相配
    翾譞紫琳阅读 3,085评论 0 3