首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迦太基建设失败

迦太基建设失败
EN

Stack Overflow用户
提问于 2017-10-19 16:57:25
回答 2查看 8.5K关注 0票数 10

我运行了carthage bootstrap --platform iOS,得到了“跳过安装领域--cocoa.framework二进制文件:不兼容的Swift版本--框架是用3.1构建的,本地版本是4.0",然后在构建结束时,我得到了一个完整的关于的”构建失败:退出代码65任务失败“错误。

它将我指向derivedDataPath,我检查了xcodebuild日志以获得更多细节,其中它让我知道"PhaseScriptExecution Download\ Core\ and\ Sync derivedDataPath (1 failure)“。

但我仍不完全确定可可王国到底发生了什么,或者如何修复,你知道吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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能够在本地缓存中存储您构建的依赖项(并在需要时使用它),因此即使再次执行命令,它也只会复制存储的框架,从而避免另一个耗时的构建过程。
票数 28
EN

Stack Overflow用户

发布于 2019-01-18 13:02:31

检查您的应用程序文件夹,并切换您的Xcode版本为旧版本与迅捷3。

代码语言:javascript
复制
sudo xcode-select --switch /Applications/Xcode.app
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46835129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档