ios - CircleCI for iOS - 缓存 cocoapods 依赖

标签 ios continuous-integration cocoapods circleci

我正在尝试使用 faSTLane scan 在 CircleCI 中运行我的 iOS 测试套件。运行测试效果很好,但是通过从 cocoapods 安装依赖项,总时间增加了很多。

我尝试通过执行以下操作来缓存 Pods 目录,但是,校验和在 restore_cache 步骤和 save_cache 步骤之间发生变化:

- restore_cache:
    key: 1-pods-{{ checksum "Podfile.lock" }}
- run:
    name: Install Pods
    command: pod install
- save_cache:
    key: 1-pods-{{ checksum "Podfile.lock" }}
    paths:
      - ./Pods

本质上,即使没有任何 pod 发生变化,pod install 也会导致校验和发生变化。因此,它保存在缓存中的 key 永远不会与试图从缓存中恢复的 key 对齐。

有更好的方法吗?

最佳答案

是的,有一种方法可以做到这一点。 restore_cache 接受键前缀 ( https://circleci.com/docs/2.0/configuration-reference/#restore_cache )。因此,要回退到较早的缓存,您可以使用如下内容:

- restore_cache:
    keys:
      - 1-pods-{{ checksum "Podfile.lock" }}
      - 1-pods-

这里有一些更具体的指南:https://circleci.com/docs/2.0/ios-migrating-from-1-2/#installing-cocoapods

关于ios - CircleCI for iOS - 缓存 cocoapods 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54338406/

相关文章:

continuous-integration - Psake 是做什么用的?

docker - docker-in-docker (dind) 服务在 gitlab ci 中的作用

iphone - 使用 Telerik TestStudio 和 Jenkins 的连续 iPhone 集成测试服务器

ios - React Native iOS 构建失败 "unable to execute command: Segmentation fault: 11"

ios - scrollView 没有滚动到底部并且 ScrollView 上的内容 View 没有滚动

ios - 当输入语言为 RTL/Arabic 时,如何防止 UITextfield 更改对齐方式?

ios - 二元运算符 '+' 不能应用于类型 'Double' 和 'Element' (又名 'AnyObject' )的操作数

ios - 如何将文件上传到 Dropbox ios

cocoapods:pod 更新和 pod 安装需要永远

cocoapods - 所有 AWS 开发工具包(El Capitan + XCode 7)的 pod 更新结果为 "duplicate interface definition for class xxx"