別のPCで環境構築してビルドに成功していたのに別のPCでリポジトリをプルした際に詰まった
Task failed with exit code 65:
というエラーにどう対応したか記録しておく
↓iOS開発者におなじみTask failed with exit code 65:
エラー
原因
Command Line Tools
のバージョンがXcode9.4のままになっており、CarthageのビルドはXcode9.4時代のSwiftのバージョンで行われておりfluid-slider
をビルドできなかった
修正
Command Line Tools
のバージョンがXcode10.0に切り替えもう一度下記を実行
$ carthage update --platform iOS fluid-slider
環境
mac OS 10.13.6
carthage version 0.31.2
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
ログを見る
下の方にログの場所が書かれているのでそれを見に行く場所は下記
/var/folders/0p/hb63w7p51c9gxdfzl80k602c0000gn/T/carthage-xcodebuild.CNW2Io.log
** ARCHIVE FAILED **
しているところを探す
/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'
Carthageはコマンドラインツールで設定されているXcodeのバージョンのSwiftでビルドされるから、コマンドラインツールで設定されているバージョンが違うのでは・・・?
と思い出した
fluid-slider
のビルド成功したあと
下記のようなエラーが出てくる
SnapKitのライブラリのReleasesを確認してみると
Xcode10でSwift4.2に対応しているのはSnapKit 4.2.0からということがわかる
自分の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
これでビルドできるようになった