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

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

2.新建framework

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

4.引入PCH

5.将build Active architecture only改为NO

6.将其修改静态库

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


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


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


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


12.编译生成bundle资源包


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


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


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


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