期望:用
XXPrivateRepos
作为一个私有仓库,用来管理一些小的组件(或称模块)(如:XXUI
)
一 、 在github上添加一个私有仓库(这里报红是因为已经创建才截的图)
- 远程创建一个私有仓库
- 本地创建私有仓库
先用cd ~/.cocoapods/repos
查看cocoapods现有的仓库
现在我们再添加一个仓库 XXPrivateRepos
。
pod repo add XXPrivateRepos https://github.com/shine93/XXPrivateRepos.git
添加完毕后文件夹下就多了一个目录。
二 、创建一个库,打标签
-
在github上创建一个私有库
XXUI
作为一个小组件。
-
终端cd到保存私有库的目录下,
pod lib create XXUI
回答制作库的几个问题
- 答完之后自动打开了此
project
-
本地目录下多了相关的文件
- 用自己需要的文件替换掉这个
ReplaceMe.swift
文件,替换后工程目录中添加的文件没有立刻显示出来,ReplaceMe.swift
文件会报红
- cd到
Example
文件夹下,pod install
之后,工程目录正常
-
修改
XXUI.podspec
文件。(这里依然没有依赖任何别的库,如果有,则需要添加s.dependency
)
-
提交代码和远程库关联起来,并打上标签(标签和
XXUI.podspec
文件里面的s.version
保持一致)
提交完代码后可以看到库的相关信息了。
打tag:
-
lint 代码
先本地lint
遇到问题,但并没有错误log打印
[!] XXUI did not pass validation, due to 1 warning (but you can use
--allow-warnings
to ignore it).
You can use the--no-clean
option to inspect any issue.
解决:
pod lib lint --allow-warnings
再远程lint
pod spec lint --allow-warnings
三 、推送要加入的库.podspec到git私有仓库中
- 推送
XXUI.podspec
到XXPrivateRepos
仓库中:pod repo push XXPrivateRepos XXUI.podspec
- 开始我的仓库是空的,推送时出现了以下错误
解决:在XXPrivateRepos
创建了一个README.md
文件
- 再次推送
pod repo push XXPrivateRepos XXUI.podspec
成功
本地文件夹多了这个库相关的文件:
远程仓库:
-
pod search XXUI
四 、创建一个demo,pod使用这个私有仓库
- 创建一个
XXTestPrivateRepo
demo - 创建
Podfile
文件
不加那个souce:
加上source后:
-
demo目录
-
使用此Label
import UIKit
import XXUI
class ViewController: UIViewController {
@IBOutlet weak var nameLabel: InsetLabel!
override func viewDidLoad() {
super.viewDidLoad()
nameLabel.layer.cornerRadius = 5
nameLabel.layer.masksToBounds = true
nameLabel.textInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10)
}
}
-
效果:
参考:
我的制作库系列之: iOS制作一个pod公开库文档
我的制作库系列之: iOS 制作本地库Development Pods
cocoapods制作库的文档
cocoapods制作Private Pods文档
cocoapods制作公开Pods文档