美文网首页
iOS组件化开发(持续集成)

iOS组件化开发(持续集成)

作者: WQDev | 来源:发表于2020-06-08 11:29 被阅读0次

    项目源码:github地址

    创建远程索引库

    1. 我们先在GitHub上创建一个organization,WQCloudProject

    2. 添加一个远程索引库

    3.创建本地索引库

    1).打开终端输入"pod repo add 本地索引库的名字 远程索引库的地址"命令创建本地索引库并和远程索引库做关联。

    pod repo add CloudSpecs https://github.com/WQCloudProject/CloudSpecs.git

    2).输入 "pod repo" 查看是否创建成功

    创建组件

    4.创建远程仓库,假设命名MessageModule

    5.创建MessageModule的本地代码库

    1)输入"pod lib create MessageModule",如果需要指定某个目录则先cd到所需目录,然后再执行以上命令,结果如图

    2)完成后自动打开工程,接下来修改.podspec文件,替换远程地址:https://github.com/WQCloudProject/MessageModule.git

    3)使用soucetree克隆第4步的远程仓库到本地

    4)把第5步创建的本地仓库拷贝到克隆在本地的目录

    5)替换.gitignore,提交代码

    6)打标签并推送,版本号要跟MessageModule.podspec的一致

    3)至6)也可以使用命令操作:

    git add .

    git commit -m '第一次提交'

    git remote add originhttps://github.com/WQCloudProject/MessageModule.git

    git push origin master

    git tag 版本号(需与podspec中的版本号一致)

    git push --tags

    上面git push origin master 当你在远程创建了README.md 或者 .gitigonre 文件时,先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull,因为他们是两个不同的项目,要把两个不同的项目合并,需要git pull origin master --allow-unrelated-histories

    7)在MessageModule/Classes目录创建自己的源代码文件

    6.修改MessageModule.podspec版本号为0.1.1,推送工程,打标签,验证索引

    pod spec lint MessageModule.podspec --verbose --allow-warnings --sources='https://github.com/CocoaPods/Specs.git,https://github.com/WQCloudProject/CloudSpecs.git'

    验证通过:

    推送更新:

    pod repo push CloudSpecs MessageModule.podspec --verbose --allow-warnings

    先克隆CloudSpecs到本地,否则会出现如下错误:

    [!] Unable to find the `MessageModule` repo. If it has not yet been cloned, add it via `pod repo add`.

    7.创建主工程

    这时候可以在主工程pod组件了

    8.参考第4步创建组件中间件 WQCTMediator 、WQCTMediator_Extension

    WQCTMediator: 

    WQCTMediator的错误总结:

    [!] The repo `CloudSpecs` at `../../../.cocoapods/repos/CloudSpecs` is not clean

    删除本地索引库,重新建立关联:

    MessageModule的错误总结:

    pod repo add MessageModulehttps://github.com/WQCloudProject/CloudSpecs.git

    WQCTMediator_Extension的错误总结:

    - ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for `WQCTMediator` depended upon by `WQCTMediator_Extension`

    [!] The spec did not pass validation, due to 1 error.

    由于WQCTMediator_Extension依赖WQCTMediator,验证索引要带上项目索引的地址:

    pod spec lint WQCTMediator_Extension.podspec --verbose --allow-warnings --sources='https://github.com/CocoaPods/Specs.git,https://github.com/WQCloudProject/CloudSpecs.git,https://github.com/WQCloudProject/WQCTMediator_Extension.git'

    创建target文件,Target_MessageModule.swift

    最后组工程必须将“-ObjC”标志添加到“Other Linker Flags”,否则NSClassFromString返回nil

    注:更新本地索引相关命令

    pod repo

    pod repo update CloudSpecs

    pod update --verbose --no-repo-update

    相关文章

      网友评论

          本文标题:iOS组件化开发(持续集成)

          本文链接:https://www.haomeiwen.com/subject/omnvyxtx.html