上一份博客已经说过动态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的应用工程中即可。
本文介绍如何解决静态SDK集成过程中遇到的问题,包括如何正确配置编译选项以支持类别(category),解决找不到CoreData数据库文件的问题,并提供具体的代码修改方案。
2万+

被折叠的 条评论
为什么被折叠?



