首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用发布方案构建程序时,Xcode10.2,Swift 5,命令compileSwift失败

使用发布方案构建程序时,Xcode10.2,Swift 5,命令compileSwift失败
EN

Stack Overflow用户
提问于 2019-03-26 15:23:31
回答 7查看 11.1K关注 0票数 20

我使用的是Xcode10.2,Swift 5。

对于调试方案,没有发生问题,但是对于发布方案,当我构建或存档时,它显示命令compileSwift失败,并显示非零退出代码。

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

EN

回答 7

Stack Overflow用户

发布于 2019-03-29 19:43:57

对于我的项目,问题与pod Cache有关,当ReleaseOptimization Level设置为Optimize for Speed [-O]时,它会给出错误。我再次将Compilation Mode设置为Whole Module,并在pod文件中为pod设置了优化级别:

代码语言:javascript
复制
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

参考:https://github.com/hyperoslo/Cache/issues/233#issuecomment-477749560

票数 8
EN

Stack Overflow用户

发布于 2019-03-26 23:44:40

我修复了这个问题,进入Pods项目,然后进入构建设置,并将编译模式设置为Incremental Release。然后清理和归档,应该可以编译好了。

票数 6
EN

Stack Overflow用户

发布于 2019-03-26 18:22:48

因此,当我将我的项目更新到Swift 5时也遇到了同样的问题。出于某种原因,Cocoapods (最新版本,1.6.1)将一些pods的SWIFT_VERSION设置为Swift 5,即使它们发布为Swift 4,4.1,4.2 pods。因此,我不得不添加一个安装后脚本,如下所示设置swift的校正版本

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55351736

复制
相关文章

相似问题

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