iOS 搭建组件化私有库

这篇具有很好参考价值的文章主要介绍了iOS 搭建组件化私有库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建私有库索引

步骤1是在没有索引库的情况下或者是新增索引的时候才需要用到(创建基础组件库)
首先在码云上建立一个私有库索引,起名为SYComponentSpec

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

二、本地添加私有库索引

添加私有库索引

pod repo add SYComponentSpec https://gitee.com/sun-shiyu/sycomponent-spec

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

三、创建基础组件库

当你需要新建组件的时候,就在这里开始,如果是想修改原有的库,就可以直接在之前的组件仓库里面修改即可

1.在码云上创建组件库
命名为SYBasicComponents,如图:

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
2.创建SYBasicComponents本地库
默认创建路径:/Users/sunshiyu/SYBasicComponents

pod lib create SYBasicComponents

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
最后,项目本地组件库创建完成后会自动打开项目。

3.在私有库导入自己的代码

Classes文件夹下面的ReplaceMe.m文件删除掉,替换成你要上传私有库的代码,这里导入简单的两个测试文件:

// SYLog.h
+ (void)logger;
// SYLog.m
+ (void)logger {
    NSLog(@"-------- Log --------");
}

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

4.更新这个工程的pod库

  1. cdExample文件下
  2. 执行 pod install
    ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

5.修改.podspec文件
ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
有两个属性需要注意改下:
s.homepage:私有代码仓库的地址 https://gitee.com/sun-shiyu/sybasic-components
s.source:私有代码仓库的源地址 https://gitee.com/sun-shiyu/sybasic-components.git

其他属性根据需要自行配置。

6.将私有库push到远程仓库

注意远端需要有个master分支,这里先创建一个master分支:

 cd /Users/sunshiyu/SYBasicComponents 
git branch master
git checkout master

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

commit代码到本地然后push到远端:

 git branch (检查当前所在分支)
git status (查看当前git存了什么文件)
git add . (将所有文件缓存到待提交文件区域)
git commit -m "上传组件"
git remote add origin https://gitee.com/sun-shiyu/sybasic-components.git  (私有库git仓库地址)
git push -f origin master (将代码推送到远程私有库git仓库的master分支上面已经创建了)
git tag 0.1.0 (这里的版本号必须和podspec里面写的版本号一致)
git push -- tags (提交tag)

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
7.本地和远程校验

1.本地校验,在当前私有库目录下,输入命令:

pod lib lint --private --allow-warnings

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
校验成功:SYBasicComponents passed validation.

2.远程验证,在当前私有库目录下,输入命令:

pod spec lint --private --allow-warnings

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
校验成功:SYBasicComponents.podspec passed validation.

8.提交索引文件到远程索引库

1.所有验证通过之后,要将spec文件推送到最开始创建的私有库索引库当中

cd 到私有库项目目录,
pod repo push <本地索引库名称> <索引文件名> --allow-warnings
<本地索引库名称>在 /Users/sunshiyu/.cocoapods/repos 下的私有库索引项目名称
<索引文件名>就是以 podspec 结尾的,注意不要弄错

例如输入命令:

pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
2.推送去之后,在本地索引库中查看如下图​​​​​​​​​​​​​​:
ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

getee 远端查看如下图:

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

四、使用基础组件库

随便创建一个项目名为 SYSpecDemo ,初始化 pod

 cd /Users/sunshiyu/Desktop/SYSpecDemo
pod init
pod install

打开编辑 podfile 文件

open podfile

如下:

# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'

# source 添加对应的索引库,否则会pod install失败
source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'

target 'SYSpecDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for SYSpecDemo
  
  # pod 对应组件,可以对应版本
  pod 'SYBasicComponents'

end

再次:

pod install

就可以看到这个库:
ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

导入头文件使用该库:

#import <SYBasicComponents/SYLog.h>

// 打印 log 
[SYLog logger];

五、组件库依赖第三方库

如果我们的组件库需要依赖第三方库,例如 AFNetWorkingYYModel 等,操作如下:

1.修改组件库的 SYBasicComponents.podspec 文件,添加依赖:
ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

然后组件库执行 Example 项目 执行 pod install

2.同上面第6步,将组件库修改的代码提到远端。记住一定要记得打 tag,且要与索引库的 version 保持一致 。

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

git tag 0.2.0 (这里的版本号必须和podspec里面写的版本号一致)
git push -- tags (提交tag)

3.提交索引库远端,同上面的第8步:

pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings

4.修改主项目的 podfile 文件,加入 github CocoaPods 索引库,用来加载github三方库的:

source 'https://github.com/CocoaPods/Specs.git'

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库

然后执行 pod install

以上是使用 pod 'SYBasicComponents' 的方式使用组件库,也就是远程的方式,这种方式需要没更新组件库后都要打 tag 以及修改 specversion,然后修改主项目的 podfile 文件(根据情况也可能不需要要修改),最后主项目重新 pod install 。这样就能得到远程组件库最新的代码,缺点是主项目每次想更新组件库的最近代码都需要组件库打 tag 更新组件库的版本,如何实现只要组件库有代码更新,主项目直接拉最新的代码呢?答案是引用本地索引库的方式,我们只需要修改主项目的 podfile 文件如下:

# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'

# source 添加对应的索引库,否则会 pod install 失败
# source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
source 'https://github.com/CocoaPods/Specs.git'

target 'SYSpecDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for SYSpecDemo
  
  # pod 对应组件,可以对应版本
  
  # 方式一、引用远端组件库
  # pod 'SYBasicComponents'
  
  # 方式二:引用本地组件库,不需要 source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
  pod 'SYBasicComponents', :path => '~/SYBasicComponents/'
 
end

即使用 pod 'SYBasicComponents', :path => '~/SYBasicComponents/' 的方式来直接引用本地组件库的代码,这样拉代码每次都是最新的。我们 pod install 试试看,Pods 目录结构变如下图所示:

ios私有库创建,iOS开发笔记,iOS,spec,cocoapods,本地私有库
本地组件库 SYBasicComponents 里面就是最新的代码了。因为我们的组件库依赖了 AFNetworking YYModel,所以Pods中出现了这两个库。

结束!!!

参考:
iOS私有库搭建
iOS组件化搭建私有库文章来源地址https://www.toymoban.com/news/detail-673835.html

到了这里,关于iOS 搭建组件化私有库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 组件化开发之如何封装组件-react

    组件是构建用户界面的基本单元,它是一个独立的、可重用的、可组合的代码单元,用于表示UI的一部分。 人话:当谈论组件时,就像在搭积木一样,每个组件都是一个 独立的、可以重复使用 的代码块,用来构建网页或应用的各个部分。比如界面的布局,像按钮、文本输入

    2024年02月11日
    浏览(62)
  • Vue 组件化开发

    提示:这里可以添加本文要记录的大概内容: Vue.js 是一种现代化的前端框架,可以用于构建可复用的组件化应用程序。Vue.js 提供了一种基于组件的架构,使得开发人员可以将应用程序分解为多个可重用的组件。 Vue.js 组件是一个可复用的代码模块,可以在 Vue.js 应用程序中使

    2024年02月15日
    浏览(49)
  • 小程序组件化开发

        随着小程序的普及,越来越多的开发者开始使用小程序进行开发,而小程序的组件化开发已经成为了一种标配的开发模式。本文将深入介绍小程序组件化开发的相关知识,包括组件的定义、生命周期、通信和使用等方面,帮助大家更好地理解和使用小程序的组件化开发

    2023年04月20日
    浏览(48)
  • 组件化开发复习

    createApp 函数传入了一个对象 App ,这个对象其实本质上就是一个组件,也是我们应用程序的根组件 可以写为:  我们先来学习一下全局组件的注册:  全局组件需要使用我们全局创建的 app 来注册组件;  通过 component 方法传入组件名称、组件对象即可注册一个全局组件了;

    2024年02月15日
    浏览(65)
  • react组件化开发详解

    React是一个流行的JavaScript库,用于构建用户界面,并且以组件化的方式进行开发。下面将详解React组件化开发的概念和步骤: 组件化思维: 组件化开发是将复杂的用户界面划分为独立、可重用的小部件(组件)。每个组件负责处理自己的逻辑和渲染,可以嵌套和组合其他组件

    2024年02月12日
    浏览(54)
  • 小程序的组件化开发

    目录: 1 小程序组件化思想 2 自定义组件的过程 3 组件样式实现细节 4 组件使用过程通信 5 组件插槽定义使用 6 Component构造器 在小程序里面需要创建组件的话需要在最外层建component包,然后在使用新建component来创建类似page的4个文件: 组件和页面的区别就是,组件文件会有额

    2024年02月10日
    浏览(39)
  • Vue开发实战(03)-组件化开发

    对组件功能的封装,可以像搭积木一样开发网页。 Vue官方的示例图对组件化开发的形象展示。左边是一个网页,可以按照功能模块抽象成很多组件,这些组件就像积木一样拼接成网页。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aS7Zk8tp-16862

    2024年02月08日
    浏览(97)
  • HarmonyOS开发:探索组件化模式开发

    组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,针对Android端的组件化,之前有比较系统的总结过相关文章,感兴趣的朋友,可以查看,点击直达;与Android端的组件化相比,HarmonyOS的组件化可以说实现起来就颇费一番周折,

    2024年02月08日
    浏览(43)
  • 【Vue】Vite 组件化开发

    1. 什么是组件化开发 组件化开发指的是:根据封装的思想,把页面上可重用的部分封装为组件,从而方便项目的开发和维护。 例如:https://gitee.com/vdpadmin/variant-form 所展示的效果,就契合了组件化开发的思想。用户可以通过拖拽组件的方式,快速生成一个页面的布局结构。

    2024年02月10日
    浏览(47)
  • 【前端知识】React 基础巩固(十七)——组件化开发(一)

    什么是组件化开发? 分而治之的思想 将一个页面拆分成一个个小的功能块 将应用抽象成一颗组件树 React的组件相对于Vue更加的灵活和多样 按照不同的方式可以分为很多类组件 根据 组件的定义方式 ,分为: 函数组件 、 类组件 根据 组件内部是否有状态需要维护 ,分为:

    2024年02月12日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包