先日遭遇した小ネタ。
どういうことか
通常(?)、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
で送ってくるやつもいる。具体的にどの端末が〜ってところまでは調べてないし調べる気もないけど、普通にお行儀よくメジャーバージョンだけでも処理できるようにしておくのが吉。