CocoaPod-未设置版本时引发错误

时间:2018-08-27 07:59:43

标签: ios cocoapods

您可以在podfile中设置版本代码。例如,它看起来像这样:

pod 'Alamofire'
pod 'Alamofire', '4.6.0'

我可以在cocoaPod中定义仅接受具有版本的Pod的规则吗?

背后的故事

我正在使用总是执行pod update的构建脚本和不同的构建代理进行很多工作。

在一个愚蠢的时刻,我忘记设置版本号。有一天,广告连播发布了一个新版本,该版本可以进行编译,但是逻辑被破坏了。结果是我构建了崩溃的应用程序。我的想法是,当存在没有版本号的Pod时,在pod installpod update中抛出错误。在Google上,我找不到解决方案。

1 个答案:

答案 0 :(得分:0)

我没有找到CocoaPods的解决方案,但是我写了自己的shell脚本。我很确定正则表达式专业人士在笑,但是对我有用。

grep "\bpod ['\"]\w*['\"]$" Podfile > pods_without_version.txt
pods_without_version=$(grep -c ^ pods_without_version.txt)
count=$(grep -c ^ pods_without_version.txt)

if [ $count != 0 ]; then
   echo "Error - $count Pod(s) without versions:"
   cat pods_without_version.txt
fi

过滤所有以pod开头,被"'包围并且没有第二个'"后面的豆荚

示例Podfile

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
inhibit_all_warnings!
use_frameworks!

def shared_pods
 pod 'Alamofire', '4.6.0'
 pod "GoogleMaps"
 pod 'GooglePlaces'
end

target 'MyAppProject' do
 shared_pods
end

target 'MyAppProjectTests' do
 inherit! :search_paths
 shared_pods
end

输出

Error - 2 Pod(s) without versions:
pod "GoogleMaps"
pod 'GooglePlaces'