1.the linked framework '' is missing one or more required by this target: i386
解决方法:
将project->Build Setting->Architectures->Build Active Architecture Only->Debug设置为YES。
Build Active Architecture Only:是否只编译当前设备适用的指令集(如果这个参数设为YES,使用iPhone 6调试,那么最终生成的一个支持ARM64指令集的Binary。一般在DEBUG模式下设为YES,RELEASE设为NO)
2.制作过程
2.1 打开Xcode,新建工程。
不要选择“Application”,选择“Framework & Library”。选择第一个,然后Next。
2.2 创建功能类,在新创建的类中声明方法并实现。
2.3 更改配置参数
在TARGETS下选中工程,在Build Settings下更改几个参数。
如果集成的项目支持 bitCode 就设置成yes 不支持就设置成NO:
设置Headers,将需要公开的头文件拖至Public下:
3.打包framework
3.1 选中Generic iOS Device,编译程序 (只支持手机格式)
3.1.1 编译成功后,选中products下的framework,然后右键show in finder。
3.1.2 将framework拷贝保存,这就是制作的framework。
3.2 选中模拟器,编译程序 (只支持模拟器格式)
3.2.1 编译成功后,选中products下的framework,然后右键show in finder。
3.2.2 将framework拷贝保存,这就是制作的framework。
4. 合并framework
为了framework 支持真机 也支持模拟器 将两个framework 合并
我们通过终端命令将两个framework合为一个模拟器和真机都可使用的framework。
1 在终端 输入 lipo -info加真机上的这个文件路径
注意: 文件末尾要带上framework的名字
lipo-info xxxFramework.framework/xxxFramework//后加库名
看最后 arm64 说明是真机,如此方法测试模拟器文件,需得到i386 x86_64才对。
需要将真机和模拟器framework包中这个文件合并
lipo -create 真机路径/库名 模拟器路径/库名 -output 真机路径/库名
可以直接将最终生成的文件路径设置为真机Framework包下该文件的路径,生成的文件直接进行覆盖,生成完毕后,直接拷贝走使用。