iOS 组件化-本地私有库

CocoaPods本地私有库

组件化-使用CocoaPods管理的本地私有库,可以分为3种

  1. 本地私有引用(本地pod)
  2. 本地工程嵌套
  3. 内部framework

第一种 本地私有引用(本地pod)

  1. 新建项目根文件夹TestProject(包含主工程和各个库工程的文件夹)

  2. 在 TestProject 内部

    1. 新建主工程文件夹TestProject
    2. 新建库文件夹TestProjectLib
  3. TestProjectLib 库文件夹下

    1. 新建 Classes 文件夹,用于存放库文件
    2. 初始化 git 仓库
      $ git init
    3. 初始化 spec 文件
      $ pod spec create TestProjectLib
      执行命令则会出现一个 TestProjectLib.podspec 文件。
  4. 配置 spec 文件

    • s.name
    • s.version
    • s.summary = "TestProjectLib 对库的简单注释"
    • s.description = "xxxxx具体描述信息运用什么思想什么技术使用了xx实现了xx解决了xx取得了xx"
      或者
      s.description   = <<-DESC
                          xxxxx具体描述信息运用什么思想什么技术使用了xx实现了xx解决了xx取得了xx
                        DESC
      

    注意:description描述内容要比summary概要内容长,不然会出问题!

    • s.homepage = "http://EXAMPLE/TestProjectLib"

      • 本地库,homepage默认即可;
      • 远程库,需要配置远程地址;
    • s.licence = "MIT" 去掉(example)即可

      原始s.licence = "MIT (example)"

    • Source Location
      s.source = { :git => "", :tag => "#{spec.version}" }
      本地库将git指向地址设置为空即可。

      原始spec.source = { :git => "http://EXAMPLE/TestProjectLib.git", :tag => "#{spec.version}" }

    • Source Code

      • spec.source_files = "Classes", "Classes/**/*.{h,m}"
      • spec.exclude_files = "Classes/Exclude"
  5. 创建对应测试工程

    • 在.podspec同目录下,新建测试工程文件夹,名称为Example
    • cd到Example中,新建测试工程,名称与库名称一致即可,也可加后缀Example
  6. 在主工程中配置pod
    进入主工程TestProject文件夹,与.xcodeproj文件在同一目录下

    • 初始化Podfile文件
      $ pod init
    • 配置pod
      • 编辑Podfile,指定库的路径
        $ pod 'TestProjectLib', :path => '../TestProjectLib'
        注意: 保证本地路径的准确性
    • 安装库
      $ pod install
      安装成功
  7. 主工程中使用库
    通过.xcworkspace打开主工程,在导航区域查看文件结构

    • 如果是本地库,可以看到在 Pods - Development Pods 下看到引入的本地库 TestProjectLib;
      • 本地库会全部出现在 Development Pods 文件夹下;
    • 在主工程中,编辑库文件,会自动同步修改本地库;
补充:使用模板自动创建一个库和对应的测试工程
  1. 创建
    $ pod lib create xxx
  2. 测试工程使用pod本地依赖的方式引入私有库来使用

第二种 本地工程嵌套

  1. 新建主工程

  2. 在主工程文件夹下新建多个本地库工程

  3. 在主工程的导航文件系统中添加库工程文件

  4. 使用库

    1. 导入头文件,注意路径
      import "../组件02/组件02/Person.h"
    2. 可能会报一个Undefined symbol: _OBJC_CLASS_$_Person的错误。
      解决方法为
    3. 在Xcode中打开主工程,可以选择不同的scheme菜单来调试不同的库工程
  5. 缺点
    库工程也在主工程的目录下,没有在物理层很好地隔离,造成管理不便。


第三种 内部framework

  1. 新建主工程
  2. Xcode中,选中主工程target,在target导航窗口,点击左下角加号+,选择新建framework
  3. 缺点
    库framework也是在主工程目录下,没有很好隔离。

你可能感兴趣的:(iOS 组件化-本地私有库)