【问题标题】:Xcode 11 beta 4 build error: "Command CompileSwiftSources failed with a nonzero exit code" (error: unknown argument: '-Wno-shorten-64-to-32')Xcode 11 beta 4 构建错误:“Command CompileSwiftSources failed with a nonzero exit code”(错误:未知参数:'-Wno-shorten-64-to-32')
【发布时间】:2019-07-18 07:55:25
【问题描述】:

在 Xcode 11 beta 3 中编译良好的项目,在 pod 中无法在 beta 4 中编译:

<unknown>:0: error: unknown argument: '-Wno-shorten-64-to-32'
Command CompileSwiftSources failed with a nonzero exit code

有问题的 pod 是 Down,它是 Swift 中的 Markdown 库。

这与另一个SO question 非常相似,但具有不同的“未知参数”:

错误:未知参数:'-Wno-shorten-64-to-32'

有什么建议吗?

【问题讨论】:

标签: cocoapods xcode11


【解决方案1】:

在 Down.podspec 文件中注释掉这一行:

spec.compiler_flags = '-Wno-shorten-64-to-32' 

至少现在对我有用。没有承诺没有任何副作用。由于各种原因,我有一个本地版本的 pod,所以这对我来说相当简单;您的结果可能会有所不同,但它会让您暂时重新启动并运行。

【讨论】:

  • 我有这个确切的问题,在 Down 中也不少,但在任何地方都找不到 Down.podspec 文件,也找不到包含 no-shorten-64-to-32 的文件。我正在尝试将一个项目移植到 beta 编译器,并且我想弄清楚这是从哪里来的。还有什么想法吗?
  • podspec 文件是它与 cocoapods 一起工作的一部分;您必须拥有 pod 的完整本地版本。就我而言,我有自己的 fork,并在我自己的 podspec 副本中进行了修改。我还没有尝试过,但我想你可以从 here 获取一份 podspec 的副本并更新你的 podfile 以引用它:https://guides.cocoapods.org/syntax/podfile.html#podspec
【解决方案2】:

为了其他遇到此讨论的人的利益,请查看this CocoaPods thread。事实证明,CocoaPods 将不可接受的标志传递给 Swift 存在问题,并且 beta 4 编译器现在拒绝此类标志,而之前的编译器没有。在 Down 的情况下,-Wno-shorten-64-to-32 标志适用于 Objective-C 编译器,但不适用于 Swift。 Down 可以在短期内通过移除

来解决这个问题
spec.compiler_flags = '-Wno-shorten-64-to-32' 

line,正如 Mike Glass 在这里所建议的那样,但从长远来看,CocoaPods 必须允许在不同编译器之间分离编译器标志,然后根据需要进行相应的 Down 更新,以匹配 CocoaPods 修复所需的任何新 podspec 语法。

【讨论】:

    【解决方案3】:

    在 Xcode 11.3 中遇到了这个问题。完成了与派生数据相关的所有事情,清除 pod 以及互联网上可用的所有内容,但没有运气,并且该应用程序没有在真实设备上调试。然后认为这可能是Xcode崩溃的问题,只是将Xcode删除到垃圾箱并清除了垃圾箱,然后重新安装了Xcode 11.3的新副本。 感谢我的假设,它对我有用。

    【讨论】:

      猜你喜欢
      • 2019-03-27
      • 1970-01-01
      • 2021-07-16
      • 2022-12-28
      • 1970-01-01
      • 2023-03-29
      • 2018-12-12
      • 2020-02-23
      • 2020-06-23
      相关资源
      最近更新 更多