はじめに:AI時代の開発者の現実
「AIのおかげで、もうプログラマーは不要になる」
そんな話をよく聞きます。確かに、ChatGPTやClaude、GitHub Copilotのおかげで、コードを書くのは驚くほど簡単になりました。「Electronアプリ作って」と言えば、数分でひな形ができあがる。でも、ちょっと待ってください。
**TestFlightに110回以上ビルドを提出して、1ヶ月経ってもまだMac App Storeの審査を通過できていない**
これが、私の現実です。
問題の核心:起動時クラッシュという悪夢

Mac App Store審査から返ってきたのは、シンプルで残酷な一言。
> 「起動時にクラッシュします(Guideline 2.1)」
ローカルでは動く。TestFlightでは動かない。この差は何なのか?
私が直面した技術的な壁
署名証明書 TeamID(N7R) vs プロファイル TeamID(WWT)
↓
launchd spawn失敗(エラーコード153)
↓
起動すらしない
AIが教えてくれなかったこと

AIに聞けば、証明書の作り方も、Electronの設定方法も、全部教えてくれます。でも、以下のような「現場の泥臭い問題」は教えてくれませんでした:
1. **Developer ポータルのIdentifierが勝手に大文字になる問題**
- `helper.renderer` → `helper.Renderer`
- この小さな違いで何日も溶ける
2. **100通り近くのの組み合わせを試す必要性**
- DNS設定、GPU設定、JIT設定…
- どの組み合わせが正解なのか、総当たり戦
3. **「動いたと思ったら別の問題」の連鎖**
- 署名を直したら起動した!
- でも今度はネットワークが…
- それを直したらGPUが…
100回失敗して学んだこと

1. ログを信じすぎない
最初はエラーログを頼りに修正していました。確かにログは大事です。でも、本当の原因は全く別のところにあることもあったり・・・
2. 小さな違いが致命的
`Renderer` と `renderer` の違い。たった1文字の大文字小文字で、1週間が消えました。
3. 公式ドキュメントも完璧じゃない
Appleの公式ドキュメント通りにやっても動かない。なぜなら、Electronという特殊な環境は想定されていないから。
それでも続ける理由
正直、心が折れそうになることは何度もありました。でも、続けています。なぜか?
**「夢だったアプリリリースがもう目と鼻の先間できている!AIを活用することでできなかったことが実現可能になるというのを伝えたい!」**
仕事を奪われるなど言われますが、AIを活用することで自分の可能性が高まることをぜひいろんな人に知ってもらいたい。
同じ問題で苦しんでいる方へ:確認すべきポイント
もし同じような問題に直面したら、まずこれをチェック:
- Bundle IDの大文字小文字が完全一致しているか(Developer PortalとアプリのInfo.plist)
- TeamIDが証明書とプロファイルで一致しているか
- Helper系のentitlementsが正しく設定されているか
- application-identifierがプロファイルと一致しているか
- MAS用の証明書が「3rd Party Mac Developer Application」になっているか
- Installerの証明書が別途用意されているか
困難に直面したときの心構え
1ヶ月、110回の失敗から学んだ、困難との向き合い方:
1. 問題を細分化する
「アプリが動かない」→「起動時にクラッシュ」→「署名の問題」→「TeamIDの不一致」
2. 仮説と検証を繰り返す
思い込みを捨てて、一つずつ可能性を潰していく。
3. 記録を残す
今日試したこと、うまくいかなかったこと、全て記録。この開発日誌が、いつか突破口になる。
4. 休むことも戦略
煮詰まったら一旦離れる。新鮮な目で見ると、見落としていたことに気づく。
まとめ:AI時代だからこその新しい壁

AIのおかげで、プログラミングの敷居は確実に下がりました。でも、**実装以外の壁は依然として高い**。
- プラットフォーム固有の罠
- 証明書地獄
- 審査という名のブラックボックス
これらは、AIがどんなに進化しても、実際にぶつかって、苦しんで、乗り越えるしかない壁です。
**でも、だからこそ面白い。**
111回目の提出で、きっと突破できる。そう信じて、今日もビルドボタンを押します。

突破できたら、その瞬間と解決方法を必ず共有します。

