组件化三:远程私有库

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 欢迎大家添加自己收藏的分类和工具

上一篇下一篇

猜你喜欢

热点阅读