尝试在 iOS 项目中安装 FontAwesomeSwift 时 Carthage 失败

Carthage fails when trying to install FontAwesomeSwift in iOS project

我正在尝试在我的 Xcode 项目 (Swift) 中安装 FontAwesome.Swift,所以我使用以下行创建了一个 Cartfile

github "thii/FontAwesome.swift" >= 0.4.1

如此处所述。那我运行

迦太基更新,这发生了:

==> carthage update
*** Fetching FontAwesome.swift
*** Checking out FontAwesome.swift at "0.6.0"
*** xcodebuild output can be found in /var/folders/fr/sn4l2f393_v_ytcwkb0lx7_40000gp/T/carthage-xcodebuild.4QnCto.log
*** Building scheme "FontAwesome" in FontAwesome.xcodeproj
** BUILD FAILED **


The following build commands failed:
    CompileSwift normal x86_64 <path_to_project>/<ProjectName>/Carthage/Checkouts/FontAwesome.swift/FontAwesome/FontAwesome.swift
    CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
(2 failures)
<path_to_project>/<ProjectName>/Carthage/Checkouts/FontAwesome.swift/FontAwesome/FontAwesome.swift:72:61: error: 'String.Index' does not have a member named 'advancedBy'
A shell task failed with exit code 65:
** BUILD FAILED **


The following build commands failed:
    CompileSwift normal x86_64 <path_to_project>/<ProjectName>/Carthage/Checkouts/FontAwesome.swift/FontAwesome/FontAwesome.swift
    CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
(2 failures)

我从错误信息中推断:

'String.Index' does not have a member named 'advancedBy'

您还在使用 Xcode 6.x? advancedBy API 仅适用于 Swift 2.0,它随 Xcode 7.

一起提供

所以,你有两个选择:

  1. 将您的项目升级到 Xcode 7 / Swift 2.0
  2. 编辑您项目的 Cartfile,以便它获取与您的 Xcode 版本兼容的 FontAwesome.swift 版本。似乎 FontAwesome.swift 已迁移到 Swift 2.0 版本 0.6,因此指定版本 < 0.6(而不是 >= 0.4.1)可能会成功。

如果您同时安装了 Xcode 的两个版本,Carthage 可能仍会使用 Xcode 6.x 中的命令行工具,而不是较新的工具。您可以在终端中使用 xcodeselect 命令修复此问题,但也可以在 Xcode 首选项(位置选项卡)中切换到所需的工具版本。