如何修复迦太基构建错误:选择Swift 5时,“不支持SWIFT_VERSION'3.0'”

时间:2019-06-05 07:37:41

标签: ios swift alamofire carthage swift5

我正在将基于Alamofire的“ NetworkFoundation”框架迁移到Swift5。迦太基被用作依赖项管理器,

购物车文件如下所示:

  

github“ Alamofire / Alamofire”“ 5.0.0-beta.5”

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

  

xcodebuild输出可以在/var/folders/1m/qjb4gks13d54rqmn9ptwjmmw0000gp/T/carthage-xcodebuild.bg5VCR.log

中找到      

Alamofire.xcworkspace中的构建方案“ Alamofire macOS”

     

Alamofire.xcworkspace中的构建方案“ Alamofire tvOS”

     

Alamofire.xcworkspace中的构建方案“ Alamofire watchOS”

     

Alamofire.xcworkspace中的构建方案“ Alamofire iOS”

     

MyNetworkFoundation.xcodeproj中的构建方案“ MyNetworkFoundation”

     

Alamofire.xcworkspace中的构建方案“ Alamofire iOS”

     

构建失败

     
    

任务失败,退出代码为65:

         
      

/ usr / bin / xcrun xcodebuild -workspace /Users/MyUser/Documents/Projects/MyNetworkFoundation/MyNetworkFoundation/Carthage/Checkouts/Alamofire/Alamofire.xcworkspace -scheme Alamofire \ iOS-配置发行版-sdk iphoneos ONLY_ACTIVE_ARCH = NO CODE_SIGNING_REQUIRED否CODE_SIGN_IDENTITY = CARTHAGE = YES存档-archivePath / var / folders / 1m / qjb4gks13d54rqmn9ptwjmmw0000gp / T / MyNetworkFoundation SKIP_INSTALL = YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO CLANG_ENABLE_CODE_IP_PRODUCT / ed / User /用户>     

  
     

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

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

error: SWIFT_VERSION '3.0' is unsupported, supported versions are: 4.0, 4.2, 5.0. (in target 'Alamofire iOS') ** ARCHIVE FAILED **

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

由于日志文件指出目标“ Alamofire iOS”中使用了Swift版本3.0,因此我在以下位置检查了目标

  

/ MyNetworkFoundation /迦太基/结帐/Alamofire/Alamofire.xcodeproj

但是他们所有人都有Swift版本5。 我不知道为什么要构建项目时为什么会出现该错误。我什至尝试重新安装Xcode,但这也不起作用。有人知道我想念什么吗?

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

1 个答案:

答案 0 :(得分:0)

不确定这是否可以为您解决问题,但我遇到了类似的情况。对我来说,由于我只是复制了要加入的项目的存储库,因此我正在运行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。希望这会有所帮助!