iOS组件化开发实践笔记

项目源码: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组件化开发实践笔记)