iOS 创建Cocoa touch Static Library 静态库(二进制库)和bundle

创建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 目录 ,删除模拟器上程序.因为静态库只会加载一次.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值