iOS多人合作之带有Bundle的静态库项目的创建

创建静态库的目的:

  • 多人合作,代码共用
  • 多项目需要共用一份代码
  • 模块化开发
  • 为什么不用动态库?因为苹果不允许上架_
废话不多说,我这里采用的是直接拖拽打包后的项目到主项目中的方式,之所以这么做,是为了大家可以共用并修改。当然如果你有保护自己代码的倾向,请不这么做。
iOS多人合作之带有Bundle的静态库项目的创建_第1张图片
Paste_Image.png
步骤:
  • 创建静态库项目
iOS多人合作之带有Bundle的静态库项目的创建_第2张图片
Paste_Image.png
  • 导入要打包的文件 注意这里只能打包OC(.h.m文件)
iOS多人合作之带有Bundle的静态库项目的创建_第3张图片
Paste_Image.png
  • 分别选择真机和模拟器进行编译(打包)
commend + B```

打包之后我们得到.a文件即为需要的
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-21e1c2b2c0db30f0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

show in finder```

iOS多人合作之带有Bundle的静态库项目的创建_第4张图片
Paste_Image.png
  • 合并.a文件 为什么要合并呢?是因为我们要保证主项目在使用我们的SDK时,真机和模拟器都能运行

合并很简单,使用终端即可。具体指令如下:

lipo -create /Users/apple/Desktop/textSDK/Build/Products/Debug-iphoneos/libtextSDK.a /Users/apple/Desktop/textSDK/Build/Products/Debug-iphonesimulator/libtextSDK.a 
-output /Users/apple/Desktop/textSDK/Build/Products/libtextSDK.a```

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-72203d3cfd62596b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 合并之后,我们发现Products文件下多了个.a文件 这就是我们合并后的.a文件 把他拖入上面两个真机和模拟器的文件夹 替换掉之前的.a文件即可

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-059471c7ebc540fc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 好了 ,现在我们来使用这个静态库SDK项目

- 首先新建一个项目,把我们刚才的静态库项目add file进主项目

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-60f92f98b8563c49.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-956ffbac954ccfef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-465384c9ab88329e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 加入之后,有重要的三步,就是把和主项目关联起来
看清楚了:

先加库 文件 注意红圈地方
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-6b317fbfe8d97f28.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

添加之后:

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-49ad2237f0dd4c77.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

search path 添加路径:建议写模糊路径,绝对路径可能出错

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-7ac72c1f8f8c9729.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 好了 依赖完成之后 我们测试一下 在主项目中引入SDK中的头文件试试

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-819b6e22b8a54ac1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 测试成功!!

###Bounle资源文件的制作 添加 以及引用

- 首先 创建

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-c1683421df2cbae1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 修改为iOS SDK Bundle 文件 

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-87c0c22536eed5d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 首先拉一张图片 创建个带有xib的VC 

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-2df85caa9ff267d0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 把图片 和 xib文件 加入Bundle  

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-695b18e0d6043227.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 我们先直接调用 看下会不会崩溃。。

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-e11c5967be251e7f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

哈哈 崩溃了。。

Xcode提示我们找不到xib文件。。。
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-2e35c17e14a41c01.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 下面我们把Bundle 库 添加到主项目中 直接拖入即可,,

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-14c6c388ed1b5d09.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-5ce0c5ecf859f244.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


- 调用Bundle文件中图片

UIImageView *view = [[UIImageView alloc] init];
view.frame = CGRectMake(20, 20, 200, 200);
view.image = [UIImage imageNamed:@"textBundle.bundle/fage.jpg"];
[self.view addSubview:view];```

iOS多人合作之带有Bundle的静态库项目的创建_第5张图片
Paste_Image.png
  • 调用bundle中的xib文件
NSBundle *mainBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"Text" ofType:@"bundle"]];
UIView *xibview = [[mainBundle loadNibNamed:@"textfdsa" owner:self options:nil] lastObject];
    xibview.frame = CGRectMake(20, 300, 200, 200);
    [self.view addSubview:xibview];```

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/189984-101870b08971a81e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 有一点需要记得 就是如果更新了xib 则需要选择对应的Bundle 重新编译一下

你可能感兴趣的:(iOS多人合作之带有Bundle的静态库项目的创建)