iOS组件化之通过CocoaPods发布
Posted WeaterMr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS组件化之通过CocoaPods发布相关的知识,希望对你有一定的参考价值。
制作本地组件工程
1.随便建立一个简单的工程
2.打开当前的工程的目录文件,新建一个文件夹 Lib
3.cd
到当前的Lib
文件夹下
执行:pod lib create MZSNetworking
这里的MZSNetworking
即为我们此次要做的组件。
按照上面的操作步骤,当显示如上图即成功。
4.打开Lib
文件夹将看到下面的文件结构。
这里的Example
是自动生成的一个demo。
我们要创建的组件,将放到上图选中的文件夹中,将对应的ReplaceMe.m
删除即可
到此我们的本地的组件库创建完成。
托管远程仓库
1.先在远端 码云 或者githup 上新建里一个空的仓库
这里选择公开,证书选择MIT。
2.将仓库clone
到本地,然后将上面创建好的本地组件拷贝到当前从网络clone
的仓库中。
3.在添加到跟踪文件之前,先对.podspec
文件做一些相关的设置。
Pod::Spec.new do |s|
s.name = 'MZSNetworking' //对应的名称
s.version = '1.0.4' //版本号
s.summary = 'MZSNetworking for demo' //描述
# 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://gitee.com/mazhengshui/mznew-work'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = :type => 'MIT', :file => 'LICENSE'
//----------邮箱---------------------//
s.author = 'xiaoma' => '2455419909@qq.com'
//----------仓库地址 和上面的区别 .git ---------------------//
s.source = :git => 'https://gitee.com/mazhengshui/mznew-work.git', :tag => s.version.to_s
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '9.0'
s.source_files = 'MZSNetworking/Classes/**/*'
# s.resource_bundles =
# 'MZSNetworking' => ['MZSNetworking/Assets/*.png']
#
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end
s.version
版本号信息,一定要和后面打的tag保持一致,不然无法上传到CocoaPods
。s.homepage
更换为你的托管仓库地址s.source
更换为你的托管仓库地址 以.git 结尾。
3.git add .
或者通过source tree
去管理本地代码。打要发布版本的tag也即是别人通过CocoaPods
继承使用的版本号。并推送到远程仓库。注意:这里的tag和s.version 要保持一致
4.发布你当前远程的版本。
发布到CocoaPods支持网络集成
1.发布前检查发布的版本是否合法 通过命令 pod lib lint --verbose
,当出现下图表示可以发布到CocoaPods上
2.如果没有CocoaPods
账号需要注册账号,pod trunk register
后加自己的邮箱 加昵称 。同时会有一封邮件发送到你的邮箱,点开链接即可。
如果不带昵称会报错
查看是否注册成功 pod trunk me
3.一切就绪,将对应的工程推送到CocoaPods
,即工程下的.podspec
文件。出现图版本信息即发布成功。
pod trunk push MZSNetworking.podspec --verbose
到此整个组件的制作,远程仓库的托管,发布到CocoaPods一系列流程已完成。
报错处理
1.当你的电脑安装多个Xcode
需要选择你默认的xcode
路径。点击Xcode - Preferences - Locations
这里的Command Line tools
必须选择。
2.当你使用pod search
无法搜索到时 删除本地缓存
rm ~/Library/Caches/CocoaPods/search_index.json
如果还不行需要等待一会,可能网络延时。
3.当你的版本信息本地和托管仓库不同步会报一下错误。
检查版本信息,自己打的tag
本地和网络是否同步。当前版本的tag
是否发布。
以上是关于iOS组件化之通过CocoaPods发布的主要内容,如果未能解决你的问题,请参考以下文章