年: 2019年

うにのトゲは刺さると痛い(´・ω・`)-35

Androidアプリの64ビット化強制のメールからごっぐるから届いて、その辺の絡みでseekhackしたというお話。64ビット化強制のメール自体は5月かそこらで既に届いていたのをよく見てなかったw


Unity 64bit

多分、ぐぐればQiita辺りのエントリがすぐにヒットするはず……だが何故か俺氏のテンポラリブックマークにはstackoverflowとかのurlしか残ってなかった……(´・ω・`)エイゴヨメナイノニ

何はともあれ、最終的に

  1. メニューバーから[ビルド設定]->[プレイヤー設定]の順に開く。
  2. [その他の設定]-[設定]の「スクリプティングバックエンド」を"IL2CPP"にする。
  3. 「ターゲットアーキテクチャ」で"ARM64"にチェックを入れる。
  4. "android-ndk-r16b-windows-x86_64.zip"をダウンロードして解凍する。
  5. メニューから[編集]-[環境設定]の順に選択する。
  6. [外部ツール]のNDKに先に解凍したフォルダを指定する。

みたいな感じで行けたんだったかな?
ちなみにUnityのバージョンは"2018 4.4f1"。
2019でも問題ないんだろうけれども、色々と試行錯誤した結果、最新版はやめておこうという気になった(ノ∀`)

参考:
Unity Export Android 64-bit
Googleplay 64bit console warning


Unity+sqlite+64bit

上記の方法でようやく64bitでコンパイル出来るようになったのだが、実機上でゲームをしようとすると上手く動かない。正確に言うとカードがディールされない(´・ω・`)

色々と悩んだ結果、そう言えば、前にdb絡みで同じような現象になったなということを思い出し、SQLiteUnityKitでぐぐる。

どんぴしゃりなエントリが(・∀・)
UnityでSQLiteをAndroid(64bit対応)向けに導入する

  1. 拾って来たsqlite-android-3290000.aarを"Assets/Plugins"の下に入れた。("Assets"以下なら何処でもいいのかな?)
  2. SqliteDatabase.csのDllImportの部分を全部変更した。14箇所だったかな?
    [DllImport("sqlite3", EntryPoint = "sqlite3_step")]
    //        ↓
    [DllImport("libsqliteX", EntryPoint = "sqlite3_step")]
    

ちなみにこの方法で実機上でゲームがまともに動くようになったが、editor上では当然の如く、エラーになった(ノ∀`)

"sqlite3.dll"と"sqlite3.def"をそれぞれ"libsqliteX.dll"と"libsqliteX.def"にしたら、動いた(・∀・)

これが正しい解決策かはわからないがw


取り敢えず、これで一応64ビット化は出来ているようなんだけれども、まあしばらくはアップロードしなくてもいいか。どうせ誰もダウンロードしないし( ゜σ・゚)ホジホジ

プライバシーポリシーのなんちゃらこうちゃらで…

「アプリの公開を停止しちゃるでー(・∀・)」とごっぐるからメールが来た。

"Google Play配布契約 4.8 への違反対応"とか言うやつ(´・ω・`)?
よくわからんからぐぐった。

結論から言うとadmobやfirebaseを使ってるとそれらがやっている情報収集がGDPRとかその辺のなんらかに抵触するからプライバシーポリシーの表示をするようにしないと駄目よんというようなお話らしい(・∀・) ←ヨクワカッテナイ

プライバシーポリシーの項目はGoogle Play Consoleのアプリのページ内にあったが、しばらくは用意しなくても大丈夫そうだったので放置していたのがいけなかったのだ(ノ∀`)

参考:
AdMob, Firebase付きAndroidアプリのプライバシーポリシー、こうしてみました(要経過観察)
【広告ID】Google Play配布契約 4.8 への違反対応


参考にしたページの方やら、他の人達はadmobとfirebaseの2つを使っているので、その2つに対するプライバシーポリシー宣言文(?)を用意していたが、俺氏のアプリは今の所admobだけなのでfirebaseの方は端折った。admobの方の文をまるごとパクり参考にプライバシーポリシー宣言用のHTMLを作った。

参考ページその他を読んでいると、アプリ側でも初回起動時に強制的に表示するか、広告IDの収集をやめさせないといけないよう(UnityでそれをやるためにはAndroidManifest.xmlをいじらなくちゃいけないような雰囲気)だったので

取り敢えず、この件は放置することにした(ノ∀`)

更新をかけるにはまだ中学生漢字のデータが出来ていないし、もし更新するなら、その他のバグというかデータの誤りも直して出したいし。どうせ公開していてもユーザーは全然増えてないしw


などと思ってGoogle Play ConsoleのプライバシーポリシーのURLを追加して、「アップデートを送信」とかいうボタンをクリックした。

それでまぁ、そのことは忘れて他のことをやっていた。
しばらくしてAndroid端末を見たら、アプリの更新要求が表示されていた。従った。

それからまたしばらくしてAndroid端末を見たら更新が終わっていた。
何故かその中にMole's Match-upのアイコンがΣ(゚∀゚;)

俺氏が寝ている間に小人さん達が勝手にバグ取りとかデータ内容の更新をしてリリースしてくれたんだな(・∀・)と呑気に考えてみたが、そんなはずもなく。

まあ普通に考えたらプライバシーポリシーURLの更新によるものだろう……
で、それもまあともかくとGoole Play Consoleを見に行く。

あれ(´・ω・`)? 公開停止が解除されてね?

どういうこと(´・ω・`)?
プライバシーポリシーURLをGoogle Play Consoleに追記すれば解決するだけの話だったのかな?


まあ、どうでもいいか(・∀・)

Call to undefined function mb_convert_kana()

GCPに移行してから

エントリの検索をすると「サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。」みたいなエラー画面が表示されて検索結果を取得できない状態になっていた。

移行とドメイン移管は済ませてあるから放って置いていいかなと思っていたが、ちょろっと調べて直した。


WP_DEBUG

何はともあれ、何のエラーが発生しているのかを確認するためにデバッグモードを有効にせねばと思ったがやり方を忘れてた(ノ∀`)
wp-config.phpで

define( 'WP_DEBUG', true );

か。


wp-multibyte-patch

Fatal error: Uncaught Error: Call to undefined function mb_convert_kana() in /var/www/wpbl/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php:147

ということなのでプラグインの「WP Multibyte Patch」が原因か(´・ω・`)

取り敢えず、プラグインページで停止しようとするも「サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。」画面になったので、数日前に使用したWP-CLIを使用してプラグインをdeactivateする。

これで検索は出来るようになったので、もうこれでいいか(・∀・)と思ったが、折角なのでもう少し調べるw


mb_convert_kana()

詰まるところ、php-mbstringが入っていないのが問題だった模様。

sudo apt install php-mbstring
sudo service apache2 restart

とかしたら、「WP Multibyte Patch」を動かしたままでも、検索が出来るようになった。

インストール後に何かしないといけないのかと思ったが、そんなこともなく。

php -i | grep mbstring

してみたら、何行かphp.iniに設定が追加されていた。
自動でやってくれたのだろう、多分。
ちなみにインストール前には一行くらいしか該当行("Multibyte decoding support using mbstring => disabled")がなかった。

参考:
[PHP] mb_convert_kana() / mb_convert_encoding() などが使えずエラーが発生する時の対処法
php環境構築時に入れ忘れてコケるやーつ…。


何はともあれ一応解決したみたいではある(・∀・)

取り敢えず、SSL化出来た模様(´・ω・`)

SSL化

だがしかし、具体的に何がどうなったらSSL化なのか、全く内容を理解していない(ノ∀`)

参考にしたエントリの「certbotのインストール」をやったらSSL化出来てしまったようなので「WordPressのSSL化」の方はやってないけど、やらないと駄目なのかしら(´・ω・`)?

一応、WordPressの「一般設定」の[WordPress アドレス (URL)]と[サイトアドレス (URL)]の値の頭を"https://"にしたけど、これも必要なのか必要じゃないか不明(ノ∀`)

「証明書の自動更新」もやったけど、きちんと動くかどうかは不明(ノ∀`)
数ヶ月後にSSLじゃなくなったら、またやり直す方向でw


なんかおかしい(´・ω・`)

うちのブログ、今では一日100もアクセスがない日がほとんどなのに一日2円くらいの課金が発生している(´・ω・`) 5日くらい前にこっちに移しただけなのに
「Network Internet Egress from Americas to Americas」で"1.7 gibibyte"になってる…

インストール後の色んな作業でネットワークトラフィックを浪費しちゃったのかしら(´・ω・`)?

それとも今まで適当にサイズを小さくせずに貼っていた画像達が問題なのか…
まあ一日2円くらいなら、良いは良いんだけども(´・ω・`)ソレクライナラハラエマス