VMT TECH BLOG

Chrome 79に振り回される話

どうも、Monacaソムリエです。
年末でいろいろと忙しい時にややこしい問題に巻き込まれてしまいました。

そう、皆さんご存知とおり
Android Chrome 79問題です。

そもそも何が起こったのか??

12月10日リリースされたAndroid Chrome 79にアップデートすると
一部のアプリデータが消えてしまうという事象が発生しました。

ストア公開されたAndroidアプリにもろに影響があるので、
急にユーザーから星1のレビューが投稿され、クレームが多発し
困っている開発者も多かったようです。

ただ、全部のAndroidアプリに影響していたか?
そうでもなかったようです。

原因を特定

色々な情報をもとに下記原因が判明しました。

Android WebviewのLocalstorageとWebSQLに保存されたデータが消える
どうやら、データの保存先を変えたようで、そのデグレチェックをせずに
リリースしてしまったようです。

つまりWebViewで実装されたアプリでLocalstorageに保存しているアプリは
全部アウト!!
ということです。。

 待てよ。その影響をもろに受ける可能性があるアプリ。。。
 Monaca(Cordova)で開発されたAndroidアプリだ。。。

Monacaはハイブリッドアプリの開発環境でCordovaベース作られています。
もちろんWebview上で実装されている為、今回の問題の影響をモロに受けます。

正式に開発元も不具合と認める

開発元も正式に不具合と認め、一旦Chrome 79配信を止めました。
実際にどれだけのユーザーが影響したかは不明ですが、50%のユーザーが
Chrome 79にアップデートしたようですね。

対応策

12月19日現在、すでに開発元から修正版のChrome 79がリリースされ
データがなくなったユーザーにはこのアップデートによってデータが
復元されるとのこと。

ただ、今後もこのような事が起こらないとは限らない。
Monacaで開発したアプリに関してはそんなときの為の対策案として、
下記をお勧めします。

※新規開発や保守契約を結んでいる顧客に是非ご提案ください。

1.Sqliteを導入する。
  https://github.com/xpbrew/cordova-sqlite-storage
  CordovaプラグインでSqliteを使ってデータを保存する方法があります。

2.セキュアストレージプラグインを導入する。
  https://docs.monaca.io/ja/reference/power_plugins/secure_storage/
  有料プラグインですが、Localstorageとは別の領域(アプリ内領域)にデータを
  保存する為、実際に今回の影響を受けていませんでした。
  
この問題が発覚後、Monacaサポートにも確認し影響がないことを確認しています。

最後に

ブラウザの不具合とは言え、実害が出たのは事実です。
品質の会社である弊社バルテスグループとしてはやはり、リリース前の
デグレチェックは重要だということを改めて知らされました。
 
開発元もLocalstorageをやめるみたいなことも噂を聞いているので、
この機能に頼らない設計も今後のアプリ開発で必要なのかもしれませんね。

新着記事一覧

バルテス株式会社
VALTES Advanced Technology, Inc.