打包静态库生成bundle流程

xcode 静态库资源文件及xib封装
目前有个需求,需要把.xib封装到静态库中,试了很多种方法都不行,最后看到这篇文章 ,它是从 iOS Library With Resources 翻译过来的,图片没有显示(原文有)。

  这里主要是把静态库种的.xib封装到bundle中,然后把静态库内链到工程中。

  以下是这篇文章主要流程:

  

1 添加资源Bundle Target

 

  资源必须是单独编译成Bundle才能使用,所以需要为MyLibrary(静态库target)项目生成另一个Bundle Target

  选择MyLibrary(静态库target)项目,在右边面板中点Add Target->MAC OS X->FRAMEWORK &LIBRARY->Bundle

  220x159

  需要说明,bundle项目只有MAC OS X里才有,但实际上也是可以用于IOS的,只是需要做些改动,即下面的第2步.

  

2 修改资源bundle target

 

  把bundle target修改成ios能用的,看图

  Build Settings设置

  1)Architectures为Standard (armv7)

  2)Build Active Architecture Only 为指定的IOS版本

  220x159

  

3 添加 XIB的输出

 

  设置XIB为输出到BUNDLE,这一步相当于VS c#开发里把某个图片设置编译动作为嵌入资源.

  选择Mylibrary(静态库target)项目,targets选择MyLibraryResources(静态库资源target),Build Phases面板

  Copy Bundle Resources点+选择xib文件

  220x159

  

4 关联静态库引用

 

  把主程序和静态库做关联,这样省得每次要手动添加静态库的.a文件

  要说明下:我原本以为编译主程序会自动编译静态库,实际上做的并没有那么好,我改动了静态库的XIB内容,但编译主程序后发现内容还是上次的,所以我每次都是clean build.

  编辑Scheme(菜单Product->Edit Scheme)

  选择Build

  点+,选择MyLibrary(静态库target)和MylibraryResources(静态库资源target)项目

  这样的话,每次build都可以编译多个target和scheme。

  220x159

  

5 最后设置主程序项目

 

  选择MyLibraryResource(静态库资源target)项目在Build Settings面板里

  设置User Header Search Paths为$(BUILT_PRODUCTS_DIR),注意建议把Recursive勾上(递归搜索)

  

6 使用 

 

  选择要使用静态库的工程,target->build phases->copy bundle resources,点击"+",add other 添加MylibraryResources.bundle,一般在build->release-iphoneos目录。

  重写controller的init

  ResourcesBundle=资源文件bundle

  - (id)init

  {

  NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundlemainBundle] URLForResource:ResourcesBundlewithExtension:@"bundle"]];

  if ((self = [super initWithNibName:[NSStringstringWithUTF8String:object_getClassName(self)] bundle:bundle]))

  {

  //code

  }

  return self;

  }

关于xib中的图片

 

  如果xib中有图片,可能会报以下的警告,然后图片显示不成功。

  Could not load the image 'xxx.png' referenced from a nib in the bundle with identifier "com.xxx.xxx"

  解决方法:

  手动指定xib中的图片

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值