上一份博客已经说过动态framework使用,除了需要link,还需要工程配置的general配置项中embeded binary library将动态framework加入,
而静态库使用与动态库有所区别:
由于xmpp库中含有类别(category),所以需要修改编译选项Other Linker Flags设为“-ObjC”
另外"_dns_free_resource_record"这样的错误,是由于缺少库:添加libresolv.dylib库,就可以了。
这样引入静态sdk已经没问题了,但是运行起来还会找不到xmpp的coredata数据库文件,因为framework里面虽然有,但是xcode并没有加载,所以需要手动配置,首先将这些coredata数据库文件打包到一起为bundle,然后再引入工程即可。
1. 创建bundle
创建工程,然后注意选择os X的工程才能看到bundle
- (NSBundle *)managedObjectModelBundle
{
return [NSBundle bundleWithClass:[self class]];
}
修改为- (NSBundle *)managedObjectModelBundle
{
NSString *resourceBundle = [[NSBundle mainBundle] pathForResource:@"bundle文件名" ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:resourceBundle];
return bundle;
}
这样将编译得到的静态库和bundle一起引入想要使用这个sdk的应用工程中即可。