ios组件化

一、组件项目创建步骤

1、在桌面或者其他地方创建一个文件夹,如下图:

在这里插入图片描述

2、打开终端,cd到刚刚创建的文件夹

在这里插入图片描述

3、在终端输入命令行pod lib create LJTest2,回车;
4、在终端确认以下问题:
4.1、用于哪个平台
What platform do you want to use?? [ iOS / macOS ] > iOS

4.2、开发语音,Swift或者ObjC
What language do you want to use?? [ Swift / ObjC ] > ObjC

4.3、是否需要一个 demo 用来测试组件
Would you like to include a demo application with your library? [ Yes / No ] > Yes

4.4、将使用哪些测试框架
Which testing frameworks will you use? [ Specta / Kiwi / None ] > None

4.5、是否需要基于UI的测试
Would you like to do view based testing? [ Yes / No ] > Yes

4.6、组件中文件的前缀
What is your class prefix? > LJ
5、确认完成之后,系统会自动配置组件并创建打开项目,如下图:

在这里插入图片描述
在这里插入图片描述

6、在项目的Podfile文件中,可以看到:pod 'LJTest2', :path => '../',这一句将组件路径指向了本地,对应的是如下目录:

在这里插入图片描述

7、在Classes文件夹中,存放组件的各类文件;在Assets文件夹中,存放组件中使用的图片等资源。
8、在Development Pods -> LJTest2文件夹中创建组件类,并删除ReplaceMe文件,如下图:

在这里插入图片描述

9、编写好测试代码以后,在终端cd到Example文件夹下,输入命令pod install回车。
10、完成上述步骤以后,即可在Example for 文件名文件中测试组件中的功能了

在这里插入图片描述

二、关联远程仓库

1、前往git上创建一个远程仓库,我这里使用的是gitlab!

在这里插入图片描述

2、在终端cd到LJTest2目录下,如下图

在这里插入图片描述

3、在终端输入以下命令

git status .
git commit -m "提交的内容***"

4、添加需要关联的远程仓库,即下图git地址,然后在终端输入以下命令:

git remote add origin https://gitlab.com/common52/LJTest2.git(https://gitlab.com/common52/LJTest2.git为组件源码地址)
在这里插入图片描述
在这里插入图片描述

5、继续在终端输入以下命令回车,然后前往git上切到master分支,即可看到我们提交的记录了

git push -u origin master

6、推送成功以后,我们需要给项目打上一个tag版本号,该tag的版本号必须与podspec文件中的版本号一致,如下图

在这里插入图片描述

在终端使用如下命令行打上tag:
git tag 0.1.0
将tag推送至远端
git push --tags

7、tag推送完成以后,在git上刷新即可看到我们刚刚推送的tag了

在这里插入图片描述

三、发布到cocoapods

1、验证podspec文件信息是否可以通过验证,在终端输入以下命令

pod spec lint --allow-warnings,可能会报错,如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iwj3oWuo-1653913912609)(assets/16539034319343.jpg)]

2、如果第一步报错,则可使用以下命令进行验证,出现lJTest2 passed validation即验证通过:

pod lib lint LJTest2.podspec --allow-warnings
在这里插入图片描述

验证时使用第三方的验证方式

pod lib lint --use-libraries --allow-warnings --sources=https://gitlab.gyenno.com/gyennoios/common/gyennospecs.git,https://github.com/CocoaPods/Specs.git --verbose
3、开始发布,首先通过trunk注册生成一条会话:

pod trunk register 337101067@qq.com Lucky --description=test

4、前往邮箱验证,如下图

在这里插入图片描述

5、修改podspec文件中s.homepage和s.source文件路径:在这里插入图片描述
6、使用以下命令将podspec提交到CocoaPods

pod repo push commonspecs LJTest2.podspec --allow-warnings
其中commonspecs为组件索引库名,组件通过哪个索引下载则填写哪个索引

四、文件配置

图片设置

1、设置podspecs中的资源路径,如下图:

在这里插入图片描述

2、在该文件夹下创建存储图片的xcassets文件

在这里插入图片描述

3、在刚创建的xcassets文件show in finder,将创建的文件拖入Assets文件夹

在这里插入图片描述

4、使用代码通过bundle获取图片,imageName为图片名称

在这里插入图片描述

五、创建子库

1、比如下图所示LJTextView为一个子库,

在这里插入图片描述
在这里插入图片描述

2、注释掉之前s.source_files和原来的依赖库

在这里插入图片描述

3、添加以下代码,设置子库
s.subspec 'LJTextView' do |a|
       a.source_files = [
       'LJTest2/Classes/LJTextView/*'
       ]
       a.resource_bundles = {
           'LJTest2' => ['LJTest2/Assets/*.{xcassets}']
       }
#       a.dependency 'Masonry'
   end

· s.subspec后面是我们文件目录对应名称
· do后面是起的一个别名
· a.source_files为文件路径
· a.dependency为子库的依赖库(目前我这边添加依赖库以后导入会报错,暂未找到原因)

4、完成以上修改以后,将版本号进行修改,并打上tag提交至cocoapods
5、在项目中使用,将之前的pod 'LJTest2'修改为pod 'LJTest2/LJTextView',打开终端cd到项目的根目录,使用pod install进行安装,这样我们就可以看到项目中只有一个LJTextView了

在这里插入图片描述

六、使用

1、在所需要的项目中,编辑podfile文件,在文件最顶部输入以下两行

其他第三方的索引地址(不输入该行无法通过pods导入其他第三方)
source 'https://github.com/CocoaPods/Specs.git'
自己的组件索引地址
source 'https://gitlab.gyenno.com/gyennoios/common/gyennospecs.git'

2、输入pod 'LJTest2',在项目的根目录输入pod install安装组件

七、更新版本

1、修改podspec文件的s.version对应版本号
2、根据对应的版本号打tag,并推送到远程

git tag ***
git push --tags

3、推送到远程源码仓库

git push origin master

4、本地验证

pod lib lint --allow-warnings

5、推送到远程索引仓库

pod repo push 索引仓库名 组件库名.podspec --allow-warnings

6、在使用的项目中进行以下命令更新pod

pod update 组件库名

八、问题记录

1、文件路径不匹配
- ERROR | [iOS] file patterns: The `resource_bundles` pattern for `LJTest1` did not match any file.
2、推送组件到远端前,先修改podspec文件中s.homepages.source的配置路径,否则会报错;
3、组件上传完成以后,如果使用pod search无法搜索到该组件,则需清理本地的索引文件,具体为以下命令:

3.1 删除本地搜索文件
rm ~/Library/Caches/CocoaPods/search_index.json

3.2 更新本地pod库
pod repo update

3.3 重新简历搜索
pod search LJTest2

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值