iOS使用pod创建本地库
2018-12-16 本文已影响0人
QYiZHong
前言
随着项目变得越来越大,我们的工程需要进行拆分和解耦。组件化的形式是目前一种解耦的方式。在iOS中,模块之间完全解耦不互相依赖的情况下,完全可以做成pod管理的本地库。下面将通过一个demo详细讲解一下如何创建一个pod本地库。
创建pod本地库
用pod管理工程
首先我们的工程得是pod管理的
# cd到你自己的工程路径
cd /Users/qyizhong/Desktop/SwiftTest
# 因为我这个是demo,所以需要初始化一下pod。如果你的工程已经是pod管理的就不需要了
pod init
创建需要下沉到Pod的文件
创建一个需要放在pod本地库管理的类。我随便写了一个方法用来测试,如图1所示。
图1创建本地库文件夹
你需要专门创建一个文件夹用来存放本地库,这个文件夹名字你爱叫啥叫啥都行,如图2所示。
图2配置本地库
建立一个与你库名相同名的文件夹,如图3所示。
图3创建podspec文件
cd /Users/qyizhong/Desktop/SwiftTest/LocalLib/ShowText
pod spec create ShowText
ShowText文件夹下就会有一个叫ShowText.podspec的文件。我们打开这个文件进行配置。
- 填写s.summary,这个你就看着办吧
s.summary = " just a test"
- 填写s.description,这个你也看着办吧
# 去掉这个DESC
s.description = <<-DESC
DESC
# 这样写,内容随意
s.description = "a lib for ShowTest"
- 去除这个文件里所有跟EXAMPLE相关的内容,比如s.homepage。注意,这里内容都不能为空,不然会出警告
# 原来的
s.homepage = "http://EXAMPLE/ShowText"
# 改为 内容随意
s.homepage = "https://www.qyizhong.cn"
- 新建LICENSE文件,如图4所示
新建LICENSE文件,内容随你,我这里选了MIT
The MIT License (MIT)
Copyright © 2018 <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
图4
- 配置LICENSE
s.license = "LICENSE"
- 修改路径
source改为这样,tag是你的版本号,你随意。
s.source = { :git => "", :tag => "0.0.1" }
- 把文件拖入本地库
我们可以看到
s.source_files = "Classes", "Classes/**/*.{h,m}"
s.exclude_files = "Classes/Exclude"
这两行前面对应的文件夹都是Classes,所我们建立Classes文件夹,如图5所示。然后把ShowText.swift拖到这里面。当然,这个文件夹不一定得叫Classes,如果叫别的你就得去改source_files和exclude_files的配置。
图5- 填写Podfile
你看这里的路径是你自己填写的,所以你这个文件夹用别的名字也行。
pod 'ShowText', :path => './LocalLib/ShowText'
拉取本地库
cd到你工程目录下
pod install --verbose --no-repo-update
测试
打开你的pod生成的xcworkspace,已经进入本地仓库了,如图6所示。
图6测试一下
import UIKit
import ShowText
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let s = ShowText.init()
s.show()
}
}
成功
图7