iOS 项目组件化(二) :私有库的更新迭代

我们开发项目不可能私有库创建好以后就不管了,产品的更新迭代、版本的开发、修改或者优化问题时,都需要给私有库进行升级更新。就如没有组件化前每开发一个版本,新拉一个分支打一个Tag,防止版本的更新造成代码的紊乱、业务的不流畅。

我们以在私有库新增一个页面为例。


1. 代码添加好,执行pod install

PS:上面的代码进行了分层,在下面会将到。分层后执行pod install代码消失,请看最后。

leon:Example huanghaipo$ pod install

2. 提交代码

# 保存代码
$ git add .

# 先提交到本地仓库,并填写提交描述
$ git commit -a -m "私有库版本更新"

# git pull origin maste可能会失败 ,提示:fatal: refusing to merge unrelated histories 原因是远程仓库origin上的分支master和本地分支master被Git认为是不同的仓库,所以不能直接合并,需要添加 --allow-unrelated-histories 如果已经绑定过这
$ git pull origin master --allow-unrelated-histories

# 推送项目到master分支上  第一次push如果报错的话可以加上 origin 前面加上 -f
$ git push origin master

# 提交版本号 建议和 podspec文件里面写的版本号一致
$ git tag -a '新版本号' -m '注释'

# push到远程分支 或者执行git push --tags
$ git push origin 0.0.1
提交代码
查看远程私有仓库 成功

3. 修改podspec文件,更新索引库。

1. 修改podspec文件中的版本号,版本号要和刚才的tag一致。

s.version          = '0.0.2'

2. 远程验证podspec文件。

//--private私有库参数
pod spec lint --private
验证通过

3. 更新索引库

pod repo push HPSpeccs(索引库名) 项目名称.podspec(podspec文件)
更新成功

查看本地索引库,有刚才更新的版本。


查看本地索引库

查看远端索引库,有刚才更新的版本。


查看远端索引库

4. 更新项目中的私有库版本

不过一般执行过第一步的pod install这一步就不用执行了,执行第一步的时候就已经把代码添加进去了。

// --no-repo-update 如果不更新版本索引库加这条命令
pod update

第一步出现的问题

问题:执行过后私有库的代码都没了。
原因:我对于代码进行分层分类,在Classes下新建文件(HPPrivateLibraryClass)将所有代码放到这里,但是没有告诉CocoaPods对代码进行了分层,它在去安装时找不到代码。

问题

解决办法:在HPPrivateLibrary.podspec文件中添加分层说明。

//HPPrivateLibrary 当前项目的名称
//ViewControllers HPPrivateLibraryClass文件下的子文件 存放视图控制器
//sss.source_files 代码存放的路径 *代表ViewControllers下的所有文件
 s.subspec 'HPPrivateLibrary' do |ss|
    ss.subspec 'ViewControllers' do |sss|
      #不是真实路径依赖 比如说ViewControllers依赖了Views,Views依赖了Models,所以不需要在写依赖Models
      sss.source_files = 'HPPrivateLibrary/Classes/HPPrivateLibraryClass/ViewControllers/*'
    end
  end
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容