ios - 选择 Swift 5 时如何修复迦太基构建错误 : "SWIFT_VERSION ' 3. 0' is unsupported"

标签 ios swift alamofire carthage swift5

我正在将基于 Alamofire 的“NetworkFoundation”框架迁移到 Swift 5。Carthage 被用作依赖管理器,

购物车文件如下所示:

github "Alamofire/Alamofire" "5.0.0-beta.5"

命令 carthage update 成功执行。在 Xcode 中,项目构建,但是当我在我的框架的根目录中运行命令 carthage build --no-skip-current 时,它失败了:

xcodebuild output can be found in /var/folders/1m/qjb4gks13d54rqmn9ptwjmmw0000gp/T/carthage-xcodebuild.bg5VCR.log

Building scheme "Alamofire macOS" in Alamofire.xcworkspace

Building scheme "Alamofire tvOS" in Alamofire.xcworkspace

Building scheme "Alamofire watchOS" in Alamofire.xcworkspace

Building scheme "Alamofire iOS" in Alamofire.xcworkspace

Building scheme "MyNetworkFoundation" in MyNetworkFoundation.xcodeproj

Building scheme "Alamofire iOS" in Alamofire.xcworkspace

Build Failed

Task failed with exit code 65:

/usr/bin/xcrun xcodebuild -workspace /Users/MyUser/Documents/Projects/MyNetworkFoundation/MyNetworkFoundation/Carthage/Checkouts/Alamofire/Alamofire.xcworkspace -scheme Alamofire\ iOS -configuration Release -sdk iphoneos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive -archivePath /var/folders/1m/qjb4gks13d54rqmn9ptwjmmw0000gp/T/MyNetworkFoundation SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO STRIP_INSTALLED_PRODUCT=NO (launched in /Users/MyUser/Documents/Projects/MyNetworkFoundation)

这通常表示项目本身编译失败。请检查 xcodebuild 日志以获取更多详细信息:/var/folders/1m/qjb4gks13d54rqmn9ptwjmmw0000gp/T/carthage-xcodebuild.bg5VCR.log

按照建议,我检查了失败构建的日志文件。里面写着:

错误:SWIFT_VERSION '3.0' 不受支持,支持的版本有:4.0、4.2、5.0。 (在目标“Alamofire iOS”中)**存档失败**

所以我检查了我的项目的 Swift 版本,这似乎是正确的。 MyNetworkFoundation Build Settings

因为日志文件指出目标“Alamofire iOS”中使用了 Swift 版本 3.0,所以我检查了目标

/MyNetworkFoundation/Carthage/Checkouts/Alamofire/Alamofire.xcodeproj

但他们都有 Swift Version 5。 我不知道为什么要构建项目时会出现该错误。我什至尝试重新安装 Xcode,但这也没有用。有人知道我缺少什么吗?

Xcode 版本:10.2.1 (10E1001) MacOS 版本:10.14.5 (18F132)

最佳答案

不确定这是否会为您解决问题,但我遇到了类似的情况。对我来说,因为我刚刚复制了我正在加入的项目的 repo 协议(protocol),所以我正在运行 carthage bootstrap 并且 Alamofire 总是失败,出现像你这样的 Swift 3 错误。

我的 Cartfile 文件有 github "Alamofire/Alamofire"~> 4.7.2,我的项目使用的是 Swift 4.2(同样,与您的设置不完全相同)。

我终于让它运行以下命令:

carthage bootstrap --platform iOS --no-use-binaries --toolchain com.apple.dt.toolchain.Swift_4_2

我认为诀窍是指定工具链使用 Swift 4.2,所以我建议您尝试使用 Swift_5_0。希望这对您有所帮助!

关于ios - 选择 Swift 5 时如何修复迦太基构建错误 : "SWIFT_VERSION ' 3. 0' is unsupported",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456073/

相关文章:

ios - 如何防止导航到 UIViewController 检查条件?

ios - CollectionView 加载缓慢

ios - 使用 CocoaLumberjack 手动创建新日志文件

ios - 向 CAShapeLayer 添加渐变

ios - 如何通过 SwiftyJson 和 Alamofire 发布嵌套的 json?

ios - 带有标识符的应用程序ID不可用。请输入其他字符串

iphone - 核心数据故障 : how to load an entities relationship set of objects correctly

ios - Swift-通过 PFQueryTableViewController 创建 Twitter 或 Instagram 等个人资料页面

ios - 带有签名请求的 Swift Alamofire 文件上传 : how to send authorization headers?

json - 类型 any 没有下标成员 swift 3