library+bundle+resource

如何实现工程里面有library、bundle里面有xib等资源文件并且在工程里面进行调试

  • 建立.a静态库
    1、command+shift+N打开Choose a template for your new project界面选择Cocoa Touch Static Library,命名.a库为Mylibrary


    library+bundle+resource_第1张图片
    静态库.a.jpg

    2、开放header给外界调用,点击工程里面的TARGETS中的Mylibrary,点击Build Phases栏目下左上角的"+"号按钮,弹出界面后点击New Headers Phase即可,最终出现如下界面


    library+bundle+resource_第2张图片
    addNewHeadersPhase.jpg

    3、设置静态库的build settings:设置Build Active Architecture Only:其中Release必须设置为NO,iOS Deployment Target设置为你最低支持的系统版本,如图所示
    library+bundle+resource_第3张图片
    architecture.jpg
  • 建立bundle资源文件
    1、点击TARGETS下面的"+"号选择macOS下面Framework & Library下面的Bundle,步骤如下


    library+bundle+resource_第4张图片
    bundle.jpg

    2、更改bundle的配置:因为创建bundle是在Mac下创建的,所以必须更改为iOS下的,其主要设置为:


    library+bundle+resource_第5张图片
    bundle_set.jpg

    3、设置Build Phases:添加Copy Bundle Resources和Headers,和配置library类似
    library+bundle+resource_第6张图片
    bundle_buildPhase.jpg
  • 建立project来使用library和bundle
    1、创建project大家应该都清除,就是建立一个single app
    2、连接library和bundle:进入project里面的edit scheme,在build里面添加library和bundle,如下:


    library+bundle+resource_第7张图片
    link_set.jpg

    3、配置Build Phases:完成Link Binary With Libraries和Copy Bundle Resources;


    library+bundle+resource_第8张图片
    project_buildPhase.jpg

    4、工程中如何引用bundle里面的xib了,在控制器里面使用类似代码
    - (instancetype)init {
      NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundle mainBundle]   URLForResource:@"MylibraryResources" withExtension:@"bundle"]];
      NSLog(@"bundle = %@",bundle);
      if (self = [super initWithNibName:@"MyViewController1" bundle:bundle]) {
    
      }
      return self;
    }
    

至此为止,你已经可以完成静态库、bundle(xib)的制作和调用了。详细工程请参考https://github.com/starl126/Library_Bundle-xib-_project

你可能感兴趣的:(library+bundle+resource)