Help us understand the problem. What is going on with this article?

BitriseでCarthageのビルド成果物をキャッシュする

More than 1 year has passed since last update.

はじめに

BitriseでCarthageビルド,および成果物のキャッシュを行うようにしたので手順等をメモ

  • 経緯
    • Carthageのビルド成果物をリポジトリに含めて運用していた
    • Xcode9.3(Swift4.1)に移行してビルドしたところ,100MBを超えるファイルが生成され,GitHubにpushできなくなった
    • もともとBitriseのワークフローは整備してあったので,その中でCarthageをビルド/キャッシュするようにした

設定方法

※ あらかじめ,基本的なiOSのビルド用Workflowは策定済みであるものとする

以下の3つのStepを追加
1. Cache:pull
2. Carthage
3. Cache:push

Cache:pull の追加

  • 挿入箇所: Git clone 以降
    • Git clone stepの直後でなくても問題はない
  • オプション: 特にいじらなくてOK

Carthage の追加

  • 挿入箇所: Cache:pull 以降
  • オプション:
    • Command: bootstrapを選択
      • updateではキャッシュがある場合にビルドできなかった
    • Options: 必要であれば以下のように設定
      • 設定例: realm-cocoa --platform ios --no-use-binaries スクリーンショット 2018-05-28 17.44.10.png

:pencil: Carthage Stepではなく Script StepでCarthageのビルドを行った場合は成果物をキャッシュできない模様

Cache:push の追加

  • 挿入箇所: 全Stepの最後
    • キャッシュ対象がCarthageのビルド成果物だけならCarthageの直後でもいいかも?(未確認)
  • オプション:
    • Cache paths: ./Carthage -> ./Carthage/Cachefile
      • Carthageディレクトリがリポジトリのルートにない場合は適宜パスを変更

その他

キャッシュファイルの参照・管理

  • Project > Settings > Manage Build Cachesから参照可能. スクリーンショット 2018-05-28 17.45.50.png
    • キャッシュの削除のほかダウンロードもできる.
    • キャッシュファイルはappごとに管理されており,別のWorkflowでキャッシュしたものがあればそれを利用可能(検証用のAdHocビルド時に生成されたキャッシュをAppStore用ビルドで使う,など).

ビルド時間への影響

キャッシュ(今回の計測時は1.35GB)を利用した場合,あらかじめリポジトリに含めておいたビルド成果物を利用した場合に比べ,ビルド時間は約2分増加.

gaussbeam
通りすがりのiOSアプリ開発者
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away