创建工程
类似于使用cocoapods创建私有库的步骤,首先使用命令bundle gem cocoapods-dog创建工程
可以看到文件目录如上图所示,lib文件夹就是我们应该写代码的位置,但是这里有问题需要修改
修改点:
cocoapods文件夹更名为cocoapods-dogdog文件夹更名为commandversion.rb文件移至上层文件夹
修改后应当为下图
现在看到一个配置文件gemspec,类似于制作私有库时podspec文件一样,同样里面有一些对此工程的描述信息还有工程依赖等等
现在开始检验上述操作是否可行,也就是工程能否正常运行,这里通过spec文件进行测试,这里也相当于是一个测试文件,但是要注意直接生成的文件中模块名称有问题需要修改
这时使用命令rspec ./spec/cocoapods/dog_spec.rb运行这个测试文件,运行成功
使用VSCODE来运行
刚才是利用类似于单元测试的方法来确认工程是否可用,但我们的目的是制作插件,所以这里开始进入正题,如何使用VSCODE来进行debug,同样这里需要首先配置launch.json
这里是使用launch.json来执行命令,并传递参数hahaha,在bin文件目录下创建dog文件,就是暴露出来的命令,使用dog文件来调用dog.rb脚本
那么运行成功后应当是先打印出参数hahaha,之后调用CocoapodsDog模块中Dog类的类方法run,接下来来看dog.rb脚本中的内容
那么根据上图来看,程序运行后应当先打印hahaha之后打印汪汪,接下来看运行结果与预期一致,成功
使用pod命令来调用
刚才已经用VSCode调试成功了,现在考虑做成插件的形式,注意文件目录如下
在cocoapods_plugin文件中引入添加的命令,cocoapods是将继承自command的子类存储为key-value的形式,那么我们要自己添加命令的话也需要继承自command并实现run方法
此时使用命令rake install:local把这个库安装到本地
同时可以查看到这个库的信息
这时调用命令pod dog发现调用成功