不具合
SwiftでObjCBoolのboolValueをこのように呼び出すと
var isDir: ObjCBool = false let isExist = fm.fileExists(atPath: directory, isDirectory: &isDir) XCTAssertTrue(isDir.boolValue)
osxだと大丈夫だけどlinux環境だとerrorになる・・
error: value of type 'ObjCBool' (aka 'Bool') has no member 'boolValue' XCTAssertTrue(isDir.boolValue) ^~~~~ ~~~~~~~~~
原因
no memberなわけないだろと思ったら、ほんとにno memberだった・・・
対策
4.1で治ってるので
#if !os(Linux) || swift(>=4.1) XCTAssertTrue(isDir.boolValue) #else XCTAssertTrue(isDir) #endif
もしくは
たくさんの場所でboolValueを使っている場合はextensionで4.1未満の場合にboolValueを時前で実装してしまう
#if os(Linux) || !swift(>=4.1) extension ObjCBool { var boolValue: Bool { return Bool(self) } } #endif