▾ 可以参考文章:
使用CocoaPods创建私有Spec Repo管理项目公共组件1
使用CocoaPods创建私有Spec Repo管理项目公共组件2
▾ pod lib create FJTest1
• 选ObjC
• Yes
• None
• No
• VK
• pod lib create HJPodTestLib
• jdeMacBook-Pro:PodSpecRepo j$ pod lib create HJPodTestLib
Cloning [https://github.com/CocoaPods/pod-template.git
](https://github.com/CocoaPods/pod-template.git%60) into HJPodTestLib
.
Configuring HJPodTestLib template.
To get you started we need to ask a few questions, this should only take a minute.
If this is your first time we recommend running through with the guide:
( hold cmd and double click links to open in a browser. )
What language do you want to use?? [ Swift / ObjC ]
ObjC
Would you like to include a demo application with your library? [ Yes / No ]
No
Which testing frameworks will you use? [ Specta / Kiwi / None ]
None
Would you like to do view based testing? [ Yes / No ]
No
What is your class prefix?
HJ
▾ 修改FJTest1.podspec
• s.version = '1.0.0' 该值一定与tag值一样
• s.summary
• s.description 描述稍微长点
• s.homepage 对应的git仓库主页 eg:http://git.xxxxx.com/iOS/StaticLibrary/VKNetModule
• s.source 对应的git仓库地址 eg:http://Evan@git.xxxxx.com/iOS/StaticLibrary/VKNetModule.git
• s.source_files 表示通过pod install下载下来的文件存放路径 source****文件夹路径不能随便地修改,必须是对应的相对路径
• s.dependency 表示当前组件依赖的库 ,当你执行pod install会自动把依赖的库下载到本地
▾ 微信文章的配置如下:
• 4、编写podspec文件,我里面标注要修改的地方一定要修改下不要用默认的,不然第5不会出警告。
Pod::Spec.new do |s|
s.name = 'HJPodTestLib'
s.version = '0.1.0'
s.summary = 'HJPodTestLib.' #这里要修改下
s.description = <<-DESC
description of the pod here. #这里也要修改下
DESC
s.homepage = 'https://github.com/OldGhost366/HJPodTestLib'
s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'OldGhost366' => 'oldghost007@163.com' }
s.source = { :git => 'https://github.com/OldGhost366/HJPodTestLib.git', :tag => s.version.to_s }
s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '8.0'
s.source_files = 'HJPodTestLib/Classes/*/'
end
▾ 给组件设置tag
• git tag -a 1.0.0 -m'1.0.0版本测试组件'
• 查看tag命令 git tag
▾ 第一次创建时,需要设置远端remote
• git remote 查看远程库简称 无简称不显示
• git remote -v 查看远程库url全称 ,有简称也显示,全部显示
• git remote add [shortName] [url]
▾ 或者如上面微信文章所言:
• 2、在远程git服务器创建组件仓库,并且和本地关联
git add .
git commit -s -m "Initial Commit of Library"
git remote add origin https://github.com/OldGhost366/HJPodTestLib.git
git push origin master
3、创建tag,因为podspec文件中获取Git版本控制的项目还需要tag号,所以我们要打上一个tag,这一步一定不要忘记 不然第5步就会说找不到版本。
git tag -m "第一版" 0.1.0
git push --tags
▾ 提交本地tag前先拉取。
• git pull [url简称] [分支简称] 如:git pull pb master
▾ 最好使用默认的 简称 origin 因为origin很多地方都可以省略
• git pull [分支简称]
▾ 提交到远程。
▾ 提交代码:最后一步是git push -u url简称] [分支简称] 如: git push pb master
• git add . 暂存起来
• git commit -m "add README" 提交一定要写注释,否则不让提交
• git push -u origin master
▾ 提交tag标签: git push [url简称] --tags 如:git push pb --tags
• 为了能把标签同步到远程服务器,我们可以这样做:
默认情况下,git push并不会把tag标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。
1.push单个tag,命令格式为:git push origin [tagname]
例如:
git push origin v1.0 #将本地v1.0的tag推送到远端服务器
2.push所有tag,命令格式为:git push [origin] --tags
例如:
git push --tags
或
git push origin --tags
▾ pod repo:查看本地repo索引库列表
• 也可以使用pod repo list命令查看
▾ 先添加我们的本地私有索引库(这是我们第一次在本地添加索引库)
• pod repo add [私有索引库名字] "索引库对应的git地址" 添加repo
• pod repo remove xxx 删除 我们自己的索引库
• # pod repo add [Private Repo Name] [Your GitHub HTTPS clone URL]
$ pod repo add HJSpecs https://github.com/OldGhost366/HJSpecs.git
• 上面这句话的微信文章写得有误
• 删除本地索引库:pod repo remove VKHouseModule
▾ 回归本地的组件库:执行代码检查
▾ pod spec lint 远端检查spec文件是否合法,是否符合加入索引库的逻辑标准
• 微信文章所言:5、验证 pod lib lint,ERROR和WARMING都不能有,不然不能提交。
jdeMacBook-Pro:HJPodTestLib j$ pod lib lint
-> HJPodTestLib (0.1.0)
HJPodTestLib passed validation.
▾ 关键一步,提交我的podspec到我们的私有索引库
• pod repo push VKSpecs FJTest1.podspec
• 6、提交podspec到私有spec repo
这个时候需要,必须前面验证通过,不然提交会失败,因为提交过程先会进行验证。
执行下面命令后CocoasPod自动会将podspec到本地和远程spec repo Git仓库。我们这时候可以在Git远程仓库可以看到这个podspec文件了。
pod repo push HJSpecs HJPodTestLib.podspec()
▾ 集成测试:
• pod search HJPodTestLib
-> HJPodTestLib (0.1.0)
HJPodTestLib.
pod 'HJPodTestLib', '~> 0.1.0'
Versions: 0.1.0 [HJSpecs repo]
(END)
• 如果找不到时,可以清除一下索引库缓存 rm -rf ~/Library/Caches/CocoaPods/search_index.json
• 搜索到了之后,按q可以退出
▾ 如果需要删除这条索引,可以在远端网址上删除对应文件夹下的podspec。然后本地pod repo update VKSpeces_iOS(索引库名称)
•
• 2、创建项目测试
pod init
然后我们编辑Podfile文件
target 'PodTest' do
platform :ios, '8.0'
pod 'HJPodTestLib', '~> 0.1.0'
pod 'AFNetworking'
end
执行pod install
[!] Unable to find a specification for HJPodTestLib
▾ 测试失败为什么?
• 最终解决办法在Podfile里面增加source指定,两个都要添加
增加下面两个source这样pod install就不会出问题了
source 'https://github.com/OldGhost366/HJSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'
target 'PodTest' do
platform :ios, '8.0'
pod 'HJPodTestLib', '~> 0.1.0'
pod 'AFNetworking'
end
▾ 其他命令
• Control C 取消执行当前命令
• pwd 查看当前路径
• cd .. 回到上一级路径
• open /. 打开file的文件夹