我运行了carthage bootstrap --platform iOS,得到了“跳过安装领域--cocoa.framework二进制文件:不兼容的Swift版本--框架是用3.1构建的,本地版本是4.0",然后在构建结束时,我得到了一个完整的关于的”构建失败:退出代码65任务失败“错误。
它将我指向derivedDataPath,我检查了xcodebuild日志以获得更多细节,其中它让我知道"PhaseScriptExecution Download\ Core\ and\ Sync derivedDataPath (1 failure)“。
但我仍不完全确定可可王国到底发生了什么,或者如何修复,你知道吗?
发布于 2017-10-24 16:22:55
TL;DR:确保您正在使用Xcode附带的最新Swift版本,然后执行carthage bootstrap --no-use-binaries --platform iOS --cache-builds
长版本:
在构建项目Incompatible Swift version - framework was built with 3.1 and the local version is 4.0时,您从Xcode获得的错误是由Carthage执行的下载,目的是获得一个预构建版本的领域框架(这是一个节省时间的特性,但有时也会出现与此版本不兼容的情况)。
此下载的预构建框架是用以前版本的Swift编译的(在本例中,错误指向v3.1 )。此错误的解决方案将是使用不同的命令执行依赖项安装过程:
carthage bootstrap --platform iOS --no-use-binaries
这将适用于成功构建的项目依赖关系。无论如何,这可能需要很长时间,因为每次执行命令时,它都会从头开始构建核心的Realm.framework和RealmSwift.framework。因此,可以为Carthage上的构建启用本地缓存。这些依赖项可以与
carthage bootstrap --no-use-binaries --platform iOS --cache-builds
有了这一选择,迦太基将:
Cartfile.resolved中的版本将被使用,没有更新。--no-use-binaries构建依赖关系时不需要下载预构建的框架(避免版本不兼容)。--platform iOS将构建仅在iOS上使用的依赖项,避免为Apple或Mac构建框架,以防依赖关系支持它。这会节省很多时间!--cache-builds将使Carthage能够在本地缓存中存储您构建的依赖项(并在需要时使用它),因此即使再次执行命令,它也只会复制存储的框架,从而避免另一个耗时的构建过程。发布于 2019-01-18 13:02:31
检查您的应用程序文件夹,并切换您的Xcode版本为旧版本与迅捷3。
sudo xcode-select --switch /Applications/Xcode.apphttps://stackoverflow.com/questions/46835129
复制相似问题