iOS framework制作问题记录

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包下该文件的路径,生成的文件直接进行覆盖,生成完毕后,直接拷贝走使用。

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

推荐阅读更多精彩内容