Mac下, Flutter项目在Xcode 14.3运行报错汇总 您所在的位置:网站首页 xcode运行flutter Mac下, Flutter项目在Xcode 14.3运行报错汇总

Mac下, Flutter项目在Xcode 14.3运行报错汇总

2024-06-13 15:49| 来源: 网络整理| 查看: 265

开发环境

macOS Ventura 13.4 Xcode 14.3

Xcode 14.3 无法运行测试

模拟器file not found: libarclite_iphonesimulator.a 真机 file not found: libarclite_iphoneos.a

这个问题分为2方面解决:

Xcode 14.3版本移除了内置ARC相关的库,从而导致一些默认部署目标是iOS 8版本的第三方库出现报错。只要最低部署目标不低于iOS 9版本,运行项目时就不会去链接ARC相关的库,也就不会出现找不到库的报错。 在Podfile文件中添加 post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' end end end

2.有时候必须支持老版本, 不管用模拟器还是真机测试的时候, 仅仅是添加上述代码, 依然无法运行. 因此我们需要将未升级前的arc文件复制到Xcode 14.3 转至arc下载页 解压后复制到指定的目录路径:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib

Xcode 14.3 Command PhaseScriptExecution failed with a nonzero exit code

由于Pods-app-frameworks.sh编译时, 出现的问题

全局搜索 source="$(readlink "${source}")" 替换为 source="$(readlink -f "${source}")"

但是, 每当重新build的时候, 编译文件又回归原始, 因此我们可以在Podfile文件post_install do |installer|中添加

shell_script_path = "Pods/Target Support Files/#{target.name}/#{target.name}-frameworks.sh" if File::exists?(shell_script_path) shell_script_input_lines = File.readlines(shell_script_path) shell_script_output_lines = shell_script_input_lines.map { |line| line.sub("source=\"$(readlink \"${source}\")\"", "source=\"$(readlink -f \"${source}\")\"") } File.open(shell_script_path, 'w') do |f| shell_script_output_lines.each do |line| f.write line end end end

这样, 就会在build的时候, 自动替换.

post_install do |installer| 的一些变量

post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 11.0 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' end if config.name == 'Test' config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','TEST=1'] config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['$(inherited)','TEST'] config.build_settings['GCC_OPTIMIZATION_LEVEL'] = 0 config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone' end end end end IPHONEOS_DEPLOYMENT_TARGET 库最低版本设置 GCC_PREPROCESSOR_DEFINITIONS 编译环境配置 SWIFT_ACTIVE_COMPILATION_CONDITIONS 编译环境配置 GCC_OPTIMIZATION_LEVEL oc编译优化级别 SWIFT_OPTIMIZATION_LEVEL swift编译级别优化


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有