项目源码: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