1、新建工程

2、拖进来需要制作成framework的文件(可以自己在工程里新建 亦可拖入) 用到的三方库比如AFN建议用pods引入
3、设置静态库 选中工程 trarget->Build Setting 搜索linking
首先是Dead Code Stripping设置为NO,网上对此项的解释如下,大致意思是如果开启此项就会对代码中的”dead”、”unreachable”的代码过滤,不过这个开关是否关闭,似乎没有多大影响,不过为了完整还原framework中的代码,将此项关闭也未曾不可。
然后将Link With Standard Libraries关闭,我想可能是为了避免重复链接
最后将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库。

4、修改架构
当Debug和Release属性设置为YES时,是为了debug的时候编译速度更快,它只编译当前的architecture版本;
当而设置为NO时,会编译所有的版本;
编译出的版本是向下兼容的,比如你设置值为YES,用iPhone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。
所以,一般Debug模式可以选择设置为YES,Release的时候要改为NO,以适应不同设备。

5、设置我们有那些头文件是需要公开的 格式为 <工程名/类名>

6、第五步添加的头文件里面的类都要在这里拖进 public下面

7、手动打包
第一步)、选中模拟器,command+B
第二步)、选中真机,command+B )
第三步)、在Products中找到framework文件(注意不是在Framework文件夹下找 是Products)

8、接下来就是生成我们.framework文件的最后一步了:利用终端把模拟机和真机的文件我们合并成一份:(为了模拟器和真机都可以使用)
在终端中输入命令:lipo -create 模拟机和真机的FrameWorkTest文件路径(直接拉到终端就会显示)
一个输出路径
lipo -create (此处请填写真机ppsdk文件路径) (此处填写模拟器ppsdk文件路径) -output 自定义合成文件存储路径(合成文件的名字ppsdk)

回车后 桌面的文件夹会出现一个文件 复制后分别去真机和模拟器对应ppsdk.framework文件夹下替换ppsdk文件
9、 测试支持的处理器 lipo -info 后面跟上左面文件夹里的那个文件 不出意外的话是 armv7 i386 x86_64 arm64这四个 armv7必须要有 是支持真机的 不然就失去制作库的意义了

10、找到真机下的ppsdk.framework 拷贝到新建的demo里面 这就是我们常见的sdk 就可以引入使用了
ps: 制作framework的时候文件内部一定不能出错 即使framework编译success 但是导入到demo中会出现Could not build module 'sdk' 先检查自己的demo是否有误 看library是否配置好 如果无误就是framework里面头文件可能不规范
网友评论