ios制作framework过程中遇到的问题

1.首先是bundle使用中的问题,bundle有两种做法:

其一是File->new->Target->OS X中的framework&library中可以新建一个bundle,这样的bundle每次添加新文件后需要编译后才能使用;

其二是直接在Finder中新建文件夹,将后缀名更改为.bundle就行了,这种类型不需要编译。

2.bundle中如果使用xib文件需要特别注意:

bundle中使用xib文件后,在运行过程中会报XXX not yet load的提示,所有bundle中如果有xib文件需要转为nib才能使用,命令:ibtool --errors --warnings --output-format human-readable-text --compile test.nib test.xib

3.如此生成的framework在新的工程中引用依然会出现如下错误提示:

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_FMDatabase",referenced from:

objc-class-ref in ViewController

objc-class-ref in AppDelegate

我出现这个问题的原因是直接用了product中生成的framework,在利用命令生成了一个模拟器和真机都通用的framework后就解决了,命令:lipo -create Release-iphoneos/testFramework.framework/testFramework Release-iphonesimulator/testFramework.framework/testFramework-output testFramework将生成的文件替换掉testFramework里面的同名文件就行了;

4.如果你编译的是静态库,并且静态库中有category,又会出现如下unrecognized selector sent to class这个错误提示,这时只需要修改一下你引用了这个静态库的文件的buildSetting就行了在加入-all_load如图:

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

推荐阅读更多精彩内容