iOS 高级开发(7)之 组件化(二)远程化私有库

在上一篇文章iOS 高级开发(6)之 组件化(一)私有化本地仓库我们已经讲解了如何私有化一个本地仓库. 那么本篇文章我们将继续讲解如何远程化一个私有库

大伙有没有发现, 每次面试 AFN 这些东西的底层原理是必问的. 小编很烦, 就自己写了一个LYZNetworking,方便以后面试装逼 我如何把它发布到远程仓库, 方便大家利用 pod install 呢?

第一步:
我已经创建了一个 pod 模板 ,并把自己的代码已经替换了进去, 不明白在讲什么的,需要先看上一篇文章iOS 高级开发(6)之 组件化(一)私有化本地仓库

image.png

打开 github 在自己的仓库里面新建项目

LYZ_Networking.png

这里一定要选择 license. 否则会导致发布失败!

第二步:
将我们的模板代码,也就是创建这个模板的项目推送至远程仓库. 这一步不用详说吧. 看本篇文章都有能力把代码推送到 github.并打上 tag, 打上 tag 的作用是方便版本管理
比如我现在的框架 LYZNetworking 已经是 0.0.4 了. 那么我接下来要发布新的版本, 于是我就新创建一个 tag 0.0.5

tag.png

第三步:
修改 LYZNetworking.podspec 文件

Pod::Spec.new do |s|
  s.name             = 'LYZNetworking'
  s.version          = '0.0.5'  //一定要和 tag 保持一致, xcode 项目的版本也要保持一致
  s.summary          = 'LYZNetworking 是一款简单易用的网络框架, 支持 get, post, 配置简单, 稳定可靠'

# 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      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

  s.homepage         = 'https://github.com/liuyaozong1/LYZ_Networking' //代码主页
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { '[email protected]' => '[email protected]' }
  s.source           = { :git => 'https://github.com/liuyaozong1/LYZ_Networking.git', :tag => s.version.to_s }//代码下载地址
  # s.social_media_url = 'https://twitter.com/'

  s.ios.deployment_target = '11.0' //最低支持的版本

  s.source_files = 'LYZNetworking/Classes/**/*'  //需要上传至 cocopods 代码的目录
  
  s.swift_version = '5.0'  //必须是 swift 5.0
  
  s.platform =  :ios,'11.0'
  
  # s.resource_bundles = {
  #   'LYZNetworking' => ['LYZNetworking/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

s.name:名称,pod search搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号,to_s:返回一个字符串
s.author:作者
s.homepage:项目主页地址
s.summary: 项目简介
s.source:项目源码所在地址
s.license:许可证
s.platform:项目支持平台
s.requires_arc: 是否支持ARC
s.source_files:需要包含的源文件
s.public_header_files:需要包含的头文件
s.ios.deployment_target:支持的pod最低版本

关于上面参数的修改,推荐一篇文章
https://www.jianshu.com/p/3a365f273439

第四步:
cd 到.podspec 目录
校验podspec,检测是否有错误

pod spec lint LYZNetworking.podspec --verbose

发布

pod trunk push LYZNetworking.podspec

如果你之前没有注册 trunk ,会直接提示你去注册, 按照提示注册完之后发布

发布过程中, 可能会遇到各种问题, 都有有很清晰的 error 标识 按照它修改完毕,一般问题不大, 实在不会就百度吧!

发布成功之后
立马 pod 'LYZNetworking' 然后 install 是搜不到的. 需要等一会.

你可能感兴趣的:(iOS 高级开发(7)之 组件化(二)远程化私有库)