1.新建项目

2.在项目中新建类实现文件
3.修改Build Settings 下面相关配置

4.添加armv7s

5.将需要公开的头文件和实现文件进行分开

6.需要在MyFrameWorkTest.h文件(必须是公开的,否则无法引用)中将你所有要公开的.h文件引入。

7.打包 【分两种:手动打包、脚本打包】
手动打包:(1)选中模拟器,编译程序 command+B
(2)选中真机,编译程序 command+B
(3)在Finder中找到framework文件

8.合并模拟器和真机framework
lipo -create 真机framework路径 模拟器framework路径 -output 生成文件位置 【生成的文件是 .lipo 后缀,修改文件名字为库名,引入替换,导入framework使用】
总结:
1.在制作framework或者lib的时候,如果使用了category,则使用该FMWk的程序运行时会crash,此时需要在该工程 Other linker flags 添加两个参数 -Objc -all_load.
2.带有图片资源的需要把图片打包成Bundle文件,和framework一起拷贝到相应的项目中.
3.公开的类中如果引用的private的类,打包以后对外会报错,找不到那个private的类。
4。namespace冲突。静态库使用了某第三方库,项目也用了同样的第三方库,在编译的时候就会有 duplicate symbol 错误,因为有两份同样的第三方库。解决办法就是把用到的第三方库加上自定义前缀,包括类名、delegate协议、常量名,尤其需要注意Category的方法名要修改。
5.图片等资源文件用bundle 方法打包。一个简单制作bundle的方法:新建文件夹,重命名为YourSDK.bundle,然后Show Package Contents打开,加入图片。
网友评论