首页 > 解决方案 > CircleCI for iOS - 缓存 cocoapods 依赖项

问题描述

我正在尝试使用fastlane scan. 运行测试效果很好,但是通过安装来自 cocoapods 的依赖项,总时间增加了很多。

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

- 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 install即使没有任何 pod 发生变化,也会导致校验和发生变化。因此,它保存在缓存中的键永远不会与试图从缓存中恢复的内容对齐。

有一个更好的方法吗?

标签: ioscontinuous-integrationcocoapodscircleci

解决方案


是的,有一种方法可以使这项工作。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


推荐阅读