• 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
    • 2
    • 3
    • 4
    • 5
    • 6
    1.新建远端仓库

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

    2.在本地新建组件

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

    pod lib create ModuleTest
    
    • 1

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

    >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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    3.组件化源码放到工程

    找到Classes目录下的ReplaceMe。删除ReplaceMe,放上你的源码文件。这里我是新建ModuleTest.swift文件。
    组件化源码放到工程

    4.修改podspec文件内容

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

    s.summary          = 'ModuleTest summary.'
    s.homepage         = '填写你的仓储主页'
    s.source           = 'https://gitee.com/xxx/ModuleTest.git'
    s.swift_version = '5.0'
    
    • 1
    • 2
    • 3
    • 4
    5.本地组件关联到远程仓库

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

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

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

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

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

    2.2

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

    2.3 提交.podspec文件到仓库

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

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

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

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

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

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

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

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

  • 相关阅读:
    【21天学习挑战赛—经典算法】折半查找
    golang - 使用有缓冲通道控制并发数
    systemverilog运行的时候调用系统函数运行python等
    Linux | crontab定时任务及开机自启项
    uniapp开发企业微信应用中的定位问题记录
    java的集合之间的关系
    使用kepware配置opcua服务端,并使用UaExpert作为opc客户端进行连接
    LabVIEW LINX Toolkit控制Arduino设备(拓展篇—1)
    使用 Bun 快速搭建一个 http 服务
    连PostgreSQL问题:expected authentication request from server, but received v
  • 原文地址:https://blog.csdn.net/samuelandkevin/article/details/126820371