Xcode 7、Swift 2.0、Carthage

5
升级到Xcode 7.0后,我将所有项目转换为Swift 2.0。但是我无法更新Carthage库,出现以下警告:
``` Failed to load plugin at: /Users/Alexandr/Library/Application Support/Developer/Shared/Xcode/Plug-ins/CocoaPodUI.xcplugin, skipping. Reason for failure: *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0] ```
还有几个错误:
``` Box/Box.swift:6:37: error: 'Printable' has been renamed to 'CustomStringConvertible' Box/Box.swift:31:10: error: 'toString' has been renamed to 'String' Box/MutableBox.swift:8:51: error: 'Printable' has been renamed to 'CustomStringConvertible' Box/MutableBox.swift:25:10: error: 'toString' has been renamed to 'String' ```
如何使用Swift 2.0版本的框架?我的carthage文件如下:
github "Alamofire/Alamofire" 
github "SwiftyJSON/SwiftyJSON" 
github "ReactiveCocoa/ReactiveCocoa"

在框架末尾添加“swift 2.0”无效。
~ xcodebuild -version
Xcode 7.0
Build version 7A220
~ carthage version
0.9.1

编辑:

看起来 AlamofireSwiftyJSON 已经支持 Swift 2.0。对于 ReactiveCocoa,我们需要添加 "swift2" 分支。

github "Alamofire/Alamofire"
github "SwiftyJSON/SwiftyJSON"
github "ReactiveCocoa/ReactiveCocoa" "swift2"
2个回答

2

首先,你使用的 Cartage 版本是多少? 运行以下命令:

Carthage version

最新的稳定版本应该是0.8.0,如果你使用的是旧版本,建议升级。 升级方法如下:

brew upgrade carthage

之后请检查您使用的所有库是否支持Swift 2.0,如果不支持,请检查主分支的不同分支,也许他们还没有合并。

我刚看到你运行了0.9.1,可能有问题?我正在使用0.8.0,并且在Alamofire中正常工作。


我将Carthage降级到0.8版本,但问题仍然存在。发现ReactiveCocoa有另一个支持Swift 2.0的分支。 - Gralex

1

我通过在我的Cartfile中添加以下内容使其对我起作用:

github "ReactiveCocoa/ReactiveCocoa" >= 4.0

目前ReactiveCocoa的v4.x版本处于alpha阶段,但v3.x不支持Swift 2。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接