3

私の Xcode ボットは、リポジトリのサブモジュールの古いバージョンを使用しています。

親アプリのコミット履歴でサブモジュールが新しいバージョンに更新されているにもかかわらず、古いサブモジュール コードをビルドします。

  1. 親リポジトリはサブモジュール v1.0 を使用します。
  2. 親リポジトリはサブモジュールを v2.0 に更新し、サブプロジェクトのコミットを github にコミットします。
  3. 「コミット時」の Xcode ボットは、新しいコミットに対して自動的に実行されます。
  4. 親アプリが TestFlight にアップロードされます。
  5. TestFlight ビルドには、正しい v2.0 サブモジュール コミット (親リポジトリへの最後のコミット) が含まれています。
  6. ただし、TestFlight ビルドには古いサブモジュール v1.0 コードが含まれています。

サブモジュールとローカル ビルドで「修正」されたにも関わらず、TestFlight ビルドでバグが再現されたとき、私は頭がおかしいと思いました。

Xcode ボットが、指定されたサブモジュールのコミットを適切にプルしないことが判明しました。

4

2 に答える 2

1

Xcode 6 の時点で、Xcode ボットはリポジトリのサブモジュールを指定されたコミットに更新することが保証されていません。

Xcode ボットのビルドの前に、サブモジュールを手動で更新する必要があります。

git submodule update --init --recursive

これを簡単にするためupdateGitSubmodulesに、cavejohnsonXcode Bot スクリプト ツールを追加しました。サブモジュールを自動的に更新するには、Before Integration Run Script フェーズに以下を追加します。

統合前 > スクリプトの実行:

#!/bin/bash
PATH=/Library/Frameworks/Python.framework/Versions/3.4/bin:$PATH

cavejohnson updateGitSubmodules

最後に、この動作をアップストリームで修正する方法を調べるためのチケットをオープンしました。

于 2015-03-20T20:42:09.733 に答える