在上一篇文章iOS 高级开发(6)之 组件化(一)私有化本地仓库我们已经讲解了如何私有化一个本地仓库. 那么本篇文章我们将继续讲解如何远程化一个私有库
大伙有没有发现, 每次面试 AFN 这些东西的底层原理是必问的. 小编很烦, 就自己写了一个LYZNetworking,方便以后面试装逼 我如何把它发布到远程仓库, 方便大家利用 pod install 呢?
第一步:
我已经创建了一个 pod 模板 ,并把自己的代码已经替换了进去, 不明白在讲什么的,需要先看上一篇文章iOS 高级开发(6)之 组件化(一)私有化本地仓库
打开 github 在自己的仓库里面新建项目
这里一定要选择 license. 否则会导致发布失败!
第二步:
将我们的模板代码,也就是创建这个模板的项目推送至远程仓库. 这一步不用详说吧. 看本篇文章都有能力把代码推送到 github.并打上 tag, 打上 tag 的作用是方便版本管理
比如我现在的框架 LYZNetworking 已经是 0.0.4 了. 那么我接下来要发布新的版本, 于是我就新创建一个 tag 0.0.5
第三步:
修改 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 = { '648731281@qq.com' => '648731281@qq.com' }
s.source = { :git => 'https://github.com/liuyaozong1/LYZ_Networking.git', :tag => s.version.to_s }//代码下载地址
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
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 是搜不到的. 需要等一会.
网友评论