この一ヵ月の軌跡
【2021/11/18】 開発
皆さんには何の役にも立たないと思いますが、アプデに悩まされたこの約1ヵ月を吐き出させてください。

Androidアプリのアップデート

①オフラインプレイを制限
現在、Androidだけでアクティブインストール数3万、デイリーDL数が平均で500程あるにもかかわらず、1日の広告収入が数百円しか出ない。
調べると現在のメイン層である海外勢がほとんどオフラインでプレイしていたので、国や地域によってはインフラが整備されてなくて定額で通信し放題じゃないかもしれないけど、起動して10分以降はオフラインプレイを制限するように変更を加えた。

②新しい課金方式への対応
ゲームエンジン開発元の導入方法のPDFを翻訳して同エンジンユーザーに共有できるように編集。
「実装方法が簡略化したけど旧処理でも問題ない」との事で申請に出すもエラーが出たので、実装方法はそのままでゲームエンジンを最新版にアップデートすると審査に通る。(Ver.3.1.0)

③Ver.3.1.0で操作ができなくなる
マルチタッチが効かずにまともにプレイできないという問い合わせが殺到し、レビューも大荒れに。
原因を探るがプログラム部分に問題なく、Ver.3.1.0より前のバージョンでも同様の不具合が出る。
アプデ申請した翌日にゲームエンジンの開発元から最新バージョンのマルチタッチにバグがあったとの事で修正版がリリースされているのを発見し、エンジンを最新版にして再びアップデート。(Ver.3.1.1)

④サーバーにアクセスできてない事が発覚
機種変の為のサーバーへのバックアップ&ロードが出来ないというバグ報告が入る。
1ヵ月前にも同じような報告が2件あり、検証したがこちらの環境では発生せず、検証した動画を送ると返信がなかったので「IDの打ち間違いで解決した」と判断していたが、今回別の場所にもサーバーからの情報が受信できてないという報告も重なって再調査する。
自社サーバーがhttps対応してなかったので、Googleがある時期からhttpへのアクセスを制限していたのが原因だった。
しかも制限されるのはAndroid9以上の機種で、自分がAndroid8という化石機種を使っていたので、普通に通信が可能で気づけなかった。
ゲームエンジンのGetオブジェクトの除外リストにドメイン登録する事でアクセス制限を抜けられるとの情報を得てリストに登録するも反映されない。
記述方法が違うのかと試行錯誤していたが、同エンジンを使っているバリバリのプログラマーさんが解析してくれてエンジン側のバグだと判明。
開発元には報告したが修正を待てないので、そのプログラマーさんが魔改造してくれて無事アクセス制限から解放されてアップデート。(Ver.3.1.2)

⑤課金ができなくなる
11月に入ってから課金ができないという報告が入る。
課金方式は「旧処理でも問題ない」という部分はBilling Libraryのバージョン2と3に互換性があるという意味らしく、うちのアプリはバージョン1のままだったので処理を変更しないといけなかった。
11/1以降は新方式でないと申請に通らないという認識でさほど問題視してなかったが、バージョン1だからか既存アプリも11/1から課金自体が出来なくなっていた。
Ver3.1.2までは10月中にテストしたので気づけなかったが、新方式に対応してアップデート。(Ver.3.1.3)

⑥マップが切れて後半のステージが選択できない
Ver.3.1.3にアップデート後、更にマップの端が切れて見えないという報告が入る。
元々iPhoneXが発表される前に開発していて、かなり前にiPhoneXのアスペクト比に対応はしたが、その後に更に縦長のアスペクト比の機種が出てきたのが原因。
また一部でナビバーが出る際に表示領域に干渉してマップがズレる機種があったので諸々対応してアップデート。(Ver.3.1.4)

⑦課金アイテムが勝手に返金される
Ver.3.1.3時に修正した部分以外にも新方式に対応できてない部分があり、3日後に自動で返金されていた。
「確認」「承認」「認識」という意味の単語が前後の文脈によって同じ意味の日本語に翻訳されて必要な処理を見落としていたので、必要な処理を追加してアップデート。(Ver.3.1.5)

★Androidの総括★
古い機種を使ってたり情報を更新してなかった自分にも非があるけど、ゲーム内のプログラム以外の不運な要因が重なり過ぎた気がする。
特にエンジンのバグは元々プログラムができない人用のエンジンで気軽にログを解析できるようなものではないので、プログラマーさんの協力が無ければ解決どころか原因の特定もできなかったと思う。


iPhoneアプリのアップデート
※オフラインプレイはAndroidと同じ処理で、課金方式の変更等もないのでIDFAのATT対応のみに注力

①Xcodeをアップデート
MacOSが古いせいで正規の手順だとXcodeも少し前のバージョンまでしかアップデートできないのでAppStore以外からアップデート。

②iPhoneのiOSをアップデート
iOS14以降からの機能なのでテスト用のiPhoneをアップデートすると自動的に最新のiOS15.1に。

③ゲームエンジン内外の設定
ゲームエンジン外の設定を済ませ、エンジン内での設定の情報が全くなかったので試行錯誤しながら実装。
Xcodeのシミュレーター上でアラートが出る事を確認し、実機でも確認しようとすると実機との接続が認識されず「繋ぎ直して」というメッセージが出る。
ケーブルが劣化したのかと買い直しに行きそうになったが、デバイスリストには出ているのでケーブルには問題ないと判断して調べると、実機よりXcodeの対応OSが古いと出るメッセージらしい。
なぜ「XcodeとデバイスのOSのバージョンが対応してません」等としないのか?紛らわしすぎ!

④MacOSをアップデート
Xcodeをもっと新しいバージョンにできるようにMac mini(2012)のOSをBig surにアップデートする方法を調べる。
Macは借り物なので、持ち主の許可と立会いのもと、無理やりアップデートする非推奨な方法を何度か試すがうまく行かず。

⑤デバイスサポートを入れてみる
Twitterで不足しているiPhone側のOSのデバイスサポートをXcodeに入れると実機にビルドできるようになると教えて頂く。
デバイスサポートの配布先にはiOS15までしかなく、入れてみても認識されなかったので、MacOSが古くて開けないが、Xcodeの最新版をDLしてiOS15.2のデバイスサポートを抜き取り、古いXcodeに入れるが認識されず。

⑥iPhoneをダウングレード
MacもXcodeも上げられないのでiPhoneの方を下げるべく、方法を調べる
iOS14のipswファイルを入手してitunes経由やReibootというソフトをつかったり、いくつかの方法をMacとWin両方で試すもうまく行かず八方塞がりに。

★iPhoneの総括★
やはり「iPhoneのOSが古いので新しい機能に対応してないからビルドできない」ならわかるけど「iPhoneのOSが新しすぎるのでビルドできない」というのが納得いかない。
要求されるスペックは満たしてるんだから問題ないはずなのに…
古いMacだからか度々フリーズする中でストレスを溜めながら試行錯誤したけど、心が折れるというよりMacを叩き壊しそうになる寸前だったので追究の手を止めた。
もしかしたら、実機にビルド出来ないのはOSのバージョン以外の原因の可能性もあります。
もし同じ問題に直面した事があって解決方法をご存じの方がいらっしゃったら、教えて頂けると嬉しいです。
現状だと新しいOSに対応できるMacを買うしかないけど、お金がないのでアップデートを一旦保留にします。
委託開発のゲームでも実機のテストは必須だから根本的な解決をしないといけないけど、精神衛生上これ以上続けると爆発しそうなので一旦蓋をして距離を置きます。


★総括★
今回のアップデートは今までで一番苦労したかもしれません。
そしてやはりなるべくならゲーム本編以外の事で時間を取られるのは極力避けたいし、広告単価の上下に頭を悩ませたくない。
なので『魔法少女クリティカル DASH TURBO』をリリースしたら、アプリから撤退とまでは言わなくてもメインプラットフォームを有料PCゲーム及びパブリッシャーが見つかればコンシューマーの方に移行したいと思いました。

ほとんど愚痴のようなものになってしまいましたが、最後まで読んで頂きありがとうございました。