本文共 1111 字,大约阅读时间需要 3 分钟。
创建bundle
新建bundle项目,将资源文件(xib,图片,文件...)拖进去直接编译即可.
大坑:直接的iPhone项目是不能建bundle项目的,建一次X-code崩一次,开始以为X-code6怎么这么弱,后来才脑残的发现自己是在iPhone项目上见mac的工程.(貌似可以直接在项目中建mac项目,可是要改一大堆配置云云.. 还是新建一个项目的方便)
note:项目中引用bundle的xib要这样紫.(loginBundle当然是你新建bundle的名字)
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
NSString * bundlePath = [[ NSBundle mainBundle] pathForResource: @"loginBundle" ofType :@ "bundle"];
NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];
self = [super initWithNibName:@"MXHomeViewController" bundle:resourceBundle];
if (self) {
}
return self;
}
创建静态库
新建Cocoa touch Static Library项目,将需要编译的文件拖进去(资源文件除外)编译即可.注意要在真机和模拟器上都编译一次.真机上生成的.a文件只能在真机上运行,同样模拟器上生成的.a文件只能在模拟器上运行.如果想其又要在模拟器上运行又要在真机上运行,在命令行运行 (当然前提是要进入所在目录).(运行的时候根据需要选择debug还是release版本)
lipo -create Debug-iphoneos/liblogin.a Debug-iphonesimulator/liblogin.a -output login.a
大坑:先在模拟器上编译出的.a文件是红色的,不要以为编译错了,其实已经编译完成,真机上编译就直接是编译成功黑色的
神坑:不要再把其他项目的二进制文件编译进去
天坑:注意库的引用.如果静态库中包含了Category(分类),要在工程文件中配置OtherLinker Flags为 -Objc .
very importent : 导入重新编译的静态库时要删除build 目录 ,删除模拟器上程序.因为静态库只会加载一次.
转载地址:http://ksnpi.baihongyu.com/