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