一、创建远程索引库
1、我们先在GitHub上创建一个organization
2、添加一个远程索引库,填写相关信息
3、创建本地索引库,并与远程索引库做关联
a、打开终端,pod repo add 本地索引库的名字 远程索引库的所在
比方:pod repo add JerryNetworkManager https://github.com/JerryYJL/JerryNetworkManager.git
b、pod repo检察是否创建乐成
二、创建组件
1、开始创建组件
a、cd 到指定目录,然后pod lib create 组件名
比方 pod lib create JerryNetworkManager
b、而后填上项目相关信息,便能乐成创建组件
2、目录相关
a、podspec文件
该文件是组件的焦点设置中心,看一下podspec语法
Pod::Spec.new do |s|# 组件名 s.name = 'JLNetworkingManager'# 版本号,与tag标签对应 s.version = '0.1.5'# 组件的形貌 s.summary = 'A short description of JLNetworking.'# This description is used to generate tags and improve search results.# * Think: What does it do? Why did you write it? What is the focus?# * Try to keep it short, snappy and to the point.# * Write the description between the DESC delimiters below.# * Finally, don't worry about the indent, CocoaPods strips it! s.description = <<-DESCTODO: Add long description of the pod here. DESC# 组件所在的远程堆栈 s.homepage = 'https://github.com/JLNetWorking/JLNetworking' # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'# 开源协议 s.license = { :type => 'MIT', :file => 'LICENSE' }# 作者信息 s.author = { 'Jerry' => '110*****@qq.com' }# git所在,版本号 s.source = { :git => 'https://github.com/JLNetWorking/JLNetworking.git', :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'# 支持的iOS最低版本 s.ios.deployment_target = '11.0'# 指定Swift编译版本 s.swift_version = "5.0"# 内核设置 s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }# 必备项,代码源文件所在,假如有多个目录下则用逗号分开,否则"public_header_files"等不可用 s.source_files = 'JLNetworking/Classes/**/*'# 公开头文件所在 # s.public_header_files = 'Pod/Classes/**/*.h'# 所需的体系framework,多个用逗号隔开,不须要后缀名 # s.frameworks = 'UIKit', 'MapKit'# 资源路径 s.resource_bundles = { 'JLNetworkingManager' => ['JLNetworkingManager/Assets/**/*'] }# 依赖第三方 s.dependency 'Moya/RxSwift' s.dependency 'RxCocoa' s.dependency 'HandyJSON' s.dependency 'SwiftyJSON' s.dependency 'SnapKit'endb、example文件,重要写demo相关
这个一样平常都是写demo,给别人看这个组件是怎么用的,另有跑起来是啥结果之类的
c、Podfile文件
这里可以导入你的demo须要的第三方,且不会引入到你的组件里面
use_frameworks!platform :ios, '11.0'target 'JLNetworking_Example' do pod 'JLNetworkingManager', :path => '../' target 'JLNetworking_Tests' do inherit! :search_paths endendd、组件的焦点内容
这里就可以开始你的代码秀了
3、上传
git add .
git commit -m 'xxx'
git remote add origin https://github.com/JLNetWorking/JLNetworking.git
git push origin master
git tag 版本号(需与podspec中的版本号同等)
git push --tags
4、podspec验证
pod spec lint --verbose --allow-warnings --sources='https://github.com/JLNetWorking/JLNetworking.git'
表明
--verbose:打印错误
--allow-warnings:答应警告,默认有警告的podspec会验证失败
--sources:假如依赖了其他不包含在官方specs里的pod,则用它来指明源,好比依赖了某个私有库。多个值以逗号分隔
5、推送
推送分为2种情况,一个是私有库的推送,比方公司自己的gitLabel;第二个是公有库,比方前面的GitHub
a、私有库的推送
私有库的推送比力直接
pod repo push JLNetworking JLNetworking.podspec --verbose --allow-warnings --sources=https://github.com/JLNetWorking/JLNetworking.git
b、公有库的推送
公有库的推送就比力贫困,由于须要推送到cocoapods,所以第一次推送须要注册账号
注册账号
pod trunk register 邮箱 '名字' --description='macbook air' --verbose
注册完会收到一份邮件,须要点击验证,验证完之后可以检察个人信息
pod trunk me
假如信息精确,就可以推送了
pod repo push JLNetworking JLNetworking.podspec --verbose --allow-warnings --sources=https://github.com/JLNetWorking/JLNetworking.git
5、验证
pod search JLNetworkingManager
假如没有搜到,大概就是本地堆栈没有更新
更新repo库,然后再搜
pod repo update
pod组件就完成了,下一篇开始主项目跟组件的交换
原链接:https://www.jianshu.com/p/2b9e6cf0191f |