1、创建私有仓库
新建一个管理Spec的git仓库, 最好命名Spec后缀
2、更新私有仓库到本地,其中master(公有仓库)、Spec(私有仓库)
$ pod repo add ZRSpec https://git.dev.tencent.com/ERRORMAN/ZRSpec.git
$ open ~/.cocoapods/repos
3、创建本地组件
$ pod lib create flieName # 会建立Demo
或者
$ pod spec create flieName
选择平台、语言、模板、类前缀等
4、创建本地及远程仓库
$ git init # 创建本地项目,在项目根目录执行git init命令
# 在git服务器上创建一个仓库,这里使用GitHub创建一个仓库。
$ git remote add origin https://github.com/jolieYa/BYMediator.git
$ git pull origin master:master # 从远程分支拉取master分支并与本地master分支合并。
或者
$ git pull origin master --allow-unrelated-histories
$ git push -u origin master # 提交本地分支到远程分支
5、添加组件代码,并修改.podspec文件内容
Pod::Spec.new do |s|
#组件名称
s.name = 'BYMediator'
#组件版本号 要和tag一致
s.version = '0.1.0'
#组件的简短简绍
s.summary = 'BYMediator.描述'
#详细描述
s.description = <<-DESC
TODO: BYMediator.详细描述
DESC
#仓库主页
s.homepage = 'https://github.com/jolieYa/BYMediator.git'
#CocoaPods强制要求所有的Pods依赖库都必须有license⽂件,否则验证不会通过。license的 类型有很多种,详情可以参考网站tl;dr Legal。在创建github仓库的时候,我已经选择了MIT类型的 license 协议。
s.license = { :type => 'MIT', :file => 'LICENSE' }
# 作者 邮箱
s.author = { 'jolieYa' => 'jolieYa@163.com' }
#真是的分支地址
s.source = { :git => 'https://github.com/jolieYa/BYMediator.git', :tag => s.version.to_s }
#iOS操作系统版本
s.ios.deployment_target = '8.0'
#组件文件路径
s.source_files = 'BYMediator/Classes/**/*'
#s.source_files = 'BYMediator/Classes/*.{h,m}'
# s.resource_bundles = {
# 'BYMediator' => ['BYMediator/Assets/*.png']
#图片文件路径
# }
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
#框架依赖
# s.dependency 'AFNetworking', '~> 2.3'
#依赖的组件
end
6、打tag,及验证.podspec文件
# --verbose : 获取详细信息
# --use-libraries : 有引用框架时
# --allow-warnings : 忽略告警
# --sources : 代码包含私有库代码
$ pod lib lint BYMediator.podspec --verbose --allow-warnings --use-libraries --sources='https://xxx/bymediator_-home-module.git,https://github.com/CocoaPods/Specs.git' # 验证本地.podspec
# 打tag版本提交服务端后,再验证服务端.podspec
$ git tag 0.0.1
$ git push --tags
$ pod spec lint BYMediator.podspec --verbose --allow-warnings # 验证服务端.podspec
6、提交podspec到Specs仓库
$ pod repo push ZRSpec BYMediator.podspec --verbose --use-libraries --allow-warnings //前面是本地repo仓库名,后面是要提交的podspec
7、使用组件
1)新建项目
2)配置Podfile文件
platform :ios, '9.0'
inhibit_all_warnings!
use_frameworks!
source 'https://cdn.cocoapods.org/'
#source 'https://github.com/CocoaPods/Specs.git'
# 私有仓库
source 'https://git.dev.tencent.com/ERRORMAN/ZRSpec.git'
target :BYRouterExample do
pod 'BYMediator', '~>0.1.0'
end
3)进入工程安装组件
$ pod install
10、若本地无pod私有库源,则需要更新
接下来需要更新一下本地的pod的json文件即可
- pod install(这⼀一步已经包括pod setup)
- pod setup
- pod repo update pod setup成功后,依然不不能pod search,是因为之前你执⾏行行pod search⽣生成了了 search_index.json,此时需要删掉。
终端输⼊入: rm ~/Library/Caches/CocoaPods/search_index.json
$ pod repo update # 将私有库更新到本地
$ pod install