组件化三:远程私有库
2019-03-01 本文已影响3人
我有一只小毛驴_从来都不骑
远程私有库跟本地私有库的区别就是
直接pod 'TextLib', 不要要后面:path => 'TextLib'
先看看那远程私有库的原理
image一般来说 把spec文件提交到远程,再通过pod setup 安装到本地,红色的线路图,但是实际开发中 是把spec提交到 本地的spec中,再同步到远程
先创建一个远程的库,把本地的库关联到远程的库中,然后修改spec文件
Pod::Spec.new do |s|
s.name = 'BaseUI'
s.version = '0.4.0'
s.summary = 'BaseUI.'
s.description = 'BaseUI的描述'
s.homepage = 'https://gitee.com/XBG123'//远程会验证这个地址,要能打开
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '18730261828@163.com' => '18730261828@163.com' }
s.source = { :git => 'https://gitee.com/XBG123/BaseUI.git', :tag => s.version.to_s }//代码源地址
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '8.0'
#s.source_files = 'BaseUI/Classes/**/*','BaseUI/Classes/*','BaseUI/Classes/**/**/*'
s.subspec 'HBCategory' do |z|
z.source_files = 'BaseUI/Classes/HBCategory/**/*'
end
# s.resource_bundles = {
# 'BaseUI' => ['BaseUI/Assets/*.png']
# }//主要是加载bundle的 比如 图片,storybord
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end
修改完以后提交到git,同时也要提交tag
git tag '版本号'
git push --tags
然后把sepc文件上传到私有库中的spec文件中
pod repo push 自己私有的spec文件名字 自己私有库的podspec文件
还要验证spec文件
pod lib lint 验证本地私有库
pod repo lint 验证远程私有库
这样就可以使用了
如果pod search 找不到私有库的名字,可以前往~/Library/Caches/CocoaPods 里面有一个search_index.json文件,把它删除,再pod search 就能找到了
遇到的问题
使用的时候加上在podfile文件的顶部 加上自己的私有库源地址 pod repo 可以查看到自己的私有库下面的url就是自己的私有库地址,还有cocoapods自带的源地址,例如:
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/hengHaibo/Spec.git'
platform :ios, '9.0'
target 'cesh' do
pod 'HBBaseTool', '~> 0.3.0'
end
不加那个源 可能会报找不到索引去下载
自己的开源库:https://github.com/hengHaibo/HBBaseTool 欢迎大家添加自己收藏的分类和工具