Xcode_静态库制作_基础篇

选择 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 下的静态库进行合并。

你可能感兴趣的:(Xcode_静态库制作_基础篇)