验证CoCoapod是否为最新版本的Xcode构建步骤

验证CoCoapod是否为最新版本的Xcode构建步骤,xcode,cocoapods,Xcode,Cocoapods,我有一个iOS项目,已经用Cocoapods设置好了。我使用一堆库,但有时我会在不同的分支之间添加/删除/更新库,而忘记在终端中运行pod update,以确保我所处理的分支具有所有正确的pod 我试图在我的项目(iOS 7,Xcode 5)中设置的构建步骤执行以下操作: 检查pod当前是否最新,即确定是否需要运行pod更新 如果吊舱是最新的,什么也不要做 如果pod不是最新的,请运行pod update/pod install 我查阅了网站上的文档,没有找到解决问题的方法 任何指点都很感激 干

我有一个iOS项目,已经用Cocoapods设置好了。我使用一堆库,但有时我会在不同的分支之间添加/删除/更新库,而忘记在终端中运行
pod update
,以确保我所处理的分支具有所有正确的pod

我试图在我的项目(iOS 7,Xcode 5)中设置的构建步骤执行以下操作:

  • 检查pod当前是否最新,即确定是否需要运行
    pod更新
  • 如果吊舱是最新的,什么也不要做
  • 如果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