1、验证.podspec会先测试本地.podspec文件是否存在语法错误。测试成功再根据.podspec文件找到远端仓库对应的版本clone到本地并进行配置。最后测试文件是否能够编译成功。
2、再次验证
如果错误发生在.podspec中。当修改完时,不需要再次提交就可以直接验证。如果错误发生在代码中,则需要再次提交才能验证。
3、pod spec相对于pod lib 会更为精确,pod lib相当于只验证一个本地仓库,pod spec会同时验证本地仓库和远程仓库。
4、—sources变量的使用
当你的.podspec文件依赖其他私有库时要引入source
pod spec lint React.podspec —allow-warnings —sources=lcoal_spec_name,master
lint通过之后push的时候依然需要—sources
pod push local_spec_name React.podspec —allow-warning —source=local_spec_name,master
5、pod lib lint PodName.podspec的实现细节探究:
a. podspec文件可以独立存在,不需要上传到远端,文件中的s.version跟s.source中的git仓库必须有同名的branch或者tag。这样在执行lint的时候才能下载到对应的源代码进行编译校验。(podspec文件往往会跟项目代码放到同级目录下并且保存到git仓库,但是不是必须。尤其是在调试lint的时候,不需要调试一次push一次)。
b. 在调用lint方法的时候,读取的是本地的podspec文件,但是拉取的代码,是podspec文件中的s.source描述的远端git仓库代码.所以podspec文件传不传到git仓库本身没有关系,因为读取的是本地的.
6、podspec文件解析
a. podspec是一个ruby文件
b. homepage:只支持HTTP和HTTPS地址,不支持SSH地址
c. source_files:表示源文件的路径,这个路径是相对podspec文件而言的
d. 源代码库,不仅仅可以指定tag,还可以指定branch。
注意:如果branch上的代码有了变动,使用方直接pod install或者pod update是不行的。因为pod对branch或者tag的代码在本地有缓存,需要clean缓存之后再pod install或pod update
pod cache clean PodName
网友评论