外部引用
在制作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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。