iOS 组件化-发布组件到远程仓库

最近项目需要组件化,公共组件要推到远程仓库。因为涉及组件是否开源问题,以下发布组件方式会区分私有或者公有仓库推送。

 #本地库引用方式
  pod 'ModuleTest', :path => '../'
 #github远程公用库引用方式
  pod 'ModuleTest', '0.2.0'
 #gitee远程私有库引用方式
  pod 'ModuleTest', :tag => '0.1.0',:git => 'https://gitee.com/xxx/ModuleTest.git'

1.新建远端仓库

在gitee或者github远端创建一个仓库,仓库名eg:ModuleTest . https://gitee.com/xxx/ModuleTest.git

2.在本地新建组件

格式:pod lib create 组件名, eg:

pod lib create ModuleTest

此时,终端会显示一些创建组件的基本问题,

>What is your name? 
>这里输入名字,可以随便输

>What is your email?
>这里最好是输入你gitee或者github注册的邮箱

>What platform do you want to use?? [ iOS / macOS ]
>iOS

>What language do you want to use?? [ Swift / ObjC ]
>Swift

>Would you like to include a demo application with your library? [ Yes / No ]
>Yes

>Which testing frameworks will you use? [ Specta / Kiwi / None ]
>None

>Would you like to do view based testing? [ Yes / No ]
>No

3.组件化源码放到工程

找到Classes目录下的ReplaceMe。删除ReplaceMe,放上你的源码文件。这里我是新建ModuleTest.swift文件。
iOS 组件化-发布组件到远程仓库_第1张图片

4.修改podspec文件内容

因为我的工程组件是swift语言,下面做了一些小调整:

s.summary          = 'ModuleTest summary.'
s.homepage         = '填写你的仓储主页'
s.source           = 'https://gitee.com/xxx/ModuleTest.git'
s.swift_version = '5.0'

5.本地组件关联到远程仓库

(1)首先验证一些本地组件podspec是否可用

pod lib lint 验证.podspec文件是否可用(避免警告pod lib lint --allow-warnings)

(2)如果你想把组件推送到远程公用仓库,请看以下步骤,否则跳过。

2.1 判断你的电脑是否注册了trunk,如果没有注册,则:

pod trunk register 邮箱 '用户名' --description='电脑描述'

2.2

pod spec lint 验证远程仓库(避免警告pod spec lint --allow-warnings)

2.3 提交.podspec文件到仓库

pod trunk push 组件podspec文件名.podspec (上面加了此处也要加 --allow-warnings)

本地trunk目录
~/.cocoapods/repos/trunk

(3) 如果你想把组件推送到远程私有仓库,请看以下:
格式:pod repo add ‘私有仓库名’ ‘https://gitee.com/xxx/ModuleTest.git’
eg:

 pod repo push Common ModuleTest.podspec --allow-warnings

在主工程或者demo工程如果想引用私有库组件,写法:

#这是私有库地址
source 'https://gitee.com/xxxx/xxxx.git'  
#这是github开源代码库地址
source 'https://github.com/CocoaPods/Specs.git'

这里为什么写上了自己的私有库地址之后还得加上cocoapods原有的库地址呢?

因为如果加上了自己的资源地址之后,就只会在你添加的资源地址里面去寻找资源,但是我们项目开发中除了使用自己的私有库之外,经常还要使用到GitHub上面的公开库资源,所以要配上Github公开库资源地址。

你可能感兴趣的:(iOS开发,iOS,ios,swift,开发语言)