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里面的同名文件就行了;