2018-05-15 以前写的文章:pod 创建私有索引库

▾ 可以参考文章:
使用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:

  • http://guides.cocoapods.org/making/using-pod-lib-create.html

( 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://[email protected]/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' => '[email protected]' }

s.source = { :git => 'https://github.com/OldGhost366/HJPodTestLib.git', :tag => s.version.to_s }

s.social_media_url = 'https://twitter.com/'

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'

  • Homepage: https://github.com/OldGhost366/HJSpecs.git

  • Source: https://github.com/OldGhost366/HJPodTestLib.git

  • 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的文件夹

你可能感兴趣的:(2018-05-15 以前写的文章:pod 创建私有索引库)