当前位置: 首页 > article >正文

Xcode控制台“po“错误:表达式解析失败

iOS开发中,使用Xcode开发时,有时候原本运行好好的项目,突然调试时,发现po命令无法正常显示变量的值,无论是清空编译目录,还是重装Xcode,都无法解决问题。当使用po命令时,显示如下:
在这里插入图片描述
通过百般折腾与搜索,终于在github上找到了解决该问题的方案:https://github.com/florentmorin/Xcode13LLDBBug
因为我的项目是通过Pod集成依赖的,所以按照解决方案中针对pod的解决方式就行。有几个点需要说明下,就在解决方案的描述上进行说明:

post_integrate do |installer|
	// 注意在项目里面找到对应文件的正确路径,如果这个文件路径有问题,pod install会报错
    xcconfig_path = installer.sandbox.target_support_files_root.to_s + '/Pods-App/Pods-App.debug.xcconfig'

    xcconfig_content = File.read xcconfig_path
    xcconfig_original_ld_flags = xcconfig_content.match(/OTHER_LDFLAGS = ([^\n]+)\n/)[1]

    xcconfig_new_ld_flags = <<~CONTENT

    // Xcode 13.3+
    //	InternalPod换成你需要debug的代码所在的库的名字,如果有多个库debug出问题,就按照这个格式,把多个库加上去。
    OTHER_LDFLAGS = #{xcconfig_original_ld_flags} -Wl,-add_ast_path,$(TARGET_BUILD_DIR)/InternalPod/InternalPod.framework/Modules/InternalPod.swiftmodule/$(NATIVE_ARCH_ACTUAL)-apple-$(SHALLOW_BUNDLE_TRIPLE).swiftmodule

	 //现在的xcode版本基本都是Xcode 15及以上了,所以下面这几行不需要了。
    // Xcode 13.2
    OTHER_LDFLAGS[sdk=iphoneos15.2] = #{xcconfig_original_ld_flags} -Wl,-add_ast_path,$(TARGET_BUILD_DIR)/InternalPod/InternalPod.framework/Modules/InternalPod.swiftmodule/$(NATIVE_ARCH_ACTUAL)-apple-ios.swiftmodule
    OTHER_LDFLAGS[sdk=iphonesimulator15.2] = #{xcconfig_original_ld_flags} -Wl,-add_ast_path,$(TARGET_BUILD_DIR)/InternalPod/InternalPod.framework/Modules/InternalPod.swiftmodule/$(NATIVE_ARCH_ACTUAL)-apple-simulator.swiftmodule

    CONTENT

    xcconfig_content.gsub! /OTHER_LDFLAGS = ([^\n]+)\n/, xcconfig_new_ld_flags

    File.open(xcconfig_path, 'w') do |f|
      f.puts xcconfig_content
    end

end

http://www.kler.cn/a/399007.html

相关文章:

  • 【C++滑动窗口】1248. 统计「优美子数组」|1623
  • Halcon HImage 与 Qt QImage 的相互转换(修订版)
  • 技术周总结 11.11~11.17 周日(Js JVM XML)
  • Go 语言切片初始化与性能优化:使用 cap 参数的重要性
  • MySql 日期周处理方式
  • 基于STM32的智能温室控制系统设计
  • 笔记|M芯片MAC (arm64) docker上使用 export / import / commit 构建amd64镜像
  • 软考之面向服务架构SOA
  • 跨平台WPF框架Avalonia教程 十三
  • redis7.x源码分析:(3) dict字典
  • 山寨一个Catch2的SECTION
  • python strip() 详解
  • Mysql-DML语句
  • 基于YOLOv8深度学习的城市管理卡车违规倾倒垃圾检测(PyQt5界面+数据集+训练代码)
  • C++11标准模板(STL)- 算法 - 对一个范围内的拥有一定未指定类型的元素排序(qsort, qsort_s)
  • Flutter中的Material Theme完全指南:从入门到实战
  • 深入解析 Vue 3 中的 `v-model` 与相关知识点
  • 架构篇(理解架构的模式1)
  • SSH 与 SSL:主要区别及用途说明
  • 【论文模型复现】深度学习、地质流体识别、交叉学科融合?什么情况,让我们来看看
  • Linux dpkg命令详解
  • AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!
  • 给阿里云OSS绑定域名并启用SSL
  • vue3 如何调用第三方npm包内部的 pinia 状态管理库方法
  • Python脚本实现批量文件重命名与清单生成
  • 前端隐藏元素的方式有哪些?HTML 和 CSS 中隐藏元素的多种方法