美文网首页
Xcode_静态库制作_基础篇

Xcode_静态库制作_基础篇

作者: 茉上心弦 | 来源:发表于2018-08-28 17:03 被阅读13次
选择 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_静态库制作_升级篇

    如果没有看过 基础篇,从这里进入 Xcode_静态库制作_基础篇。 一、创建项目创建一个名叫 People 的项目...

  • Xcode_静态库制作_基础篇

    选择 Cocoa Touch Static Library 开始创建项目: 项目命名: 代码部分目的是写一个简单的...

  • iOS 静态库制作❣进阶

    如果没有看过 基础篇,从这里进入iOS 静态库制作❣基础篇。如果没有看过 中篇,从这里进入iOS 静态库制作❣中篇...

  • Xcode_静态库制作_问题篇

    实际开发过程中,我们或许会涉及到各种不同的协作开发形式,或许也有将自己封装的类运用到其它 app 的情况,在这个时...

  • Xcode_静态库制作_终极篇

    这一篇主要是介绍一种特殊情况的打包。有两个功能:功能1 与 功能2,其中 功能2 是在 功能1 的基础上开发,现在...

  • iOS 静态库制作❣中篇

    如果没有看过 基础篇,从这里进入iOS 静态库制作❣基础篇。提示:开源光荣 与学习静态库的制作没有任何关系。将自优...

  • iOS 静态库制作❣基础篇

    接下来开始介绍一下在iOS开发中静态库的制作。提示:开源光荣 与学习静态库的制作没有任何关系。将自优秀代码开源的同...

  • framework静态库制作基础篇

    1. 开发模式下创建framework静态库工程流程 1.1 首先创建一个工程专门用来开发调试静态库,然后创建一个...

  • iOS小知识 -- 静态库(一)

    静态库静态库的介绍.a静态库的制作以及测试静态库的架构问题.framework静态库的制作以及测试边开发边制作静态...

  • 制作.a静态库遇到的问题

    制作.a静态库遇到的问题 由于需求是做一个半封闭的静态库,需要依赖FMDB,基础步骤不多叙述,基础步骤请参考:这篇...

网友评论

      本文标题:Xcode_静态库制作_基础篇

      本文链接:https://www.haomeiwen.com/subject/sdafwftx.html