tofucodes diary

にほんごのほう

Xcode 10でビルドしたアプリがiOS 9.0, 9.1, 9.2 でクラッシュしまくる件について

先日ようやっとiOS 12Xcode 10リリース後初のiOSアプリリリースをキメたんですが、

その後最新バージョンでクラッシュが急増する事態に。。。

クラッシュログを確認するとiOS 9でしか発生していない模様。

不思議だな〜と思いつつコード追ってみても原因がよく分からない。

諦めてググってみたところどうやら同様のクラッシュ事件でstackoverflowが盛り上がってる。

stackoverflow.com

質問やそれに対するコメントをざっくりまとめてみると、

  • Xcode 10 GMでビルドしたアプリがiOS 9でクラッシュするぜ
  • Appleがバグと認定してる(バグチケットの作成を促している)
  • iOS 9.3未満で発生する
  • 何年もコードと画像を変更してなかったアプリでXcode10にした途端[UIImage imageNamed:]でクラッシュする
  • Xcode 9でビルドしたら正常に動作する

well done,but It‘s unpractical for us.I think it is the xcasset's problem always.Xcode 10 release note and wwdc said xcassets has been optimized,it is a joke

hahaha

Swift 4.2 対応したばっかだしXcode 9に戻すのは気が引ける&iOS 9ユーザ多くないし静観するか〜と思っていた矢先、朗報。

Xcode 10.1 beta 2 Release Notes | Apple Developer Documentation

Resolves an issue that affected app compatibility with iOS 9.0, 9.1 and 9.2. Apps containing asset catalogs built with Xcode 10 whose deployment target was set to iOS 9.0, 9.1 or 9.2 would produce content incompatible with the runtimes of those iOS versions. Rebuilding the application with Xcode 10.1 resolves this issue. (44535967)

アセットカタログを含むデプロイターゲットiOS 9.0, 9.1, 9.2アプリがXcode 10でビルドされると、ランタイムと互換性のないコンテンツが生成される。Xcode 10.1で解決する

めでたし、めでたし。