将 swift 更新到 4.0 版后 Carthage Build 失败
Posted
技术标签:
【中文标题】将 swift 更新到 4.0 版后 Carthage Build 失败【英文标题】:Carthage Build Failed after updating swift to version 4.0 【发布时间】:2017-09-22 10:38:37 【问题描述】:在将 swift 从 3.2 版更新到 4.0 版后,Carthage 构建失败。
以下是使用carthage update --platform ios
的结果。
*** Fetching AlamofireImage
*** Fetching FSCalendar
*** Fetching Alamofire
*** Fetching ActiveLabel.swift
*** Fetching Toaster
*** Fetching PopupDialog
*** Fetching DKImagePickerController
*** Checking out DKImagePickerController at "3.6.1"
*** Checking out PopupDialog at "0.5.4"
*** Checking out Toaster at "2.1.0"
*** Checking out ActiveLabel.swift at "0.8.0"
*** Checking out Alamofire at "4.5.1"
*** Checking out FSCalendar at "2.7.9"
*** Checking out AlamofireImage at "3.3.0"
*** xcodebuild output can be found in /var/folders/6z/c0myz1fn4rsgy842p9vqqr700000gn/T/carthage-xcodebuild.my2Am1.log
*** Building scheme "ActiveLabel" in ActiveLabel.xcodeproj
Build Failed
Task failed with exit code 65:
/usr/bin/xcrun xcodebuild -project /Users/poqw/Documents/GitHub/nyg-ios/Carthage/Checkouts/ActiveLabel.swift/ActiveLabel.xcodeproj -scheme ActiveLabel -configuration Release -derivedDataPath /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0 -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES build (launched in /Users/poqw/Documents/GitHub/nyg-ios/Carthage/Checkouts/ActiveLabel.swift)
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/6z/c0myz1fn4rsgy842p9vqqr700000gn/T/carthage-xcodebuild.my2Am1.log
然后$ tail /var/folders/6z/c0myz1fn4rsgy842p9vqqr700000gn/T/carthage-xcodebuild.my2Am1.log
我明白了:
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:~/.local/bin:/usr/local/bin:/Users/poqw/miniconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Wireshark.app/Contents/MacOS:/opt/local/bin"
/usr/bin/ditto -rsrc /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0/Build/Intermediates.noindex/ActiveLabel.build/Release-iphoneos/ActiveLabel.build/Objects-normal/armv7/ActiveLabel.swiftdoc /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0/Build/Products/Release-iphoneos/ActiveLabel.framework/Modules/ActiveLabel.swiftmodule/arm.swiftdoc
** BUILD FAILED **
The following build commands failed:
CompileC /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0/Build/Intermediates.noindex/ActiveLabel.build/Release-iphoneos/ActiveLabel.build/Objects-normal/armv7/ActiveLabel_vers.o /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0/Build/Intermediates.noindex/ActiveLabel.build/Release-iphoneos/ActiveLabel.build/DerivedSources/ActiveLabel_vers.c normal armv7 c com.apple.compilers.llvm.clang.1_0.compiler
CompileC /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0/Build/Intermediates.noindex/ActiveLabel.build/Release-iphoneos/ActiveLabel.build/Objects-normal/arm64/ActiveLabel_vers.o /Users/poqw/Library/Caches/org.carthage.CarthageKit/DerivedData/9.0_9A235/ActiveLabel.swift/0.8.0/Build/Intermediates.noindex/ActiveLabel.build/Release-iphoneos/ActiveLabel.build/DerivedSources/ActiveLabel_vers.c normal arm64 c com.apple.compilers.llvm.clang.1_0.compiler
(2 failures)
这是我为解决此问题所做的工作。
删除派生的迦太基缓存。 删除项目中的 Carthage 目录。 卸载 Carthage 并重新安装。 下载 Xcode 8.3.2 和xcode-select --switch /Applications/Xcode8.app/Contents/Developer
并使用 xcrun
命令确保版本已更改为 swift 3.0,然后更新 Carthage。
清理项目并重建
重启 Xcode
如果有人可以帮助我,我将不胜感激。
【问题讨论】:
【参考方案1】:我使用的是 Xcode 8.3.1,这就是我所遵循的:
Deleted derived data.
Removed Carthage folder: rm -r ./Carthage
Updated Cartfile with:
github "facebook/facebook-sdk-swift" "master"
github "facebook/facebook-ios-sdk" "sdk-version-4.21.0"
运行迦太基命令:
carthage update --platform iOS --no-use-binaries
【讨论】:
感谢您回答这个问题。但是您建议的解决方案是我已经做过的事情。而且它似乎仍然没有解决:( 我遇到了很多问题,奇怪的是,我发现重置我的 Mac 有很大的不同。 谢谢。但最后我没有以任何方式解决它。所以我格式化了我的macbook,现在它运行良好。 欢迎。我又遇到了这个问题,我发现做一个清洁,首先对模拟器有帮助。 似乎删除派生数据就足够了。至少对我来说。谢谢。【参考方案2】:Mac Senour 的解决方案对我不起作用;有效的是在这里清理 CarthageKit 的派生数据:/Library/Caches/org.carthage.CarthageKit/DerivedData/
【讨论】:
以上是关于将 swift 更新到 4.0 版后 Carthage Build 失败的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 更新 0.4.0 找不到 buildConfig()
Xcode 9:使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入
Big Sur 更新 11.3 版后 MacBook Pro 错误 Xampp 不起作用