はじめに
どうもこんにちは、3度目の緊急事態に入りました、Toshです。最近開発をしていて原因不明の環境依存のバグに出くわすことが多々あり、解決方法やワークアラウンドも見つからないものに出くわすことが多かったです。
けれど、そういった不具合が実はOSアップデートの際にAppleによってシレッと修正されていたケースがいくつかあったので、紹介していきたいと思います。
iOS14のorthogonalScrollingBehavior問題
iOS13からCompositionalLayoutが導入され、複雑なレイアウトでも容易に組むことが可能になりました。
その一番のメリットと言えるのがorthogonalScrollingBehavior。これを使用することによって、今まで、TableViewのCellの中にCollectionViewを入れて、FlowLayoutを作成して、といった実装を一行で実装することが可能になりました。
しかし、そんなorthogonalScrollingBehaviorにはiOS14下でのみ発生する不具合が存在していました。
仮に、orthogonalScrollingBehaviorでcontinuousGroupLeadingBoundary
をセットした場合、スクロールしたアイテムは右端で止まりますが、iOS14環境でのみ、一番最後のCellの挙動が期待どうりに動かないと言う不具合がありました。
これについては、StackOverflowなどで、議論されていましたが、結局は、解決法もワークアラウンドもなく、ただiOS14.5で修正されただけとなりました。
なので、orthogonalScrollingBehaviorを使用する場合には、iOS14.0~14.4では挙動が一部おかしいので注意してください。
またこれに似た問題として、ScrollToItemもiOS14環境で壊れていたりしたので、CompositionalLayoutはiOS14ではなかなかお粗末な出来だったようです。
https://developer.apple.com/forums/thread/663156
M1MacのWKWebView問題
M1MacでWKWebViewを使用しているアプリをビルドしようとした際に、iOS13.7以下の端末ではクラッシュすると言うバグもありました。
WKWebViewのインスタンスを生成しようとするだけで、クラッシュすると言うものです。ちなみにターミナルにはログは出ません。
また、これらのシミュレーターではsafariが起動できないなど、シミュレーターそのもののWebViewに問題を抱えているように見えました。
一応、リリースノートの73375522ではXcode12.5のbeta3でしゅうせいされたとあるのですが、実際にはbeta3では修正されておらず、OSをBigSurの11.3へと上げるとバグが発生しなくなっていました。
まとめ
Appleといえど、人の子。バグは意外と多いものです。原因不明の不具合もOSをアップデートするとこれらのケースのように直ってたりするので、できるだけ最新のOSを使うようにしましょう。
こういったものについては、AppleにWWDCの際には直接聞けたりするのですが、一年に一回となかなか機会がないので、こういった機会を増やして欲しいですね。