LoginSignup
3
1

More than 5 years have passed since last update.

【Xcode 10 Beta】While deserializing SIL global "UIEdgeInsetsZero" error: Abort trap: 6 がでてビルドに失敗する

Posted at

はじめに

Xcode 10 Beta を使って個人アプリの Swift のバージョンを
4.1 から 4.2 にバージョンアップして,出たエラーの対応を
している際に下記エラーが発生してビルドが通らない。

1. While deserializing SIL global "UIEdgeInsetsZero" error: Abort trap: 6

Stackoverflow の記事1を参考にして解決できました。

環境

  • Swift 4.2
  • Xcode 10 Beta 2
  • macOS High Sierra (10.13.4)

解決策

どこかに下記のコードを書くと,ビルドが通るようになった。

#if swift(>=4.2)
import UIKit.UIGeometry
extension UIEdgeInsets {
    public static let zero = UIEdgeInsets()
}
#endif

記事にあるように Xcode 10 Beta のリリースノート2(要ログイン)に
UIEdgeInsetsZero について記載がある。

Use of the zero property on UIEdgeInsets causes a compiler crash in the “Merge swiftmodule” build step. The crash log will mention “UIEdgeInsetsZero” at the very end. (40735990)
Workaround: Use the initializer instead: UIEdgeInsets().

UIEdgeInsetszero を使うとビルドの際にコンパイラクラッシュが起きる。
最後にクラッシュログとして UIEdgeInsetsZero について言及される。
解決策としては, UIEdgeInsets() をイニシャライザとして使いなさい。

おわりに

今回は,Xcode 10 Beta で起きる UIEdgeInsetsZero 周りのエラーについて書きました。
リリースノートはしっかりみるべきだなと反省しました。

これまでの書き方が悪いのか 4.1 から 4.2 は結構赤くなる。
bringSubviewToFront とか sendSubviewToBack とかはわかりやすいからいいかな。
業務のプロジェクトたちの方はまだやっていないけどすんなり移行できるといいなぁ・・・(棒)

参考にした記事など

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1