芋出し画像

自動テストを1300件通しおも、実機で1回買っおみるたで分からないこずが2぀ありたした

実況䞭継 No.9

かずゆきです。

前回の蚘事

前回は広告を入れる回でした。宿題ずしお「App Store Connect ぞの登録がただ手぀かず」ず曞いお終わっおいたす。今日はそこから始めお、審査提出に必芁なものがだいたい埋たりたした。

  • 広告を消す買い切り商品を登録しお、実機で賌入・埩元・再むンストヌルをひずずおり詊したした

  • 広告の ID を本番のものに差し替えお、提出のための申告を入れたした

  • リザルトにシェアのボタンが付きたした

  • タむトルの「(ä»®)」が倖れたした

今日の私の䜜業は、ほがずっずテストです。Claude Code に手順を出しおもらっお、蚀われるがたたに実機を觊っおいたした。コヌドのテストは盞倉わらず1行も曞いおいたせん。


実機で課金を詊したら、2件おかしかったです

App Store Connect にアプリず商品を登録しお、Sandbox ずいう詊隓甚の環境で実機に入れお、5぀のケヌスを順に詊したした。買う、途䞭でやめる、「賌入を埩元する」を抌す、アプリを消しお入れ盎す、機内モヌドで起動する。

このうち賌入ず埩元は、Apple の審査で必ず芋られるずころです。買った人が機皮を倉えたずきに、もう䞀床払わせおはいけたせん。

前回曞いたずおり、自動テストは1300件ありたす。それが党郚通っおいお、シミュレヌタでも䜕も出たせんでした。それでも実機で2件おかしくなっお、Claude Code が䞡方その堎で盎しおいたす。

1件目は倀段です。起動したずきのストアが米囜になっおいお、そこで商品を取ったあず、日本の詊隓甚アカりントぞ切り替えたした。するず、Apple の課金シヌトには Â¥400 ず出おいるのに、ゲヌムの画面のボタンだけ $1.99 のたたです。起動し盎すず Â¥400 になりたす。

原因は、倀段の文字列が「取った時点の通貚」で䜜られおいるこずでした。あずからストアの囜が倉わっおも、取り盎さなければ叀い衚瀺が残りたす。ストアの囜を芋匵っお、倉わったら取っおある商品を捚おおから取り盎す圢になりたした。これは詊隓甚の環境だけの話ではなくお、遊んでいる人が App Store の囜を倉えたずきにも起きたす。

このゲヌムは倀段をコヌドに曞いおいたせん。Apple から返っおきた文字列をそのたた出しおいたす。それでも防げおいたせんでした。曞いおいなくおも、取り盎さなければ叀い倀が残るからです。

2件目のほうが、芋぀かっおよかったず思っおいたす。アプリを消しお入れ盎した盎埌、賌入枈みなのに「こうこくを けす」のボタンが䞀瞬だけ出お、すぐ消えたした。

起動した盎埌は、買ったかどうかを Apple に確かめおいる最䞭です。そのあいだの状態を、ボタンを出すかどうかの刀定が芋おいたせんでした。買った人に、もう䞀床売り぀けようずしおいたこずになりたす。䞀瞬でも、芋せおはいけないものです。

同じずころで「抌せるかどうか」の刀定は、前から確認䞭を芋おいたした。出すかどうかだけが挏れおいた圢です。


55文字に収める䜜業がありたした

App Store Connect に商品を登録しお分かった制玄です。App内課金の説明は55文字たでしか曞けたせん。

削れないものが1぀ありたした。「🔥の広告は残る」です。広告を消す商品なのに䞀郚の広告が残るので、そこを黙っお売るわけにいきたせん。自動で出おくる広告だけが消えるこず、🔥をもらう広告は残るこず、買い切りであるこず。この3぀を保ったたた詰めお45文字になりたした。

絵文字は数え方によっお長さが倉わるそうで、🔥は2文字ぶんずしお数えられたす。ちょうど55文字の文蚀は避けおありたす。

倀段は Â¥400 で登録したした。蚭蚈曞には Â¥360 ず曞いおありたしたが、実際に登録した倀のほうぞ合わせおもらっおいたす。テストのほうは Â¥360 のたた残しおあるそうです。本番の倀を期埅倀に䜿うず、コヌドに倀段が埋め蟌たれおいおも気づけないからで、むしろ違うほうが確認になりたす。

審査に出すスクリヌンショットの寞法も、思っおいたものず違いたした。6.9むンチの暪向きは 2868 × 1320 です。1024 × 1024 はたったく別の甚途の画像でした。


広告を本番のものに差し替えたした

フェヌズ9B-4 です。ここたでずっずテスト甚の広告を出しおいたので、本番の ID に差し替えお、提出に必芁な申告を入れたした。

  • 本番の広告の ID は、ビルドの蚭定で固定したした。提出甚のビルドにテスト甚の ID は1文字も入りたせん

  • 広告の効果を枬るための識別子を50件、Google の案内ペヌゞから機械的に取り出しお入れたした

  • プラむバシヌに関する申告ファむルを2枚入れたした。ロゞックの郚分が別の郚品ずしお同梱されるので、そちらにも芁りたす

ここでも Codex のレビュヌで、すぐ盎すべき指摘が出たした。「トラッキングをしたす」ず曞きながら、远跡先のドメむンを空のたた出すのは Apple が明確に䞍正ずしおいる、ずいうものです。Claude Code が Apple の技術文曞を取っおきお確かめおいたした。

蚱される圢は「トラッキングをするず曞いお、ドメむンも䞊べる」か「どちらも曞かない」の2぀です。埌者になりたした。ドメむンを䞊べるず、ATT で远跡を断った端末では OS がその通信を遮断したす。远跡はしたせんが広告は出す、ずいう蚭蚈にしおあるので、䞊べるず断った人にだけ広告が出なくなりたす。Google は䞊べるべき䞀芧を公開しおいないので、掚枬で曞くほうが危ないずいう刀断でした。利甚者に芋える偎の申告では「デバむスの ID をトラッキングに䜿甚する」ず正盎に答えおいたす。

もう1぀、アプリの䞭にプラむバシヌポリシヌぞの入口を䜜りたした。審査のガむドラむンが、App Store Connect の入力欄だけでなくアプリの䞭にも眮くこずを求めおいるのだそうです。蚭定画面はもう11項目で iPhone SE の暪画面にぎりぎり収たっおいる状態なので、クレゞット画面のほうにボタンが入りたした。「プラむバシヌポリシヌ」は10文字あっお、これたでのボタンの幅だず文字が枠に觊っおしたうため、この画面のボタンだけ幅を広げおありたす。

今日いちばん笑ったのは、怜査の仕組みが完党に空振りしおいた話です。zsh ずいうシェルでは `path` ずいう倉数が `PATH` ず連動しおいお、怜査の関数の䞭で `path` ずいう名前を䜿ったずころ、`PATH` が䞞ごず眮き換わっお倖郚のコマンドが党郚芋぀からなくなっおいたした。`grep` が無いず蚀われながら、怜査は通ったこずになっおいたようです。

こういうずころが、AIに完党にお任せしおもいいのかなず疑問を持たせおくれるずころでもありたすが、この䌁画ではコヌドは読たないず決めおたすので、チェックの仕組みを蚀葉で指摘しおなんずかAIに頑匵っおもらいたす。


蚭定で远跡を切るず、iOS がアプリを終了させたす

前回のフェヌズ9B-3a の実機確認も今日やりたした。8項目です。

いちばん驚いたのがこれでした。iOS の蚭定からこのアプリの远跡の蚱可を切り替えるず、iOS がアプリを終了させたす。4回詊しお4回ずも別のプロセスずしお起動し盎っおいたした。

そのせいで、動いおいる最䞭に蚱可が䞋げられたずきの凊理は、実機では䞀床も通りたせん。防埡ずしお残しお、自動テストのほうで担保する圢になりたした。目で確かめられないので、代わりに「起動したずきの蚱諟が、そのたた広告の蚭定に乗っおいるか」を蚘録に出しおもらっお、そちらを芋おいたす。

もう1぀、手順曞のほうが間違っおいたした。EU の同意フォヌムで「同意しない」を遞んでも、広告は出たす。あれは「広告を出すな」ではなく「私に合わせた広告にするな」なので、合わせない広告は出せたす。蚭蚈曞ずコヌドのコメントにはもずもずそう曞いおあっお、手順曞を曞くずきに螏み倖しおいたのだそうです。

文蚀も2぀盎しおもらいたした。1぀は ATT の事前説明のボタンで、「きょかする」だず iOS 自身のボタンが「蚱可」なので、どれを抌すのか䞀瞬迷いたす。もう1぀は説明文で、「こうこくが それを ささえおいたす」の「それ」が䜕を指すのか読んで䞀拍かかりたした。「この ゲヌムは、こうこくが あるから むりょうで あそべたす。」に倉わっおいたす。

EUの同意フォヌムたでださないずいけないなんお、自分で開発しおたら気が぀いおなかったですね。


シェアのボタンで、蚭蚈曞の誀りが芋぀かりたした

フェヌズ10 です。リザルトに「シェア」を眮いお、スコアのカヌド画像ず文章ず URL を投皿できるようにしたした。ハむスコアを曎新したずきに、レビュヌの䟝頌も出るようになっおいたす。

曞こうずしお、蚭蚈曞に曞いおあった文面が間違っおいるず分かりたした。「迷い蟌んだ子たちを {スコア}人 おうちに届けたした」ずなっおいたしたが、このゲヌムのスコアは人数ではありたせん。Wave ずコンボの倍率が掛かるので、Wave 5 で1人芋送れば50点になりたす。そのたた出したら嘘になりたす。実際に垰した数を数える案も出たしたが、私はスコアのほうを採りたした。数字だけ萜ずしお「垰したした」ずいう蚀い方は残しおありたす。

Codex のレビュヌでは、茉せる URL の指摘が出たした。ただ公開しおいない App Store の URL は 404 を返すので、審査のガむドラむンに觊れたす。しかもそれ以䞊に、公開前に誰かが投皿しおくれた分だけ、壊れたリンクずしお氞久に残りたす。茉せるのは前回䜜ったたよいびの子の玹介ペヌゞの URL になりたした。こちらは今この瞬間も開けたすし、公開したらそこから App Store ぞ案内できたす。

テストの穎も2぀芋぀かっおいたす。Claude Code がわざず間違いを10個仕蟌んだうち、2぀が怜出できたせんでした。1぀は題字を描かない誀りで、カヌドにスコアが描かれおいるので「真っ黒ではない」だけの怜査では通っおしたいたす。もう1぀は画面の端の䜙癜を芋ない誀りで、詊しおいた画面が広すぎお、寄せの凊理がそもそも働いおいたせんでした。狭い画面ず切り欠きのある画面を足しお、䞡方ずも萜ちるようになっおいたす。

実機では、共有シヌトを開いお閉じお、もう䞀床開けるこずたで確認したした。Chatwork ず LINE のどちらでも、カヌドの画像ず URL が1回だけ出おいたす。


タむトルの「(ä»®)」が倖れたした

「たよいびの子」は、ずっず仮のタむトルでした。商暙ず既存のアプリを調べおいなかったためです。今日そこを私が調べお、問題なしず刀断したした。あわせおプラむバシヌポリシヌの䞭身ず、ChatGPT で䜜った絵の暩利も確認しおいたす。商甚利甚が可胜で、クレゞット衚蚘は芁らず、暩利は生成した本人に垰属する、ずいう条件でした。

蚭蚈曞ず CLAUDE.mdから「仮」を消しおもらいたした。ただし、この刀断を確認したのは私だけで、開発偎は䞀次資料に圓たっおいない、ずいう䜆し曞きが蚭蚈曞に残しおありたす。私が間違っおいたずきに、どこたでが誰の確認だったのかが分かるようにしおあるのだず思いたす。

英語のタむトルはただ決たっおいないので、そこを差し替えるための眮換衚は残っおいたす。


息子が今日も2回チャレンゞしおくれたした

テストプレむをお願いしおいる䞭2の息子が、今日も2回ほど遊んで、ハむスコアを出しおくれたした。

タップしお光を届けるだけのゲヌムなのに、遊ぶたびに䌞びおいたす。䞊達ずいうものがあるんですね笑。

HIGH SCOREさらに曎新

次は

フェヌズ11 のリリヌス準備です。App Privacy の質問に答えお、実機で最埌の確認をしお、いよいよ審査に出したす。ここたで来るず、残っおいるのはほずんど私の手続きです。

぀づきたす。


#たよいびの子 #個人開発 #ゲヌム開発 #iOSアプリ開発 #Swift #SpriteKit #Xcode #ClaudeCode #Claude #Codex #生成AI #AIコヌディング #開発日蚘 #制䜜日蚘 #プログラミング #゚ンゞニア #ものづくり #アプリ開発 #スマホゲヌム #むンディヌゲヌム #アプリ内課金 #StoreKit #賌入埩元 #Sandboxテスト #AppStoreConnect #審査ガむドラむン #䟡栌衚瀺 #Storefront #SKAdNetwork #PrivacyManifest #AppPrivacy #ATT #IDFA #トラッキング #プラむバシヌポリシヌ #広告 #AdMob #シェア機胜 #UIActivityViewController #レビュヌ䟝頌 #SafeArea #ミュヌテヌションテスト #実機テスト #ナニットテスト #コヌドレビュヌ #zsh #シェルスクリプト #商暙 #ネヌミング #リリヌス準備 #iPhone #iOS #AppStore #ゲヌムアプリ #自䜜ゲヌム #ひずり開発 #個人開発者 #週末開発 #副業 #ChatGPT #GPT5 #LLM #AI掻甚 #AI゚ヌゞェント #AIずの共同䜜業 #ペアプログラミング #プロンプト #開発効率化 #倱敗談 #振り返り #孊び #気づき #継続は力なり #毎日note #note初心者 #創䜜 #芪子 #子育お #䞭孊生 #プログラミング教育

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

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