芋出し画像

「暗号は䜿っおいたせん」ず説明されたので信じおいたら、提出の盎前に自分のアプリの䞭から出おきたした

実況䞭継 No.10

かずゆきです。

前回

前回で、課金も広告も申告もひずずおり片づきたした。今日はフェヌズ11、リリヌス準備です。蚭蚈曞に䞊べたフェヌズの、最埌の1぀になりたす。

  • アプリの䞭の文蚀を、小孊3幎たでに習う挢字だけで曞き盎したした

  • ストアに出すスクリヌンショットず説明文を、日本語ず英語で甚意したした

  • ビルドを App Store Connect にアップロヌドするずころたで進みたした

遊びの䞭身はもう觊っおいたせん。今日やったこずは党郚、出すための仕事です。


文蚀を、小3たでの挢字で曞き盎したした

きっかけは私です。幎霢レヌティングを 9+ で申告する぀もりでいるのに、アプリの䞭がひらがなだらけでした。9+ は小3〜小4にあたるので、「小孊生でも遊べる」を䜎孊幎に寄せお解釈しすぎおいた、ず Claude Code に䌝えたした。

䜿っおよい挢字を小孊1〜3幎の孊習挢字440字に限っお、25件が曞き盎しになりたした。「効果音」は「音」、「䞀時停止䞭」は「止たっおいたす」。長かったのが賌入たわりで、「こうにゅう手続きが保留䞭です。承認などが終わるず、自動で反映されたす。」が「こうにゅうの お぀づき䞭です。おわるず 自動で ぀かえるように なりたす。」になっおいたす。

決め事が1぀あっお、亀ぜ曞きは䜜りたせん。「蚘ろく」のような曞き方をするず、かえっお読みにくくなりたす。440字の䞭に党郚の字が入る熟語だけを挢字にしお、1字でも倖れたら語ごずひらがなにしおもらいたした。

これを目で守るのは無理なので、440字を超える字が混ざったら赀になる怜査を、Claude Code が曞きたした。䟋倖は理由ずセットでしか足せたせん。いたの䟋倖は1件だけで、远跡の蚱可を求める画面の「蚱可」です。あれは iOS 自身が出すボタンの字をそのたた匕いおいるので、こちらでは倉えられたせん。

い぀もどおり、わざず間違いを仕蟌んで怜査が萜ちるかも確かめおいたす。最初の版は1぀芋逃しおいお、Claude Code がその堎で盎したした。぀いでに前日の抜けも1件出おきたそうです。私は報告を読んだだけで、テストを曞いたのも、間違いを仕蟌んだのも、盎したのも Claude Code です。


スクリヌンショットの芋出しは、絵の䞊に眮けたせんでした

ストアに出す5枚を䜜りたす。撮圱のために、DEBUG のずきだけ2本指のタップで画面を止められるようにしおもらいたした。䌚心の䞀撃も🔥の発動も、止めなければ撮れたせん。

この撮圱が、思っおいたよりずっず手間でした。ストアに䞊べたいのは、このゲヌムらしい堎面です。モンスタヌが4〜5䜓いおコンボが぀ながっおいるずころ、䌚心の䞀撃が決たった瞬間、🔥でたずめお芋送っおいるずころ、ハむスコアを曎新したリザルト。どれも䞀瞬で終わるか、そこたで遊ばないず出おきたせん。

䜜り物の堎面を組み立おるのは無しにしおありたす。止める仕組みは画面を止めるだけで、持ち物やハむスコアを郜合よく差し替える入口は、アプリ偎から呌べないようになっおいたす。぀たり🔥の絵を1枚撮るには、実際に遊んで🔥を拟っお、狙った瞬間に止めるしかありたせん。これを日本語ず英語で2セットです。5枚のうち3枚は、撮るたでに䜕回も遊び盎したした。

シミュレヌタだず2本指のタップが Option を抌しながらのクリックになっお、遊びながら「いただ」で止めるのがかなり難しく、あずからキヌボヌドの P でも止められるようにしおもらっおいたす。

芋出しは最初、絵の䞊に重ねる圢でした。ずころが1枚目ず3枚目で COMBO の衚瀺ずぶ぀かりたす。WAVE ず SCORE は䞊の䞡端、COMBO は䞊の真ん䞭、ポヌズず持ち物は䞋にあっお、どの堎面を撮っおも空いおいる堎所がありたせん。垯を画面の倖ぞ分けお、絵をその䞋に収める圢になりたした。絵は少し小さくなりたすが、もずもず暗い絵なので巊右の䜙癜は背景に溶けたす。

英語版は、同じ絵に芋出しだけ差し替えるのでは足りたせんでした。HUD もボタンも、ものがたりの本文も英語になるので、シミュレヌタの蚀語を英語にしお5枚ずも撮り盎しおいたす。

芋出しの文蚀では、私から1぀指摘を出したした。䌚心の䞀撃の絵に「たん䞭を ねらうず 匷く 光る」ず曞いおありたしたが、圓おるのは真ん䞭ではなく顔のはずです。Claude Code がコヌドを芋お、刀定は頭の䜍眮ず頭の圓たり半埄で芋おいるこず、䌚心のずきはダメヌゞを読たずにその堎で芋送っおいるこずを確かめお、「顔を ねらうず 䞀発で 垰せる」に盎りたした。英語も `Hit the face: one light is enough` になっおいたす。曞いおあるこずが実装ず食い違ったたた出るのは、ストアの絵ずしおはたずいずころでした。


ChatGPT に、ストアの画像を䜕床も䜜り盎しおもらいたした

ここは私の䜜業です。Claude Code が䜜っおくれた5枚は、玠のゲヌム画面の䞊に垯を1本茉せただけのもので、間違っおはいないのですが、ストアに䞊べたずきの芋え方ずしおは匱いず思いたした。

頑匵っお撮ったスクショ

そこで ChatGPT に、ゲヌム画面を額に入れお、芋出しず背景の絵を足した合成画像を䜜っおもらいたした。1回では決たりたせん。額の食り、背景の暗さ、芋出しの䜍眮、文字の倧きさず、泚文を倉えおは出し盎しおもらっお、日本語5枚ず英語5枚で、それなりの枚数を捚おおいたす。倜のうちに䜕床も䜜り盎しおもらっお、ようやく10枚そろいたした。

そこから先はたた Claude Code です。ChatGPT が返しおくる画像は 1849×851 で、Apple が受け取るのは 2868×1320 ちょうどです。比はほが同じなので拡倧でいけたすが、1.55倍に匕き䌞ばしお WAVE や SCORE の文字が読めるかどうかが心配でした。原寞で切り出しお確かめお、読めるこずを確認しおいたす。

寞法がちょうどか、日英で枚数ず䞊びが揃っおいるかは、仕䞊げのスクリプトが自分で怜算したす。比が少しでもずれおいたら、歪んだたた曞き出さずに止たりたす。

なんか違う・・・
これもなんか違う・・・
䜕床かのリテむクでできたのがこれ

䞊べる順番は、審査のガむドラむンが「アプリを䜿っおいるずころ」を求めおいるので、プレむ䞭から始めお、䌚心、🔥、リザルト、ものがたりで終わる圢にしたした。タむトル画面を1枚目に眮くのは嫌われるそうです。


ストアの説明文で、絵文字が匟かれたした

App Store Connect の「抂芁」の欄に説明文を貌ったら、「このフィヌルドには1぀以䞊の無効な文字が含たれおいたす」で止たりたした。

原因は絵文字でした。アむテムの説明に💧ず🔥を䜿っおいお、この2぀は文字コヌドの基本領域の倖にいたす。⚡ず♥も絵文字ずしお扱われたす。぀いでに、字䞋げに䜿っおいた党角スペヌスも匟かれたした。

アむテムは蚀葉で曞き盎したした。「⚡ 光の勢いが䞊がりたす」は「・光の勢いが䞊がるもの。しばらく匷く圓たりたす」です。審査の担圓者に向けたメモにも「こうこくを 芋お 🔥」ず曞いおいたので、そこも「末尟に炎の絵文字」ずいう蚀い方に倉えおありたす。同じ理由で匟かれるかもしれたせん。

説明文そのものは、日本語を曞いおから英語は蚳さずに曞き䞋ろしおもらいたした。1぀だけ数字の盎しがありたす。最初「1回3分」ず曞いおあったのですが、Claude Code が Wave の進行を数え盎したら、Wave 7 たでで1.6分、Wave 11 でちょうど3分でした。初めお遊ぶ人は Wave 3〜5 で終わるので、1分に届きたせん。「1回1〜3分」ずいう蚀い方になっおいたす。

怜玢甚のキヌワヌドの欄も埋めたした。ここは私ず Claude Code で、怜玢からの流入は圓おにしない、ずいう話で合意しおいたす。タむトルが造語なので指名怜玢がれロですし、「暇぀ぶし」や「無料 ゲヌム」は倧手が抌さえおいたすし、そもそも App Store の怜玢順䜍はダりンロヌド数ずレビュヌの勢いに匕かれるので、出したばかりのアプリには手の打ちようがありたせん。それでも欄はタダなので、现いずころだけ拟っお7語入れたした。

玹介ペヌゞの英語版も䜜っおもらいたした。プラむバシヌポリシヌの URL だけは蚀語ごずに登録できず1本きりなので、日本語版を登録しお、そのペヌゞの頭から英語版ぞ枡す圢にしおありたす。


提出する圓のビルドで、怜査が2぀ずも空振りしおいたした

ここからが今日いちばん困ったずころです。

提出甚のビルドArchive ずいいたすを䜜っお、Claude Code が甚意しおくれた提出前の怜査にかけたら、こう出たした。

✘ 怜査が空振りしおいるGameScene が芋぀からない
✘ GMA のシンボルが実行ファむルにも .debug.dylib にも無い

この怜査は、開発甚の画面が提出するビルドに混ざっおいないかを芋るためのものです。前日に入れたばかりでした。

理由は、提出甚のビルドでは関数や型の名前が削られおいるからでした。名前を読み出す道具が䜕も返したせん。手元で䜜る通垞のビルドでは削られないので、そちらでは正垞に働いお芋えおいたした。名前を読む道具ず、文字列を拟う道具の䞡方を合わせる圢に、Claude Code が盎しおいたす。

助かったのは、この怜査を入れたずきに「本番に必ずあるはずの `GameScene` が芋぀からなければ、怜査そのものが空振りしおいる」ずいう䞀行を足しおあったこずです。これが無ければ、䜕も芋぀からなかったこずを「挏れおいたせん」ず読んで、そのたた出しおいたした。前日の蚘事で曞いた `PATH` を壊した話ず同じで、怜査は通ったこずになるほうが危ないです。

怜査を盎したあず、い぀もどおり間違いを仕蟌んで確かめおいるのですが、今回は仕蟌み方そのものが圓たっおいたせんでした。仕蟌んだのに萜ちないのを芋お「怜出できたせんでした」ず報告するずころだった、ず曞いおありたす。提出甚のビルドにしお初めお出おきた譊告も6件あっお、そちらも盎しお0件になりたした。


「暗号は䜿っおいたせん」が間違いでした

アプリを出すずきに、暗号を䜿っおいるかどうかを申告する欄がありたす。䜿っおいなければ「免陀」で終わるのですが、間違えるず茞出の芏則の話になるので、適圓に答えるわけにいきたせん。

Claude Code の最初の説明は「自前の暗号はれロで、OS 暙準の HTTPS を䜿っおいるだけです」でした。私もそう思っおいたした。このゲヌムは通信らしい通信をしおいたせんし、暗号を曞いた芚えもありたせん。

念のため、提出するバむナリの䞭身を調べおもらったら、出おきたした。

third_party/openssl/boringssl/src/crypto/fipsmodule/cipher/e_aes.cc.inc
third_party/openssl/boringssl/src/crypto/fipsmodule/ec/p256.cc.inc

BoringSSL ずいう暗号のラむブラリが、たるごず入っおいたした。ほかにも25件出おいたす。AES も楕円曲線も入っおいたす。

持ち蟌んでいたのは Google の広告 SDK でした。この SDK は静的フレヌムワヌクずいう圢なので、アプリ本䜓のバむナリに溶けお䞀䜓になりたす。そのため、同梱しおいる広告 SDK のファむルのほうを調べるず0件に芋えたす。リンク先の䞀芧を出す道具で芋おも、暙準のセキュリティ機胜があるだけで、混ざり蟌んだ暗号は出おきたせん。バむナリの䞭の文字列を `boringssl` で探すのが確実でした。

分かっおしたえば、申告そのものは難しくありたせん。実装しおいる暗号は「暙準的な暗号化アルゎリズム」で、甚途は広告 SDK が自瀟のサヌバヌず HTTPS で話すためだけです。暗号そのものが売り物の機胜ではないので、免陀の偎に入りたす。ここは調べた結果を芋お、免陀で出すず私が決めたした。Info.plist にそう曞いおおくず、アップロヌドのたびに聞かれなくなりたす。

私が面癜かったのは、最初の説明が嘘ずいうより、調べ方の問題だったずころです。自分の゜ヌスコヌドに暗号を曞いおいないのは事実で、同梱しおいるフレヌムワヌクを芋おも0件で、リンク先を芋おも出おきたせん。それでもバむナリの䞭には入っおいる、ずいう状態がありえたす。「たぶん OS のだけです」で答えおいたら、間違った申告のたた出しおいたした。

アップロヌドの怜査でも1回止たりたした。バヌゞョン番号をアプリ本䜓にしか曞いおいなくお、Apple は同梱するフレヌムワヌクごずに芁求する、ずいう止たり方です。ここも盎しおもらっお、ビルド番号を2に䞊げお、ようやく App Store Connect ぞ䞊げるずころたで来たした。


息子が今日もハむスコアを曎新したした

テストプレむをお願いしおいる䞭2の息子が、今日も䜕床か遊んでくれお、ハむスコアを曎新しおくれたした。

こちらは1日䞭、挢字ず寞法ず暗号の申告を觊っおいたので、遊んでいる人がちゃんずいるずいうのは、けっこう効きたす。ストアに出すスクリヌンショットのハむスコアも、䜜り物ではなく実際に遊んで出した数字です。

ハむスコア 18䞇点超え

次は

幎霢レヌティングの算出結果を蚈画曞に曞き蟌んで、TestFlight で最埌にひずずおり觊っお、本䜓ず広告非衚瀺の課金を同じ束で提出したす。フェヌズ11 の完了条件は「審査埅ちになるこず」なので、あず少しです。

぀づきたす。


#たよいびの子 #個人開発 #ゲヌム開発 #iOSアプリ開発 #Swift #SpriteKit #Xcode #ClaudeCode #Claude #Codex #生成AI #AIコヌディング #開発日蚘 #制䜜日蚘 #プログラミング #゚ンゞニア #ものづくり #アプリ開発 #スマホゲヌム #むンディヌゲヌム #リリヌス準備 #AppStoreConnect #審査ガむドラむン #スクリヌンショット #ストア説明文 #ASO #キヌワヌド #教育挢字 #やさしい日本語 #幎霢レヌティング #ロヌカラむズ #英語察応 #倚蚀語察応 #Archive #ValidateApp #ビルド番号 #バヌゞョン管理 #茞出コンプラむアンス #暗号申告 #BoringSSL #GoogleMobileAds #静的リンク #バむナリ解析 #䞊行凊理 #シェルスクリプト #画像凊理 #ランディングペヌゞ #自動怜査 #ミュヌテヌションテスト #SwiftTesting #iPhone #iOS #AppStore #ゲヌムアプリ #自䜜ゲヌム #ひずり開発 #個人開発者 #週末開発 #副業 #ChatGPT #GPT5 #LLM #AI掻甚 #AI゚ヌゞェント #AIずの共同䜜業 #ペアプログラミング #プロンプト #開発効率化 #倱敗談 #振り返り #孊び #気づき #継続は力なり #毎日note #note初心者 #創䜜 #芪子 #子育お #䞭孊生 #プログラミング教育

いいなず思ったら応揎しよう

かずゆき よろしければ応揎お願いしたす いただいたチップはよりよい蚘事を曞くためにカフェ代ずしお䜿わせおいただきたす