CarthageのエラーTask failed with exit code 65:で詰まった

別のPCで環境構築してビルドに成功していたのに別のPCでリポジトリをプルした際に詰まった
`Task failed with exit code 65:`というエラーにどう対応したか記録しておく

↓iOS開発者におなじみ`Task failed with exit code 65:`エラー
![スクリーンショット 2018-12-25 23.26.23.png](https://qiita-image-store.s3.amazonaws.com/0/176479/80189aa0-5b5b-f75a-8943-3d06457f8a2a.png)

## 原因
`Command Line Tools`のバージョンがXcode9.4のままになっており、CarthageのビルドはXcode9.4時代のSwiftのバージョンで行われており`fluid-slider`をビルドできなかった
<img width="799" alt="スクリーンショット 2018-12-25 23.42.45.png" src="https://qiita-image-store.s3.amazonaws.com/0/176479/d5502630-a874-2848-ead4-d18bcf3251f8.png">

## 修正
`Command Line Tools`のバージョンがXcode10.0に切り替えもう一度下記を実行

```
$ carthage update --platform iOS fluid-slider
```


## 環境

```
mac OS 10.13.6
carthage version  0.31.2
```

## Cartfileの内容

```swift:Cartfile
github "sascha/DrawerController" == 3.1.0
github "SnapKit/SnapKit" == 4.0.0
github "Ramotion/fluid-slider" == 1.0.0
```

## 観察する
`fluid-slider`というライブラリで躓いているらしい
一応`fluid-slider`のファイルごと消して下記コマンドを試すものの効果なし

```
$ carthage update --platform iOS fluid-slider
```

![スクリーンショット 2018-12-25 23.33.51.png](https://qiita-image-store.s3.amazonaws.com/0/176479/7a859985-90ab-393b-a000-04785d6a3a3f.png)


## ログを見る
下の方にログの場所が書かれているのでそれを見に行く場所は下記

```
/var/folders/0p/hb63w7p51c9gxdfzl80k602c0000gn/T/carthage-xcodebuild.CNW2Io.log
```

`** ARCHIVE FAILED **`しているところを探す

```swift:carthage-xcodebuild.CNW2Io.log
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Slider.swift:25:79: error: use of unresolved identifier 'UIAccessibility'
    return !isSimulator && !ProcessInfo.processInfo.isLowPowerModeEnabled && !UIAccessibility.isReduceMotionEnabled && !isUnderHighload
                                                                              ^~~~~~~~~~~~~~~
UIKit.UIAccessibilityTraits:1:18: note: did you mean 'UIAccessibilityTraits'?
public typealias UIAccessibilityTraits = UInt64
                 ^
UIKit.UIAccessibilityElement:2:12: note: did you mean 'UIAccessibilityElement'?
open class UIAccessibilityElement : NSObject, UIAccessibilityIdentification {
           ^
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Slider.swift:261:42: error: value of type 'CGRect' has no member 'inset'
        backgroundImageView.frame = self.bounds.inset(by: inset)
                                    ~~~~~^~~~~~ ~~~~~
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Slider.swift:268:59: error: value of type 'CGRect' has no member 'inset'
            UIBezierPath(roundedRect: backgroundImageView.bounds.inset(by: inset), cornerRadius: contentViewCornerRadius).fill()
                                      ~~~~~~~~~~~~~~~~~~~~^~~~~~ ~~~~~
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Slider.swift:273:39: error: value of type 'CGRect' has no member 'inset'
        let bounds = self.contentView.bounds.inset(by: UIEdgeInsets(top: 0, left: valueViewMargin, bottom: 0, right: valueViewMargin))
                     ~~~~~~~~~~~~~~~~~^~~~~~ ~~~~~
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Slider.swift:322:16: error: value of type 'CGRect' has no member 'inset'
        return bounds.inset(by: UIEdgeInsets(top: 0, left: valueViewMargin - ValueView.kLayoutMarginInset + valueView.bounds.midX, bottom: 0, right: valueViewMargin - ValueView.kLayoutMarginInset + valueView.bounds.midX))
               ^~~~~~ ~~~~~
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Filters.swift:63:21: error: argument labels '(name:, parameters:)' do not match any available overloads
        var image = CIFilter(name: "CIColorControls", parameters: [kCIInputBrightnessKey: 1, kCIInputSaturationKey: 0, kCIInputContrastKey: 0, kCIInputImageKey: inputImage])?.outputImage
                    ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/■■■■■■■■■■■■■■■■■■/Carthage/Checkouts/fluid-slider/Sources/Filters.swift:63:21: note: overloads for 'CIFilter' exist with these partially matching parameter lists: (name: String, withInputParameters: [String : Any]?), (imageURL: URL!, options: [AnyHashable : Any]!), (imageData: Data!, options: [AnyHashable : Any]!), (cvPixelBuffer: CVPixelBuffer!, properties: [AnyHashable : Any]!, options: [AnyHashable : Any]!), (CVPixelBuffer: CVPixelBuffer!, properties: [AnyHashable : Any]!, options: [AnyHashable : Any]!)
        var image = CIFilter(name: "CIColorControls", parameters: [kCIInputBrightnessKey: 1, kCIInputSaturationKey: 0, kCIInputContrastKey: 0, kCIInputImageKey: inputImage])?.outputImage
                    ^

** ARCHIVE FAILED **

```

## `fluid-slider`のライブラリのリポジトリを確認し、手元にあるファイルとコケているところが一致しているか確認
→一致していた

どうしてコマンドラインツールが原因かと気がついたのかというと、ビルドが躓いている`UIAccessibility`は`Xcode 10 beta with Swift 4.2`では使えなくなったのを思い出したから

[Use of unresolved identifier 'UIAccessibility'](https://stackoverflow.com/questions/51275790/use-of-unresolved-identifier-uiaccessibility)

Carthageはコマンドラインツールで設定されているXcodeのバージョンのSwiftでビルドされるから、コマンドラインツールで設定されているバージョンが違うのでは・・・？ :thinking: 
と思い出した

## `fluid-slider`のビルド成功したあと
下記のようなエラーが出てくる

<img width="671" alt="スクリーンショット 2018-12-25 23.27.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/176479/583e869f-fed7-38ca-5d4a-adcf7fd17970.png">

SnapKitのライブラリのReleasesを確認してみると
Xcode10でSwift4.2に対応しているのはSnapKit 4.2.0からということがわかる
![スクリーンショット 2018-12-25 23.28.05.png](https://qiita-image-store.s3.amazonaws.com/0/176479/15ad4bff-b201-fa91-33dd-6cbdd8e026c2.png)

自分のCartfileを下記のように修正

```swift:Cartfile
github "sascha/DrawerController" == 3.1.0
github "SnapKit/SnapKit" == 4.2.0
github "Ramotion/fluid-slider" == 1.0.0

```

```
$ carthage update --platform iOS SnapKit
```

これでビルドできるようになった