Ios Xcode 10.2,Swift 5,命令compileSwift在使用发布方案生成程序时失败
我使用的是Xcode 10.2,Swift 5 对于调试方案,不会发生任何问题,但对于构建或归档时的发布方案,它显示命令compileSwift失败,退出代码为非零 我已尝试删除DerivedData/Clean/pod deintegrate&pod install&pod update。这些都不管用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造成的,所以要么你需要更新你正在使
您可以按照以下步骤操作
所有这些错误都是由于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后,我也遇到了同样的问题。在完成以下步骤后,它对我有效:
对于我的项目,问题与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,还有我自己的项目,但它仍然不起作用。这是可行的,但建立档案需要花费太多的时间。