Xcode整个项目打包成静态库

1.项目目录含有多语言,图片等内容


image.png

将项目文件分成两类,一类是纯代码,二类为图片,多语言等文件
打framework时引入的为下面文件


image.png

2.新建framework


image.png

3.cocoapods导入项目需要的第三方库,然后将刚才的几个文件拖入到项目中,创建framework默认会带FDASDK.h和info.plist文件


image.png

4.引入PCH



5.将build Active architecture only改为NO


image.png

6.将其修改静态库
image.png

7.修改代码,将appDelegate代码进行抽取成另一个类,将AppDelegate换一个名称或者新建一个类来对其内容进行抽取封装,等下需要公开header让别人引用,别人项目本身有appDelegate,所以换一个名称,防止冲突,解决代码爆红后.
8.公开头文件,将需要公开被别人用的.h文件从project拖入到public,将所有你公开的文件按要求在FDASDK.h中引入



image.png

9.编译生成framework,在finder中显示
image.png

image.png

10.由于之前的只是代码打包成静态库,而对于文件并没有引入,就算静态库导入别人的项目会看不到图片/文字(非多语言可看到),开始创建bundle,然后你那些图片多语言文件啥的全部拖进来.


image.png

image.png

11.修改配置,将combine改为NO,删除installtion Diretory的值,修改skip install为YES

image.png

12.编译生成bundle资源包


image.png

13.然后我们回到FDASDK framework的工程目录,因为我们这个时候图片等资源的路径都变了,所以我们不能再按原来的方式引用文件和图片了,再图片和多语言路径目前都拼接一个bundle包的路径.这个时候不要将bundle包拖进来哦,要不然打framework会失败的.


image.png

image.png

14.拖入第三方framework,配置framework路径,在build setting中添加第三方framework的路径,
"${SRCROOT}/FDASDK/WhirlyGlobeSDK/WhirlyGlobe-Maply_Distribution_2_5/WhirlyGlobeMaplyComponent.framework/Headers"


image.gif
image.gif

15.重新编译framework,这个时候生成的才是我们需要的framework
16.使用方式,创建一个新工程,cocoapods导入framework依赖的库,1.将bundle包,framework包,第三方framework包,全部拖入到新建项目中,添加第三方framework依赖的系统库,引入头文件,使用公开的header内的.h文件

image.gif

image.gif

17.在编译过程中可能会包应用头文件找不到的问题,或者报一些其他的小问题,网上找一找都是可以得到解决掉的

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

推荐阅读更多精彩内容