Carthageのキャッシュ管理について

2024/01/07に公開

CarthageでBuildフォルダ配下のframeworkを削除しても--cache-buildsで、Valid cache foundと言われてしまいキャッシュの仕組みを調べた際の備忘録

まとめると

キャッシュオプション--cache-buildsでの、キャッシュ有無はBuild配下のライブラリ名.versionの有無で判定している
つまり、何らかの理由で1つだけライブラリ取得し直したい時は、そのライブラリの.versionファイルを削除して、キャッシュオプション付きでbootstrapを行うと良い(かも)

くわしく:--cache-buildsのキャッシュ有無判定の仕組み

  • Carthageのビルドされたキャッシュ情報はBuildディレクトリで隠しファイルとして管理されている。ファイル名は“.Project.version”となっている。 (Projectはそのライブラリのプロジェクト名)
  • それぞれのライブラリごとにバージョンファイルがJSONで書かれており、下記のコードのような感じになっている
  • この、versionファイル内のplatformとhashの組み合わせ有無で--cache-buildsの実行されるか否かが決まる
  • 毎回.versionファイルはオプションに関わらず生成される
xx.version
{
  "commitish" : "1.6.0",
  "Mac" : [
   {
       "hash" : "de07bfdba346deb20705712c2ea07e7191d57f07d793c8c0698ded085bdb5cce",
       "name" : "Prelude"
   }
  ]
}

参考

Discussion