You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo React Native iOS Swift原生模块调试信息无法输出求助

Expo React Native Swift原生模块调试日志输出问题

问题描述

开发Expo React Native项目(SDK 50),iOS物理设备(iOS 16.0)上的Swift原生模块使用print()或OSLog输出调试信息,控制台和Apple Console均无法看到日志。

解决方案

1. 确认Xcode控制台的设备与进程选择

  • 打开Xcode,在顶部工具栏的设备选择器中,选中你的物理测试设备
  • 在进程列表里,找到你当前运行的Expo项目对应的App进程(不是Expo Go,是你自己的项目进程)
  • 触发Swift模块的日志输出后,查看Xcode控制台

2. 调整OSLog的配置

  • 给Logger指定模块标识符,方便日志过滤:
import OSLog
private let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "NativeModule")
logger.info("Logging test from Swift module")
  • 在Apple Console中,搜索你设置的category(比如"NativeModule")或App Bundle ID,即可定位到日志

3. 正确启动项目以转发日志

  • 使用npx expo run:ios命令启动项目,而非npx expo start(后者默认用Expo Go,原生模块日志不会转发到终端)
  • 启动后,终端会同时输出JS和原生日志,Swift的print()内容会显示在这里

4. 验证代码执行路径

  • 在日志输出代码前添加断言,确认Swift模块代码确实被执行:
assert(true, "Module code executed")
print("Debug message after assertion")

5. 检查iOS设备日志权限

  • 在物理设备的「设置」-「隐私与安全性」-「分析与改进」中,确保「共享iPhone分析」选项已开启(部分场景下该选项关闭会影响日志收集)

内容的提问来源于stack exchange,提问作者Tezzus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:47:06