公司多个app开发中,其中的一些模块化的代码相同,粘贴复制麻烦,有修改或者细节优化,就需要多个app同时修改,工作繁琐没有效率,不利于代码的反复使用。
就想到平时用的三方框架,将自己封装好的功能模块放在GitHub上,使用cocoapod集成这个模块代码,当代码优化修改时就使用pod将代码的版本更新即可;既方便集成使用,也方便记录代码的多个迭代版本;
1. 创建demo工程,在demo中确保代码块的正常调用,弱化耦合性;
2. 将demo上传至github,再clone到本地:
在github上新建项目时需要注意一下几点:1.项目选择公开Public;2.最好添加README文件;3.最好添加gitignore文件;4.必须添加license文件,我选择的是MIT license (基本上开源的项目的license的类型都是MIT);
3. 创建项目的podspec文件
用终端命令cd到本地项目目录并执行如下命令:
$pod spec create 项目名称
这时候本地生成一个 项目名称.podspec 文件
使用vi打开.podspec文件(不要直接使用文本编辑器打开文件修改,这样会曹成格式错误),填写里面的内容,下面是我项目的.podspec文件:
Pod::Spec.new do |s|
s.name = "CustomLoadingTool"
s.version = "1.0.0"
s.summary = "A Library for iOS to use for loading view."
s.homepage = "https://github.com/wangguimin/CustomLoadingTool"
s.license = "MIT"
s.author = { "wangguimin" => "[email protected]" }
s.source = { :git => "https://github.com/wangguimin/CustomLoadingTool.git", :tag => "#{s.version}" }
s.source_files = "CustomLoadingToolDemo/CustomLoadingToolDemo/CustomLoadingTool/*.{h,m}"
s.frameworks = "Foundation"
s.platform = :ios, "8.0"
end
//需要注意的是s.source_files路径一定要写对
//公共资源文件也就是pod 下来的文件 *.{h,m}是通配符意思是所有在该目录下以.h .m结尾的文件 该目录地址是相对于CustomLoadingTool文件的
4. 验证podspec文件
编辑完podspec文件后需要验证一下这个文件是否可用,podspec文件不允许有任何的Warning或者Error
执行命令 $ pod lib lint 项目名称.podspec如果出现
->CustomLoadingTool (1.0.0)
CustomLoadingTool passed validation
则说明 验证通过,否则,根据提示修改podspec文件再次验证,直到验证通过附带说一下,Xcode允许警告存在,所以可以通过命令屏蔽警告 $ pod lib lint 项目名称.podspec - allow-warnings
如果出现Error但是提示信息不足,可以添加—verbose 以获取更多的错误信息
$ pod lib lint 项目名称.podspec —verbose
5. 打印tag,上传podspec
podspec 文件中需要指定的tag,完成上述操作后给项目打上tag
$ git tag -m "first release ios_Category with podspec" "1.0.0"
$git push --tags
最后使用pod trunk 命令,把podspec文件推送到cocoapod官网库
6. 注册pod trunk
在终端输入以下命令 参数 邮箱地址, 用户名, 邮箱地址用github 上的最好
$ pod trunk register [email protected] 'wangguimin' —verbose
向服务器查询自己注册的信息 $ pod trunk me
7. 通过trunk推送podspec文件
$ pod trunk push CustomLoadingTool.podspec 这个工程可能会比较耗时
出现如下图的结果即可
8.搜索自己的项目吧
pod search 项目名
注意:
如果搜素出现错误时:
Unable to find a pod with name, author, summary, or description matching `CustomLoadingTool`
在终端中输入 :rm ~/Library/Caches/CocoaPods/search_index.json
删除本地pod的文件,然后在进行搜索