先日遭遇した小ネタ。
どういうことか
通常(?)、UA には OS のバージョンが含まれている。[major ver].[minor ver].[maintenance ver]の 3 つ、もしくは[major ver].[minor ver]の 2 つ。
が、最新の Android 9 系は、[major ver]だけで UA が来ていた。つまり、Android 9.0を期待していたのに、Android 9までしか来てなかったということ。
影響としては、UA をparseする処理を書いていると、下手したらparse出来なくて意図しない値になってしまう。僕が今担当しているプロジェクトでは、どストライクでバグっていた。最低でもminor verまでは来る想定で正規表現にかけていたので、見事に爆死。
使っているプロダクトとは全く関係ないが、同様のバグを踏んでいるプロジェクトもあった。
open が 8 月だから…僕気づくの遅すぎって話だけど。国内で Android 9 が降ってきてる端末はまだまだそんなに多くないはずなので、今のうちに bugfix 出来たのは不幸中の幸いってところか。
ただし
これ、Android 9 系が全部そうかっていうと全くそういうことはなく、普通にAndroid 9.0で送ってくるやつもいる。具体的にどの端末が〜ってところまでは調べてないし調べる気もないけど、普通にお行儀よくメジャーバージョンだけでも処理できるようにしておくのが吉。