我正在将基于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 **
由于日志文件指出目标“ Alamofire iOS”中使用了Swift版本3.0,因此我在以下位置检查了目标
/ MyNetworkFoundation /迦太基/结帐/Alamofire/Alamofire.xcodeproj
但是他们所有人都有Swift版本5。 我不知道为什么要构建项目时为什么会出现该错误。我什至尝试重新安装Xcode,但这也不起作用。有人知道我想念什么吗?
Xcode版本:10.2.1(10E1001) MacOS版本:10.14.5(18F132)
答案 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。希望这会有所帮助!