Ios Xcode 10.2,Swift 5,命令compileSwift在使用发布方案生成程序时失败

Ios Xcode 10.2,Swift 5,命令compileSwift在使用发布方案生成程序时失败,ios,swift,xcode,cocoapods,Ios,Swift,Xcode,Cocoapods,我使用的是Xcode 10.2,Swift 5 对于调试方案,不会发生任何问题,但对于构建或归档时的发布方案,它显示命令compileSwift失败,退出代码为非零 我已尝试删除DerivedData/Clean/pod deintegrate&pod install&pod update。这些都不管用 您可以按照以下步骤操作 确保将Swift版本更改为当前版本 更新你所有的播客 清除Xcode的所有派生数据 现在重新启动你的Mac 所有这些错误都是由于pod造成的,所以要么你需要更新你正在使

我使用的是Xcode 10.2,Swift 5

对于调试方案,不会发生任何问题,但对于构建或归档时的发布方案,它显示命令compileSwift失败,退出代码为非零

我已尝试删除DerivedData/Clean/pod deintegrate&pod install&pod update。这些都不管用


您可以按照以下步骤操作

  • 确保将Swift版本更改为当前版本
  • 更新你所有的播客
  • 清除Xcode的所有派生数据
  • 现在重新启动你的Mac

  • 所有这些错误都是由于pod造成的,所以要么你需要更新你正在使用的每个pod

    所以我在将我的项目更新到Swift 5时遇到了同样的问题。 出于某种原因,Cocoapods(最新版本,1.6.1)将某些pods的SWIFT_版本设置为SWIFT 5,即使它们发布为SWIFT 4、4.1、4.2 pods。 因此,我必须添加一个安装后脚本,将swift的更正版本设置为这样

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        if target.name == 'CryptoSwift' || target.name == 'SwiftyBeaver'
          target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '4.2'
          end
        end
      end
    end
    

    我修复了这个问题,方法是转到Pods项目,然后转到building settings,并将编译模式设置为Incremental,用于发布。然后进行清理和归档,然后就可以编译了。

    升级到Xcode 10.2后,我也遇到了同样的问题。在完成以下步骤后,它对我有效:

  • 更新播客
  • 清理项目文件夹
  • 将Pods项目的Swift语言版本更改为未指定的,并(按照@Neil Faulkner的建议)编译模式更改为增量的

  • 对于我的项目,问题与pod
    Cache
    有关,当
    Release
    Optimization Level
    设置为
    Optimization For Speed[-O]
    时,它会给出错误。我已将
    编译模式
    再次设置为
    整个模块
    ,并在pod文件中为pod设置了优化级别:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        # Cache pod does not accept optimization level '-O', causing Bus 10 error. Use '-Osize' or '-Onone'
        if target.name == 'Cache'
          target.build_configurations.each do |config|
            level = '-Osize'
            config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = level
            puts "Set #{target.name} #{config.name} to Optimization Level #{level}"
          end
        end
      end
    end
    
    参考资料:

    我必须将“Swift编译器-代码生成”中的“优化级别”从“速度优化”设置为“发布”-“无优化[-Onone]”,以使缓存通过存档

    与SwiftyBeaver相同


    这似乎是一个与Xcode 10.2相关的问题。另外,其他pod项目似乎也可以进行优化,如Toucan或XCGLogger。

    在我的例子中,它只是出现了,可能是因为我在构建项目时再次运行了该项目。 所以我所做的不仅是清理,而且使用

    SHITF + ALT + COMMAND  + K 
    

    我还删除了派生数据,项目重新启动并运行

    请分享您正在使用的pod的名称,尝试从pod文件中删除混乱的pod并执行pod安装。**如果不起作用,请尝试:*清理并构建项目。再次将pod添加到pod文件并执行pod安装。如果可能,请使用真实设备清理并重新构建项目。**如果以上两种方法不起作用,请尝试此方法:*确保将Swift版本设置为当前版本,然后进行pod集成、pod安装、修复。以下是pod列表:Alamofire、翠鸟、SwiftyJSON、SnapKit、SwiftSwift、,LightBox@shivi_shub#pod'Alamofire'#pod'Kingfisher'#pod'SwiftyJSON'#pod'SnapKit'pod'DeviceKit'pod'PKHUD'pod'FMDB'#pod'swifter'pod'Tabman','2.2'pod'FLEX','2.0'pod'MJRefresh'pod'UITextView+占位符'pod'Bugly'#pod'LightBox'pod'FSCalendar'pod'RxSwift',“~>4.0”pod“RxCocoa”,“~>4.0”这里是我正在使用的所有pod我想你的一个pod与swift 5不兼容谢谢你的回答,但我已经尝试了所有这些步骤,对我来说都不起作用。我已经手动将pod项目的swift语言版本的所有目标设置为4.2,还有我自己的项目,但它仍然不起作用。这是可行的,但建立档案需要花费太多的时间。