美文网首页
cocoapods 组件化(1)

cocoapods 组件化(1)

作者: 迷路的小小 | 来源:发表于2021-01-05 10:17 被阅读0次

一. 创建Podfile

1. cd 进入工程目录IOSModule

2. 打开终端执行pod init

3. 终端执行pod install

二. 创建模块

1. 新建工程

创建工程Network,加入工作空间IOSModule

2. 创建spec文件

  • cd进入Network目录,终端执行命令pod spec create Network
  • 完成时显示Specification created at Network.podspec

3. 编辑Network.podspec文件

  • 创建模块目录。

打开项目,创建名为ClassesGroup。打开Network.podspec修改spec.source_filesspec.source_files = 'Classes/**/*.swift'.

符号:* 
*匹配所有文件
c* 匹配所有c开头的文件
*c 匹配所有c结尾的文件
*c* 匹配所有包含c的文件
符号:** 
递归路径
符号:? 
匹配任意一个字符
符号:[set] 
匹配任意set中的一个字符,和正则规则类似,例如否集[^a-z]
符号:{p,q} 
包含p和q的集合
符号:\ 
跳出下一个元字符
  • 描述

打开Network.podspec修改spec.summary作为模块描述

  • 模块依赖
spec.dependency 'Moya'
spec.dependency 'RestKit/CoreData', '~> 0.20.0'
spec.ios.dependency 'MBProgressHUD', '~> 0.5'
spec.dependency '自己的主spec/subspec'
  • frameworks
spec.ios.framework = 'CFNetwork'
spec.frameworks = 'QuartzCore', 'CoreData'
  • weak_frameworks
spec.weak_framework = 'Twitter'
spec.weak_frameworks = 'Twitter', 'SafariServices'
  • libraries使用的静态库
 spec.ios.library = ‘xml2'
 spec.libraries = 'xml2', 'z'
  • Subspecs

一个library可以指定对另一个library的依赖性,另一个library的subspec或自身的subspec。
a. subspec含有不同的source文件

subspec 'Twitter' do |sp|
  sp.source_files = 'Classes/Twitter'
end

subspec 'Pinboard' do |sp|
  sp.source_files = 'Classes/Pinboard'
end

b. 子模块对其子模块的依赖

Pod::Spec.new do |s|
  s.name = 'RestKit'

  s.subspec 'Core' do |cs|
    cs.dependency 'RestKit/ObjectMapping'
    cs.dependency 'RestKit/Network'
    cs.dependency 'RestKit/CoreData'
  end

  s.subspec 'ObjectMapping' do |os|
  end
end

c. 嵌套subspec

Pod::Spec.new do |s|
  s.name = 'Root'

  s.subspec 'Level_1' do |sp|
    sp.subspec 'Level_2' do |ssp|
    end
  end
end
  • 资源文件
spec.resource = '*.xcassets'

使用方法,在模块中创建类Image类

class Image {
    
    static func get(named name: String) -> UIImage? {
        let bundle = Bundle(for: Image.self)
        return UIImage(named: name, in: bundle, compatibleWith: nil)
    }
}

cocoapods组件化(2)

相关文章

网友评论

      本文标题:cocoapods 组件化(1)

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