选择 Cocoa Touch Static Library
-
开始创建项目:
-
项目命名:
代码部分
目的是写一个简单的 UITableViewCell 的子类。
进入 BaseCell.h 文件,让 BaseCell 继承于 UITableViewCell 。并声明以下两个类方法:
/** 快速获取 cell */
+ (instancetype)cell:(UITableView*)tableView;
/** 快速获取 cell(Xib/故事版) */
+ (instancetype)resourceCell:(UITableView*)tableView;
在 BaseCell.m 文件中实现以上两个方法:
/** 快速获取 cell */
+ (instancetype)cell:(UITableView*)tableView {
NSString* ID = NSStringFromClass(self);
BaseCell* cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (!cell) {
[tableView registerClass:self forCellReuseIdentifier:ID];
cell = [tableView dequeueReusableCellWithIdentifier:ID];
}
return cell;
}
/** 快速获取 cell(Xib/故事版) */
+ (instancetype)resourceCell:(UITableView*)tableView {
NSString* ID = NSStringFromClass(self);
BaseCell* cell = [tableView dequeueReusableCellWithIdentifier:ID];
if (!cell) {
[tableView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellReuseIdentifier:ID];
cell = [tableView dequeueReusableCellWithIdentifier:ID];
}
return cell;
}
- 配置工程环境
配置最低支持版本
-
设置对应的参数
Build Active Architecture Only 选项设置
Build Setting 里面的 Build Active Architecture Only 设置为NO。
Build Active Architecture Only 设置为 YES 时,是为了debug 的时候编译速度更快,此时它只编译当前的 architecture 版本。
设置为 NO 时,会编译所有的版本。
-
2、这里是不用修改的,默认就是这样。
分别选中模拟器于真机,各自都编译一下:
-
开始编译 command + b 编译成功为止。
-
找到编译结果
找到左侧的 Products 目录。选中 libBaseCell.a 进入,会发现有如下两个子目录:
两个子目录,就是编译结果。分别进入字目录中,会发现有这样的文件libBaseCell.a,这就是一个静态库了,但是模拟器于真机的是分开的。在开发中,往往是需要合并的。
1、打开终端,cd 到 Products 目录;
2、然后在终端合并两个 libBaseCell.a ,
语法是:
lipo -create 空格 第一个libBaseCell.a路径 空格 第二个 libBaseCell.a路径 空格 -output libBaseCell.a例如:
MacBook-Air:~ mac$ cd/Users/mac/Library/Developer/Xcode/DerivedData/BaseCell-fjbhdfhwyspurehddfvjzyyhjluy/Build/Products
MacBook-Air:Products mac$ lipo -create /Users/mac/Library/Developer/Xcode/DerivedData/BaseCell-fjbhdfhwyspurehddfvjzyyhjluy/Build/Products/Debug-iphoneos/libBaseCell.a /Users/mac/Library/Developer/Xcode/DerivedData/BaseCell-fjbhdfhwyspurehddfvjzyyhjluy/Build/Products/Debug-iphonesimulator/libBaseCell.a -output libBaseCell1.a
会发现在 Products 目录中多了一个 libBaseCell1.a 文件。这个文件就是模拟器于真机合并的静态库,在开发的过程中,往往都是用这个合并库。
-
最后整理如下:
然后在 Products 目录中创建一个目录,名叫 BaseCell。 把合并好的libBaseCell1.a 放在该目录下 ,在加上 Include 文件
如下:
结束了,现在你将 BaseCell 目录拖到项目,就可以使用了。
不过我们是指对 Debug 下的静态库进行合并。