見出し画像

LemoNovel Air Mobile アプリの64bit化について(4)

いや、まさか第4弾まで続くとは思いませんでした。なぜでしょうね(笑)とりあえず多分、これが最後になるので軽くまとめます。

新しいANEによる、妙なキャッシュ?が発生して、思わぬ不具合に

リストア機能を導入したときに気づきましたが、新しく導入したANE,どうもキャッシュ?がある?かどうかわかりませんが、変な動作が見られます。

まず、リストア処理に、何度か外部SWFにアクセスして、アイテムごとの注文番号を入手する仕組みにしましたが、なぜか注文番号が空のはずのものに、前のアイテムの注文番号が追加されて、エラーに😭😭😭

なので、基本すべての仕組みを変えなければいけません。。。アイテムごとじゃなくて、一つの機能に一回だけ外部SWFをアクセスすることにしました。

これが終わったころに、動作確認もして、問題ないと思って、一時的なポップアップ(値を確認するためにつけたもの)を削除したら……エラーが発生しました。そうです。どうも外部SWFを閉じても、それが完全に閉じられてなくて、次に呼ぶ外部SWFその②の動作を邪魔してしまいました。一時的なポップアップメッセージ出すと、それが阻まれて動作が正常になりましたが、これは困りました。さすがに何度も購入処理に何度もポップアップ出せません。

で、資料を確認したところ、lemonovelは一度に999外部SWFまで予備出せるらしいので、外部SWFのlevel値を変えて、混雑しないようにしてみたら、直りました。これで終わったと思いました。油断しました。

払い戻し処理によるバグ

アプリ内課金があっても、ほとんどの開発者は多分、払い戻し処理をしていません。めんどくさいですから。ええ、間違いなく。

まず、払い戻しがあると、グーグルプレイアプリからの反応が、購入済みのままになっています。つまり、何もしなければ払い戻しがあってもユーザーは遊べます。払い戻しを確認するためにはサーバー認証が必要です。グーグルのサーバーに問い合わせないと、purchase state 1 (払い戻されました)という情報がわかりません。

で、何がめんどくさいかというと、そうですね、とにかく、リストア同様にキャッシュの件もあって、基本コードを全部新しくしなければいけません。それだけじゃなくて、以前問題なかったと思ったところ、特別な状況を想定して(例えばアプリ内課金アイテムが4つあって、3つが払い戻された場合など)、やっとそのバグの存在に気づいたところも多くありました。

ややこしいです。おかげで5~6つほどのテストアカウントを新しく作りました💦

Adobe Air事態のバグ:突然すべての言語対応になる?

問題がないと思って、内部テスト用にアップしたところ、4か国語対応のはずのアプリが、85か国語対応になったと出ました。え?なんで?と思って、いろいろ調べて、公式githubにも聞いてみたところ、どうもプラグイン(ANE)の一つが問題らしい。基本、ADOBE AIRってアプリのapplication.xmlにさえ記載すれば、ANEプラグインの言語なんて無視されるはずですが、これは何かのバグがあると、結局ANE製作者にも、HARMANのADOBEAIR担当者にもいろいろ報告することになりました。

ただ、これは大事なバグではありません。そもそも●か国語対応ってストアのどこにも書いてないような気がします。アプリ説明のものは別です。あれは製作者本人が書いたものですから。

一応これで大丈夫はず!いろいろ変な状況まで想定して(例えば購入済みのセーブデータを見購入のアカウントにコピペしたりするなど、ちょっと普通じゃない状況下の動作も確認しました)頑張ってテストしたので、もう問題はない!と願いたいです!!が・・・アプリ事態のスタートからクリアまでの確認数回しなければいけないかもしれませんね。ちょっとめんどくさいです。以前のセーブデータ、保管すればよかったな。。。とちょっと後悔してます。

とりあえず、もう、ほぼ形ができているので、これが終わったら、またゲーム制作のほうに移ります。もう、こういう、サポートは嫌です。

この記事が気に入ったらサポートをしてみませんか?