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

你可能感兴趣的:(iOS制作framework技术总结(内部及外部引用第三方库))