验证CoCoapod是否为最新版本的Xcode构建步骤
我有一个iOS项目,已经用Cocoapods设置好了。我使用一堆库,但有时我会在不同的分支之间添加/删除/更新库,而忘记在终端中运行验证CoCoapod是否为最新版本的Xcode构建步骤,xcode,cocoapods,Xcode,Cocoapods,我有一个iOS项目,已经用Cocoapods设置好了。我使用一堆库,但有时我会在不同的分支之间添加/删除/更新库,而忘记在终端中运行pod update,以确保我所处理的分支具有所有正确的pod 我试图在我的项目(iOS 7,Xcode 5)中设置的构建步骤执行以下操作: 检查pod当前是否最新,即确定是否需要运行pod更新 如果吊舱是最新的,什么也不要做 如果pod不是最新的,请运行pod update/pod install 我查阅了网站上的文档,没有找到解决问题的方法 任何指点都很感激 干
pod update
,以确保我所处理的分支具有所有正确的pod
我试图在我的项目(iOS 7,Xcode 5)中设置的构建步骤执行以下操作:
pod更新
pod update
/pod install
Mário有几个Xcode插件可以让事情变得更简单,但我认为它们不会自动更新: 使用CoCoapod的便捷Xcode插件:
一个Xcode 5插件,便于Cocoapods的使用和Podfile的创建:
Xcode的CocoaPods:在Xcode中,编辑构建方案-
cmd-option-r
构建->预操作
添加新运行脚本操作
我想出了这个适合我的脚本——但是我的bash-fu缺少,所以其他人可能会有更优雅的解决方案
pod outdated | while read i
do
flag=`echo $i | awk '{print match($0,"No updates")}'`;
if [ $flag -gt 0 ]; then
break;
else
pod update;
break;
fi
done
还要注意的是,这依赖于pod过时的的文本输出没有改变,因此随着cocoapod的更新,它可能会变得脆弱
根据答案
细节
- Xcode 10
- Cocoapods 1.6.1测试版
解决方案1。无缓存检查
解决方案2。每天只检查一次
结果
no_updates="No pod updates are available."
need_to_update=1
pod outdated | (while read i
do
if [ "$i" == "$no_updates" ]; then
need_to_update=0
fi
done
if [ $need_to_update == 1 ]; then
echo "warning: need to update pods";
fi
)
DIR="Temp"
FILE="./$DIR/Pods.check"
CURRENT_DATE=`date '+%Y-%m-%d'`
checkPods () {
NEED_TO_UPDATE_PODS=1
NO_PODS_UPDATE_STRING="No pod updates are available."
> $FILE
pod outdated | (while read LINE
do
if [ "$LINE" = "$NO_PODS_UPDATE_STRING" ]
then
NEED_TO_UPDATE_PODS=0
fi
done
echo "$CURRENT_DATE" >> $FILE
if [ $NEED_TO_UPDATE_PODS = 1 ]
then
str="warning: need to update pods"
echo "$str"
echo "$str" >> $FILE
fi
)
}
mkdir -p $DIR
if [ ! -f "$FILE" ]
then
checkPods
else
INDEX='0'
cat $FILE | while read LINE
do
if [ $INDEX = 0 ] && [ $CURRENT_DATE != $LINE ]
then
checkPods
break
fi
if [ $INDEX = 1 ]
then
echo "$LINE"
break
fi
INDEX=`expr $INDEX + 1`
done
fi