AndroidゲームをAPI33対応更新おわりました

みやびログ-アイキャッチ ゲームアプリ(Android)
みやびログ アイキャッチ ものづくり好き系 エンジョイ部

本サイト「Miyabi Soft APP」のご提供ゲームリストとご紹介

本サイトMiyabi Soft APPでは、2023年12月時点で以下のゲームをご提供させて頂いてます。
筆者の開発不足にて対応機種はAndroidのGooglePlayGamesのみの配信となっております。
アップル社のアイフォン(iPhone)やアイパッド(iPad)のiOSには対応してません🙏

  • 進撃のソリティア-低解像度軽量版-:ATTACK ON SORITIER(AOS-Low)
    好きすぎる「進撃の巨人」のファンアプリ。オマージュなので原作とは大幅に異なります。
    ソリティアゲームである「ゴルフ」のルールを使用して巨人と対戦し、ミッションクリアやガチャなどで兵士や能力を強化しながらクリアしていく、やり込み要素を盛り込んだ内容です。
    普通にゴルフソリティアだけを楽しむモードもあります。
    こちらは旧機種でも対応できるよう低解像度の動作軽量版となっております。
    ちなみに「ソリティア」と言うとマイクロソフトのアノ中毒ゲームを思い浮かべると思いますが、「トランプで一人遊び」のことを「ソリティア」と呼びます。原作アニメは絶対的おすすめです。
  • 進撃のソリティア(通常版):AOS-Lite
  • たまねこ-3つ以上つなげて消す簡単パズルにゃん-:Cat Balls
    よくある「THUM THUM形式」で、にゃんこキャラを3つ以上つなげて消す簡単なパズルにゃん。
    キャラクターの強化はなく、シンプルにスコアを競う仕様です。スコアはオンライン上にて保存されるのでトップスコアを目指すのが主体となってます。
    オフラインにて無限に練習できる?時間制限なしモードが特徴的です。
    一応ツムツムよりも先に開発しており、参考ゲームは「さめがめ」を物理アレンジしたニャン。
  • たまサッカー~3つ以上つなげて消す簡単パズル~:Foot Balls
    「たまねこ」の猫キャラクターをサッカーボールキャラに変更したものです。
  • シンプルなトランプカードゲーム99~ナインティナイン~:99ninety-nine
    こちらは同じ名前のトランプゲームがありますが、新しい目なトリッキィテイキングの方ではなくて、かなり昔から存在する、順番で場に出したカードの数字を足していくバーストゲームの方になります。こちら通常のトランプでも簡単ルールなおかつ2~多数ですぐに遊べ、大変面白いトランプ遊びです。お正月などに集まったときや場の盛り上がりなど非常にお勧めいたします。
  • マクベス ~ オセロ リバーシ 型反転ボードゲーム~:Macbeth
    こちらはオセロ「リバーシ」の盤面を使った、全く違う反転ルールのオリジナルボードゲームです。対戦相手のNPCはそれほど強くありません。すいません。
    こちらは1~6人まで楽しめます。マス目の数も変更できるなど多彩なモードを用意しました。
    名前の由来ですが、「オセロー」は「シェイクスピアの四大悲劇」のひとつが由来で、黒人の将軍・オセロと白人の妻・デズデモーナを中心に、敵味方がめまぐるしく寝返ることから命名したことは有名です。「ハムレット」の名前を付けたかったのですが、これは昭和懐かし駒ゲームをタカラが提供しております。残るは「リア王」と「マクベス」なので単純に決めました。少しマイナーだったような気がして公開しております🤣
  • たまねこDEマクベス:Macbeth-Cat
    駒を「たまねこ」キャラにリメイクしたバージョンです。
  • 2048 ナンバーズ グロウ:2048Numbers Grow
    こちらも超有名な中毒ゲームで、上下左右と盤面の数字をスライドし数字を合成して育てていく「2048」系のゲームとなっております。
    アレンジで、数字の上がり方は「1→2→4→8→…2048~」ではなくて、分かりやすく!?「1・2・3・4・5~」と順番に育成していきます。数字の「12」が「2048相当」になりますので、13の数字を育てた辺りから相当頭を使うでしょう。ここだけのオリジナル要素としては、お邪魔ブロック2種類とマス目の変更など多彩なモードが特徴となってますのでお楽しみください。

ほぼ強制的!?ついに更新を決行🤣

キッカケはGooglePlayConsoleより、「そろそろ更新せんと、違反アプリ消去しまっせ~」的なメッセージが来たことによるものです。グーグルとしては、セキュリティの強化や有害的アプリを無くし、より良いアプリを提供していくための措置になるので当然です。しかし開発者側として個人的にはこれが一番のネックとなり苦戦するところです。簡単な部類では申請・申告などの詳しい情報や規約規定などでアプリの更新することなく終えていました。今回はついに「Android13(APIレベル33)以降」にしなさいと言うことで、これはさすがにアプリのプログラムをビルド更新しないと対応できません。

いえ、通常であればコレは作業レベルで問題ないはずなんですよ。しかしながら最初のアプリ製作から10年近く経過してます。PCの買い替えなどにより開発環境も変わってしまってます。と言うことは、また一からプログラミング開発環境を整えたり(←最初にしなさい🤣)、アプリを見返しながら理解して使用している画像や音楽などの捜索(←管理しなさい🤣)、グーグルプレイアプリ管理プログラムを理解するための検索や調べもの(←結構時間もかかり大変)などなど。
疎かにしたものが一気に浮上してくるわけです。言い訳は一番最初の開発環境で、かなり苦労しながら構築している記憶があるので、中々手に付けるまでの行動に移せない事が原因です。

今回はこの要素を、一つずつこまめに消化できましたので更新決行いたしました。最初だけ頑張り、一つ出来てしまえば後は応用でただの単純作業となりますが、それでも数多く出されてるデベロッパーさんは大変だろうな~と想像してしまいます。

次は苦労するところの中身を以下のリスト通り4つ紹介したいと思います。(あくび)
・開発したアプリと使用素材の捜索(最新のもの)
・グーグルプレイコンソール仕様の理解と解析(ポリシー違反など)
・仕様変更された「アプリの署名」の再構築
・製作したアプリを最新APIレベル33にビルド適用(フリー開発環境のHSP3Dishの場合)

※ 尚、大事なファイルを扱うことになりますので、くれぐれも慎重に手順を行ってください。ここの手順は備忘録であり参考程度で失敗によるファイルなどの上書き・消去等、いかなる場合も責任は全く負えませんのでご了承ください。

1)開発したアプリと使用素材の捜索(最新のもの)

まずこれですね。これがないと時間をかけて開発環境を整えてから探して「ファイルが無い!」となったら時間の無駄になりますから(いや、まて)
きちんと管理してれば、まず問題ないレベルです。でもこれがですね、筆者のやり方や考え方にも寄りますが、単純にHDD(ハードディスクドライブ)に保存したとして、もしHDDが壊れたらヤバイんです。だから保険として他のHDDやオンラインストレージであるGoogleドライブやOneドライブにも保存する訳ですよ。そしてアプリの作り立ての時には良いものに仕様変更や、バグ修正などでプログラムを改変したり画像などの素材を増やしたり修正したりするうち、時間の制約に追われたりすると結構ちぐはぐすることもまれにあります。何かの都合で、それぞれの統一ができていないと大変なことになります。素材も食い違いがあると、そもそもアプリが立ち上がらなかったりして、その場合は何が原因か調べるまで、時間のかかるビルドを繰り返すなど、あっという間に時間は溶けていきます。

ですのでこれは「更新をかけたら必ずバックアップファイルも更新して統合」する「フォルダ分けやファイル名を更新番号順で管理」するなどのをつけるようにしましょう。
お陰様で、捜索は割と早めに終わりましたが、それでも3日はかかりました。
(昔のアルバムを引っ張り出して、ついつい見てしまった的な要素含む🤣)

2)グーグルプレイコンソール仕様の理解と解析(ポリシー違反など)

これはアプリの登録・公開するにあたって当然のごとく、登録先である「Google Play Console」の仕様に順守するのは必須です。割と頻繁に更新されますのでコレが一番のネックとなりまが、良質のアプリを提供しなければならない提供元では当然であり、なおかつ良心的な方針とも思います。

このページにアプリを登録しますが、開くと何に違反しているのか一目瞭然となっております。ですが、中身の違反を理解するのは、また別の話であり難しくなっております。結構昔は英語でしか見ることが出来ず、ものすごく苦労しながら対応してた記憶ですが、日本語でもなかなか理解に悩みます🤣
今回は大きく分け4つのポリシー違反でした。

  • サービスによるものの登録
    こちらはアンケート形式で登録していきます。安全なプラットフォームを維持する措置です。
    主に金融やユーザー作成、ネットワーク使用などの申請で、こちらのアプリでは使用していないので、ほぼ「いいえ」回答にて、すぐに対応できました。
    (大体はいつもの更新はコレが多く、アプリをビルド更新アップデート登録せずに済みます)
  • データセーフティ(ユーザーデータの収集)申請 主に広告表示(AdMob)を使用したアプリ
    こちらはかなりの確率で違反となり、公式の説明を見てもとても分かり辛く時間を費やすはめになるので覚書します。
    広告(AdMob)を使用していなかったり、Nend広告を使用している場合は「ユーザーデータの収集」と言う項目欄を「いいえ」の設定でOK。
    AdMobを使用で「はい」にする場合のセットアップ手順は次のようになります。
    (選択場所はGooglePlayConsoleが仕様を変更して変わる可能性があります)

    1)自分のアカウントで左のメニュー一覧にあるホームから、設定対象のアプリを選びます。

    2)左メニューの「ダッシュボード」が選べてる状態でページ内の受信トレイから「データセーフティ」の項目を選びます。

    3)データセーフティの設定画面「①概要」にて、右下の「次へ」を押します。

    4)「②データの収集とセキュリティ」にて次の項目のように設定します。
      ・アプリは対象になる種類のユーザーデータを収集または共有しますか? → 「はい
      ・アプリで収集するユーザーデータはすべて、転送時に暗号化されますか? → 「はい
      ・自分のデータの削除をリクエストする方法をユーザーに提供していますか? → 「いいえ
     右下の「次へ」を押します。

    5)「③データの種類」にて、次の項目にチェックを入れます。(それ以外はチェックを外す)
      ・位置情報 → ☑おおよその現在地
      ・アプリのアクティビティ → ☑アプリ インタラクション数 ☑その他の操作
      ・アプリの情報、パフォーマンス → ☑クラッシュログ ☑診断情報
         ☑その他のアプリのパフォーマンスデータ
      ・デバイスまたはその他のID → ☑デバイスまたはその他のID
     右下の「次へ」を押します。

    6)「④データの使用と処理」にて、先ほどチェックした項目4つの詳細を次のように設定します。(4つとも、共通に設定する)
      ・各項目の表示方法 → 右にある「表示v」を押し、プルダウンで項目を出す。
      ・出てきた項目の詳細を設定する → 「表示v」の下に出てきた矢印「➡」を押す。
     詳細項目にて
      ・このデータを収集しますか、共有しますか、それとも両方ですか? → 収集のみチェック
      ・このデータを一時的に処理しますか? → いいえ
      ・このデータはアプリに必要ですか、またユーザーはデータ収集の有無を選択できますか? 
        → データ収集は必須である(ユーザーはこのデータ収集をオフにできない)

      ・このユーザーデータを収集するのはどうしてですか?あてはまるものをすべてお選びください → 
       次の項目にチェックを入れる(それ以外はチェックを外す)
        ・ おおよその現在地 → ☑分析 ☑広告、マーケティング
        ・クラッシュログ  → ☑分析
        ・診断情報     → ☑分析
        ・その他のアプリのパフォーマンス データ → ☑分析
        ・アプリ インタラクション数 → ☑分析 ☑広告、マーケティング
        ・その他の操作       → ☑分析 ☑広告、マーケティング
        ・デバイスまたはその他の ID → ☑分析 ☑広告、マーケティング
      右下の「保存」を押す。
     4つとも全て入力・保存したら完了になります。

    ※便利技として今回設定した内容を、他のアプリにも適用できます。データセーフティ文字の右横にある「CSVエクスポート」を押し、設定内容をファイルで保存します。後は他の設定したいアプリにて先ほど保存したファイルを「CSVインポート」にて読み込むと同じ内容で適用されます。AdMobを組み込んだアプリには、この方法で時間短縮になります。

3)仕様変更された「アプリの署名」の再構築

今回に限らず、こちらもGooglePlayConsoleにて大幅に仕様変更されたものです。こちらもアプリを安心して使えるように、正当性を高めるための更新内容となります。
これも公式の表記だけでは理解に大変苦労する部分かと思いますので、やり方の何種類かある内の1つで、従来のアプリ署名鍵を新しく作らず使用するやり方を備忘録したいと思います。
※仕様の変更に伴い、「アプリ署名鍵」と「アップロード鍵」の2つが必要になります。公式の手順にてアップロード鍵は作成しなければなりませんので、もともとあるアプリ署名鍵と混同しないようにお願いいたします。(セキュリティ上、今後はアップロード鍵用の署名鍵を新しく作り、次の説明に使用する秘密鍵に使う方が得策かもしれません。アップロード鍵はグーグルの管理下になりますので、次の手順を一度だけ行えば良いことになります。)
※ここでは、フリーソフトのアプリ開発環境である「おにたま氏」が製作された「HSPTV」の「HSP3Dish(ホットスーププロセッサー)」での手順を説明いたしますのでご了承ください。「Android Studio」で開発の方は、もう少し簡単な方法がありますのでお調べください。現時点でのHSP3のバージョンは3.7beta7、コンパイラーHSP3DHのバージョン1.94です。

1)アプリの開発時、もともとGooglePlayConsoleにてアプリ署名鍵を作成していると思いますのでご用意ください。(見つからない? 場合は新しく作成しても良いと思いますが、GooglePlayGamesにアップロードしてあるアプリを今後も更新する場合は必要となってきますので、ご自分の保存媒体から署名鍵ファイルを真剣に探してください🤣 ← ファイル名は、「自分で決めた名前~.keystore」だと思います。)ここでは「hspapp.keystore」というファイル名で仮定します。
新規に署名鍵を作る場合は、アプリを作る開発環境にて作り方があると思いますので参照して下さい。

2)GooglePlayConsoleの公式手順にて、アップロード鍵用の秘密鍵を作成し証明書を発行します。
GooglePlayConsoleで対象となる「アプリを選択」する。
・左メニューより、「設定」の項目にある「アプリの署名」を選択する。
・「Google Play でアプリ署名鍵を管理する」の「Java KeyStore の既存のアプリ署名鍵を使用する」を選択する。
・更に出てきた項目の中にある、呪文のような「$java から始まる–encryptionkey=」以降の136文字くらいある長いコードをメモします。
・「(PEPK)ツールをダウンロードします。」の「ソースコードをダウンロード」を押して、「pepk.jar」ファイルを任意の場所に保存します。
※ここでは安定したコンパイルのできるHSP3Dish環境下にJDK(Ver17)を使用してますが、鍵の作る際に失敗すると思いますのでJDK(Ver20.0.2)をダウンロードして挑戦してみて下さい。
※JDKをダウンロードし解凍したファイルフォルダを「c:\jdk-20.0.2」と仮定します。
・ダウンロードした「pepk.jar」ファイルを「c:\jdk-20.0.2\bin」フォルダーにコピーします。
・エクスプローラーにて「c:\jdk-20.0.2\bin」を開いてる状態でアドレスバーの入力部分に「cmd」と入力しエンターを押してコマンドラインを起動します。※起動したコマンドラインは「c:\jdk-20.0.2\bin>」と表示されていればOK。
・コマンドの引数を自分のアプリ用に変えてJAVAコマンドを実行秘密鍵を作成します。(引数の–aliasはご自身のアプリのを思い出してください。忘れていると作れません🤣 HSP3Dish標準でお任せであればhspappがエイリアスになっているかと思いますのでお試しください。秘密鍵のファイル名をupkey.storeと仮定します)以下濃い文字部分をコマンドラインに入力、色の付いたマーカー部分をご自身用のアプリ引数に置き換え実行します。(例)コマンドラインで「c:\jdk-20.0.2\bin>java -jar pepk.jar –keystore=hspapp.keystore –alias=hspapp –output=c:\upkey.keystore –encryptionkey=先ほどメモした136文字くらいある長いコード」を入力しエンターで実行。
キーストアと鍵のパスワードを聞かれたら入力。(パスワード入力中は文字表示されません。鍵のパスワードを覚えていなければあきらめてください😇)
・出来上がった秘密鍵「c:\upkey.kyestore」をGooglePlayConsoleのページにある3番の秘密鍵をアップロードを押してアップロードします。これでアップロード鍵をグーグルの管理下する一度だけの作業になります。(一度だけですが現在の規約では、1年ごとに更新してくださいとあります)

4)製作したアプリを最新APIレベル33にビルド更新・適用(フリー開発環境のHSP3Dishの場合)

ここでは「HSP3Dish」というフリーソフトのAndroid開発環境を説明・手順いたします。
他の開発環境(Android Studio、Unity、Eclipseなど)や、ここの説明が分かり辛い場合は他の方の説明を検索して参照・参考にしてみて下さい。

HSP3Dish(Ver.Hsp37beta7)コンパイラー:Hsp3dh(HSP3Dish helper ver1.94)による、Androidアプリ製作するための推奨環境は公式ページ通りです。先ほどの手順で署名鍵を作る際には「jdk-20.0.2」を使用しています。ですが、なぜか筆者の環境ではアプリのコンパイルにエラーで失敗してしまいますのでJDK17.0.9を使用しています。(インストールしていないので2つのJDKバージョンを入れておいても支障ありません)

GooglePlayConsoleのGooglePlayGamesのアプリは、今までの方式ではビルドしたファイルに「apk」を使用してましたが、新しい仕様では「aab」と言う拡張子のファイルになりました。こちらは大変ありがたいことにhsp3dishでも対応して頂いております。かなり違う環境のため、今後アプリをビルドする際には別の新しいビルド用のプロジェクトフォルダを作り使用することをお勧めします。(hsp3dhの右下「オプション」を選び、プロジェクトの部分を新しく作ったフォルダに変える)

事前に更新対象アプリのパッケージ名を控えてください。分からない場合(そういう管理に問題あり)はGooglePlayConsoleのページでアプリを選び、ダッシュボードに表示されたアプリアイコンとアプリ名の下辺りにパッケージ名が表示されていると思います。

1)hsp3dhの真ん中下「android」を押した画面にて、右上に「新規プロジェクト」ボタンがある場合は押す。
2)「新規作成」ボタンがある画面で、プロジェクト名を入力(分かりやすい名前)、ここの時点ではパッケージ名は入力無しの空いた状態でOK。右の「新規作成」ボタンを押す(広告AdMobを使用する場合は項目に☑を入れる。HGIMG4やセンサーを使用する場合も同様)。少し時間をかけてビルド環境が構築される。処理中が完了したら次へ。
3)「クリーン」や「ビルド」などのボタンがある画面にて、プロジェクト名に先ほど入力した名前があることを確認。
4)「Dish P Helper」ボタンを押した画面にて、以下の項目に数字を入力する。
 ・バージョンコード(versionCode) → 「16
 ・最小要求API(minSdk) → 「21
 ・ターゲットAPI(targetSdk) → 「33
 以上でアプリの更新・適用は終了です。「適用」ボタンを押し完了します。
 その他の項目を補足説明します。
 ・バージョンネームやパッケージ名、アプリ名はお調べください。(以下ヒント↓)
  GooglePlayConsoleのダッシュボードや、
  以前HSP3dhにて作成した(旧)プロジェクトフォルダにある「AndroidManifest.xml」など
 ※アプリ更新する場合は、バージョンネームとパッケージ名は必須です。
 ・画面サイズなどの項目。(以下ヒント↓)
  (旧)プロジェクトフォルダの「プロジェクト名\jni\main.c」や、
  ソースプルグラムと同じところに保存したであろう「hsp3dish.ini」など

その他、HSP3dhの補足説明をします。
・ソースプロジェクト欄を空白にした場合、「プロジェクト名\HSP\」に拡張子「.hsp」のソースファイルをコピーします。(更新・変更した場合、毎回ここにコピーするのを忘れないで下さい)
・アプリでロード使用する画像や音楽やデータファイル素材 → 「Assetフォルダを開く」ボタンを押して、開いたフォルダに素材をコピーします。(場所:プロジェクト名\app\src\main\assets\
・アプリのアイコン変更 → PNG画像サイズ512×512を用意する → 「アイコン作成」ボタンを押す → 出てきた画面の「pngファイル選択」ボタンを押して用意したファイルを選ぶ。グーグルで指定された各アイコンサイズに自動で変換され保存される。(場所:プロジェクト名\app\src\main\res\
・GooglePlayConsoleに製品版アップロードする前のテストビルド → 「ビルド」ボタンを押す。(作成される場所:プロジェクト名\app\build\outputs\apk\
 ※出来上がったファイルを、アンドロイドエミュレーターや実機上にてインストールし十分に動作チェックすることをお勧めします。
・製品版のビルド(新仕様のaabファイル) → 「リリース」ボタンを押す。(作成される場所:プロジェクト名\app\build\outputs\bundle\)これをGooglePlayConsoleにアップロード公開します。

その他、広告AdMobの情報。(先に「ビルド」ボタンを一度だけ押して、必要ファイルを作ります
基本は設定したAdMobのサイトで情報収集します。サイトで調べたいアプリを選択。
・左メニューの「アプリの設定」 → アプリID(重要)、アプリ名、パッケージ名が分かる。
・左メニューの「広告ユニット」 → 広告ユニットID(重要)、広告ユニット名が分かる。
調べたIDをテキストエディタなどを使い、HSP3Dishで作成されたファイルの所定場所に記入する。
・場所:「プロジェクト名\app\src\main\java\tv\hsp\HspActivity.java
※新規にAdMobを設置する場合は、公式サイトやHSP3Dishのサイトを十分に調べて仕組みを理解したうえで設置することをお勧めいたします。

まとめ

長々とご視聴お疲れ様、ありがとうございました。この記事のボリュームを見て頂くと分かると思いますが、結構な労力で骨が折れるので、アプリの更新をするまで渋っていたわけですが🤣
自分用の備忘録として残しましたが、誰かのお役に立てれば光栄と思います。

今回の更新の中でも、昔に比べれば大分仕組みがスッキリして、一度設定できれば短縮もできて管理もスマートになる部分が多いですので頑張って挑戦してみてはいかがでしょうか?
(時間に余裕があればスクリーンショットも取り入れた記事にしたいと思いますがぁ…)

素晴らしい環境を提供して下さる開発者の方々ともに心よりお礼申し上げます🙏

コメント

タイトルとURLをコピーしました