Command CompileSwift 在 Xcode 10 中以非零退出代码失败 [重复]
Posted
技术标签:
【中文标题】Command CompileSwift 在 Xcode 10 中以非零退出代码失败 [重复]【英文标题】:Command CompileSwift failed with a nonzero exit code in Xcode 10 [duplicate] 【发布时间】:2019-02-22 13:00:13 【问题描述】:在更新到当前 Xcode 的最新版本(10.0 版)后,项目无法构建,因为它发现了一些关于“Command CompileSwift failed with a nonzero exit code”错误的错误。
如何解决此错误? 它们出现在我在项目中使用的大多数 Pod(我使用 CocoaPods)中。
我已尝试将 pod 版本和 pod 更新到可用的最新版本,但问题仍然存在。
我在网上搜索了很多,关于这个问题的信息很少。
【问题讨论】:
pod install --repo-update
,然后在您的 xCode 清理构建文件夹中并删除派生数据,然后再次尝试构建。
它不起作用@inokey
在项目设置中检查部署目标。
ios 部署目标设置为 9.0,有问题吗?再次感谢@inokey
另一种可能的解决方案(对我有用)在这里找到:***.com/a/52481653/96153
【参考方案1】:
您很可能没有阅读完整的错误消息。如果您查看上方的“Command CompileSwift failed with a nonzero exit code”消息,您应该会发现一些如下规范:
在这个例子中,我有两个同名的文件。一旦我修复它,一切都会正常运行。
【讨论】:
你好,@Samy。你到底做了什么? 在我的示例中,有两个文件具有相同的名称,因此我更改了其中一个。【参考方案2】:我的问题是由于不存在原生 Swift CommonCrypto,我使用了桥接头和带有 some magic 的目标,将其包含在构建中。由于 CommonCrypto 现在是原生的,我通过删除目标和#import
解决了这个问题,而是在我使用它的地方添加了一个import CommonCrypto
。
【讨论】:
是的!我也有这个(没有 cocoapods 或类似的东西,只有 CommonCrypto)谢谢你拯救我的一天 @OmidAriyan 你好,伙计们,这个问题让我在过去两周内无法工作:s,我尝试了几乎所有在这个网站上找到的解决方案,但它根本不起作用。对于你的回答,我实际上没有明白这一点。你能详细解释一下你的答案吗?请问有什么问题,我应该按步骤做什么:(:( @mojtabaalmoussawi 在 Xcode 10 发布之前,为了在我的项目中使用 CommonCrypto,我基本上遵循了 ***.com/a/42852743/1038245。我只是试图撤消它以修复作为此问题主题的错误。【参考方案3】:我尝试过
关闭和重新打开 Xcode 清理构建文件夹 正在运行pod install --repo-update
所有这些仍然没有解决问题。
重启 Mac 成功了!
【讨论】:
我将我的 xcode 更新到 10.3 并遇到了类似的问题。我尝试了所有技巧,但没有任何帮助,但如此处粗体所示,“重新启动 mac 成功了”,它对我有用。 讨厌这么说,但重新启动我的 mac 确实为我解决了这个问题。顺便说一句,我将 Xcode 升级到 10.3 后出现此错误。 在您尝试任何“重新启动 Mac”之前。这应该是最佳答案。 Clean Build Folder 非常适合我(只需清理,无需重新启动 Mac)。 重启 Mac 的事情可能看起来很有趣,但这是一个有效的观点!就我而言,我修改了.bash_profile
,然后在终端中快速加载它:source .bash_profile
并开始工作。所以几天后我回来后,我又遇到了问题,因为.bash_profile
没有加载......然后重新启动确实有帮助:)【参考方案4】:
这似乎是一个非常模糊的错误,所以当我遇到这个问题时,我将分享我为修复它所做的工作:
使用 Xcode 10.1 和 Swift 4.2 我在这里尝试了几乎所有的建议,但没有一个对我有用,然后我意识到我使用的依赖项与 Swift 4.2 不兼容,这导致我在其他设备上遇到此错误豆荚。所以要修复它,我只需要通过将它放在我的 Podfile
末尾来强制该 pod 使用 Swift 4.0:
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['TKRadarChart'].include? target.name
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
end
end
【讨论】:
我为所有 pod 输入了 5.0 swift 版本【参考方案5】:在我的情况下,问题是由于 watchkit 扩展设置为 swift 3 而主项目的目标设置为 swift 4.2
【讨论】:
就在这里!这让我困扰了很久!当您向库中添加框架/扩展时,请确保扩展和库都使用相同的 Swift 语言版本!谢谢@Itay【参考方案6】:对我来说,错误消息说我打开了太多模拟器文件来构建 Swift。当我退出模拟器并重新构建时,一切正常。
【讨论】:
这与我连接到真实设备的情况相似,但已断开连接并且构建工作正常。【参考方案7】:ERROR = Command CompileSwiftSources 失败,退出代码非零
在我的情况下,当我发现这个错误时,我在编译时感到局促。但是当我看到一些相关的问题答案时。我在我的项目中找到了一个重复文件。相同的 viewController 作为类文件存在的地方。所以是的,当我意识到它时,我将它的名称更改为新名称。是的,事情发生了变化!!!
【讨论】:
【参考方案8】:运行 pod install --repo-update
并关闭并重新打开 x-code 解决了我所有出现此错误的 pod 上的问题。
【讨论】:
【参考方案9】:类重新声明将是问题。检查重复的类并构建。
【讨论】:
【参考方案10】:在我的例子中,在 Build Phases 的 Carthage framework 部分的 Input Files 中有一个框架的重复条目
【讨论】:
【参考方案11】:我有同样的问题,我的解决方案是在构建设置中更改一些小东西
SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";
【讨论】:
【参考方案12】:对我来说,只需清理项目即可使用 ShiftCommandK & OptionShiftCommandK.
【讨论】:
这并没有解决我的问题,它什么也没做。 是的,这对我也有用 Xcode 10.2.1、iOS 2.3.1、iPhone XS Max。感谢上帝,它不会是大海捞针。在上次编译和出现错误的位置之间,我并没有太大变化。 这个答案相当于 IT,告诉人们尝试将其关闭然后再打开。这当然为我解决了。 哈哈哈老兄,谢谢它对我有用 :) 你太棒了, 哇,这是第三次来这里了..【参考方案13】:我做了以下事情,它就像魅力一样:
打开 Xcode 首选项(Command,) 转到Locations
标签
单击显示Derived Data
的URL 路径的灰色小箭头
Finder 窗口将打开并显示以下文件夹:
DerivedData
Archives
iOS DeviceSupport
UserData
DocumentationCache
iOS Device Logs
退出 Xcode
删除DerivedData
文件夹(它只包含以前版本的缓存)
重启 Xcode
【讨论】:
这并没有解决我的问题,它什么也没做。 尝试了很多,但这是唯一有效的解决方案【参考方案14】:我也遇到了同样的问题,我按照@cdeerinck 的建议做了,得到了下面的link,它建议在 Build Settings 中添加一个用户定义的变量来禁用批处理模式,即添加一个名为 SWIFT_ENABLE_BATCH_MODE 的新用户定义变量并将其设置为 NO,我能够更深入地了解该问题,并且我知道错误出现在使用 strong>CommonCrypto 被添加到它(由我),但由于 Xcode 10 它作为 Swift 的一部分本地公开(仅适用于 Apple 平台),并添加它(或它的存在来自以前的版本)导致名称冲突,因此引发错误。要了解更多信息,请参阅this link,它更详细地解释了该问题。
【讨论】:
【参考方案15】:我从 Xcode 10 开始随机得到这个。我认为当我在构建开始时更改代码中的某些内容时会发生这种情况。 下一个构建每次都有效。
【讨论】:
【参考方案16】:解决方法如下: - 去构建设置 - 搜索 SWIFT_COMPILATION_MODE - 如果这是发布配置的“整个模块”,则将其更改为“增量”。 - 立即存档。
当您将设置更改为“增量”时,过程成功。
【讨论】:
【参考方案17】:这是 Swift 4.2 和 Xcode 10 的一个已知问题。我在这里找到了一篇文章为我解决了这个问题:https://github.com/Yummypets/YPImagePicker/issues/236
简而言之,转到您的项目构建设置,并添加一个名为 SWIFT_ENABLE_BATCH_MODE 的用户定义设置并将其值设置为 NO。
之前,我尝试了其他地方建议的以下每种方法(重建、退出 Xcode、清理和重建、清除派生数据文件)。他们都没有工作。
一旦我按照文章添加了用户定义构建设置,Swift 就会告诉我真正的错误。在我的例子中,它是一个缺失的 ,但它可能是任何数量的问题。
【讨论】:
这并没有解决我的问题,它什么也没做。 但是,我收到了这个错误消息:Command PrecompileSwiftBridgingHeader failed with a nonzero exit code 我没有工作,又遇到同样的错误。 这对我有用;揭示了潜在的错误。【参考方案18】:让我分享一下我解决此问题的经验。
打开目标 -> 构建阶段 -> 复制捆绑资源并删除 info.plist。
注意:如果您使用任何扩展程序,请从目标中删除该扩展程序的 info.plist。
希望对你有帮助。
【讨论】:
这并没有解决我的问题,它什么也没做。【参考方案19】:我的是名称间距问题。我有两个同名的文件。只是将它们重命名并解决了。
在寻找其他地方之前,总是要先检查“愚蠢的我”框。 :)
【讨论】:
【参考方案20】:我遇到了这个问题,将项目的编译模式设置从增量更改为整个模块为我解决了这个问题。
【讨论】:
这帮助我解决了问题。当我打开整个模块模式时,它开始向我报告实际错误,而不是一般的高级故障。全部修复后,如果您愿意,您可以将其改回增量。 任何提示在哪里可以找到此设置?我查看了我的目标的构建设置和项目的构建设置,但找不到它(通过搜索它)可能是因为我在一个相当旧的 Objective-C 项目上? 它在 Swift 编译器 -> 代码生成下。或者,有时可能会在用户定义 -> SWIFT_COMPILATION_MODE 下列出 这并没有解决我的问题,它什么也没做。 感谢您的提示,它解决了我的问题。我的情况是将项目迁移到 Xcode 10.2 和 Swift 5。我在博客中写了详细的解释:davidchuprogramming.blogspot.com/2019/03/…【参考方案21】:只是添加到这个问题。我的问题与 CommonCrypto 没有任何关系。它创建了一个新的 Single App 应用程序并经过测试可以运行。编译器抱怨使用 Swift 4.2
在构建设置中将 Swift 语言更改为 4.0 版解决了该问题。不确定这是否是一个错误。
【讨论】:
【参考方案22】:我搜索了整个网络,但找不到任何解决此问题的方法。我设法删除了部分中的“通用加密”路径:构建设置中的导入路径。 问题似乎是“通用加密”现在存在于 ios 12 sdk 的基础中。
所以":
只需在构建设置中删除文件“common crypto”的路径,项目就会像魅力一样构建! :)
【讨论】:
你能澄清一下你的构建设置在哪里吗?是搜索路径吗? 是的。转到构建设置,选择“全部”选项卡而不是“基本”或“自定义”。现在搜索:“Swift Compiler - Search Paths”如果存在通用加密的路径,请将其删除。【参考方案23】:目前我的构建正在运行。 这是我尝试的步骤,直到它最终奏效:
-
在整个项目中搜索 CommonCrypto 这个词。
如果您有一个包含该标头导入的 Pod,请从 Podfile 中删除该 Pod 并执行 pod 安装。
清理并构建项目。
再次将 Pod 添加到 Podfile 并执行 Pod 安装。
如果可能,请使用真实设备清理并重新构建项目。
如果您没有那个 Pod,也许您可以尝试使用您在项目中可能遇到的一些旧 Pod 执行相同的步骤。
补充信息:如果你在 Pod 内部有一些代码错误,首先你需要解决那个代码问题,然后尝试重新编译项目。
我将复制在我的 project.pbxproj 中所做的更改。我知道这不是很有帮助,但这是 git 差异提交中唯一改变的地方:
Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = isa = PBXBuildFile; ;
Added: BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = isa = PBXBuildFile; ;
希望对你有帮助
问候。
【讨论】:
不适合我,特别是当我尝试嵌入我之前创建的框架时。 您是否发现任何其他错误?还是只有 CompileSwift? 翠鸟吊舱有这个问题,你的方法有帮助,谢谢! 修复其他代码问题,然后执行这些步骤为我解决了问题 为什么要这样做?以上是关于Command CompileSwift 在 Xcode 10 中以非零退出代码失败 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
构建失败:如何解决 React Native iOS 虚拟设备应用构建失败、CompileSwift 和 CompileC 失败?
Cocoapod“pod spec lint”CompileSwift返回了一个不成功的退出代码
Win8装 .NET 3.5 时出现0x800F0907错误怎么办?
在nios eds上编译程序时,出错:nios2-elf-gcc: Command not found,这是啥原因呢?求高手指点
sql server 导入平面文件源数据,错误 0xc02020a1错误 0xc020902a 错误 0xc02020c5,返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页...