【转载】iOS制作framework技术总结(内部及外部引用第三方库)

 

外部引用

在制作framework时,如果framework中使用了其他的第三方framework或者静态.a的库。为了防止和集成方的项目工程中使用了同一个第三方库。可以使用外部引用的方式,集成方必须同时导入所需要的第三方库以及我们制作的framework库,最终解决共用同一个第三方库引起的项目冲突问题。

制作步骤:

1.在xcode工程中选择BuildSettings,搜索Mach-O Type,选择Static Library 静态链接的打包形式,如下图(外部引用步骤1):

外部引用1.png


2.将指定的第三方framework库或者静态.a库文件拖入项目工程指定路径下。如下图:
注意:拖入时Add to targets选项中的勾选项取消

 

外部引用2.png

 

3.在xcode工程中选择BuildSettings,搜索Search Paths,如果第二步拖入的是动态framework,在Framework Search Paths下添加该framework所在的工程路径;如果是.a静态库,在Library Search Paths下添加该库的工程路径,如图:

 

外部引用3.png

 

4.添加framework所需的系统依赖库
5.选择自己的framework库对应target,检查Build Phases --> Link Binary With Libraries 中是否动态链接所需要的系统依赖库以及第三方库,如图:

 

外部引用4.png


6.以上操作均没问题,选择自己的framework工程target,编译成功,在products文件夹下会生成一个自己的framework。

外部引用5.png


7.将编译生成的framework以及framework所需的第三方库手动拖入的项目工程。在项目工程中同样导入指定的必要的系统库,检查链接。编译运行。如图:

外部引用6.png

内部引用

在制作framework时,如果framework中使用了其他的第三方framework或者静态.a的库。并且集成方不考虑framework中包含的第三方库冲突问题,集成方可以直接导入我们制作的framework库。

制作步骤:

1.在xcode工程中选择BuildSettings,搜索Mach-O Type,选择Dynamic Library 静态链接的打包形式,如下图:

 

内部引用1.png

 

2.动态链接在framework中使用的第三方库,如图

  • 如果第三方库是.a静态库,需要将.a静态库手动拖入到自己的framework工程中,并且在Add to targets勾选指定的target

    内部引用2.png

     

  • 如果第三方库是framework动态库,直接在Build Phases --> Link Binary With Libraries中链接本地的framework动态库的位置

    内部引用3.png


    3.检查BuildSettings --> Search Paths下,Framework Search Paths和Library Search Paths的路径,如图:

    内部引用4.png

     

4.选择自己的framework工程target,编译成功,在products文件夹下会生成一个自己的framework。

 

内部引用5.png

 

5.直接将自己编译成功的framework文件导入到集成项目工程。

 

内部引用6.png


6.在工程中选择General --> Frameworks,Libraries,and Embedded Content中找到自己制作的framework动态库,选择Embed & Sign。最后编译运行项目。

内部引用7.png



作者:過眼浮雲
链接:https://www.jianshu.com/p/e5726852bb82
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值