Fullstory iOS SDK模拟器无法捕获屏幕,如何启用屏幕捕获?
解决Fullstory iOS SDK在M2 Mac模拟器无法捕获屏幕的问题
针对你遇到的Fullstory iOS SDK(SPM 1.42.0)在M2 Mac(OS 13.6)模拟器无法捕获屏幕、日志提示[FullStory] Info: got UIApplicationDidBecomeActiveNotification but capture is inactive; not starting session的问题,可按以下步骤排查解决:
1. 验证FullStory初始化配置正确性
确保SDK初始化代码正确且时机合适:
- 在App启动初期(如UIKit的
application:didFinishLaunchingWithOptions:或SwiftUI的App结构体初始化方法)调用启动接口,并明确开启捕获:
import FullStory // UIKit示例 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 替换为你的FullStory组织ID FS.shared().start(with: FSConfig(orgId: "YOUR_FULLSTORY_ORG_ID")) // 强制开启捕获 FS.setCaptureEnabled(true) return true } // SwiftUI示例 @main struct YourApp: App { init() { FS.shared().start(with: FSConfig(orgId: "YOUR_FULLSTORY_ORG_ID")) FS.setCaptureEnabled(true) } var body: some Scene { WindowGroup { ContentView() } } }
- 检查是否有后续代码意外调用
FS.setCaptureEnabled(false)禁用了捕获。
2. 调整项目架构适配Rosetta模拟器
由于你使用Rosetta运行x86架构模拟器,需确保项目架构设置匹配:
- 打开Xcode项目,进入Target的Build Settings
- 找到
Architectures选项,设置为Standard Architectures (arm64, x86_64) - 检查
Excluded Architectures,确保Debug模式下未排除x86_64(针对模拟器配置)
3. 主动触发捕获会话
针对日志提示的"捕获未激活"问题,可在App激活时主动恢复捕获:
// 在App初始化或合适位置添加通知监听 NotificationCenter.default.addObserver(forName: UIApplication.didBecomeActiveNotification, object: nil, queue: .main) { _ in guard !FS.isCaptureEnabled() else { return } FS.setCaptureEnabled(true) // 手动重启FullStory会话 FS.shared().restart() }
4. 重置模拟器与清理缓存
模拟器缓存可能导致SDK加载异常,执行以下操作:
- 打开模拟器,选择
Device > Erase All Content and Settings重置模拟器 - 在Xcode中执行
Product > Clean Build Folder清理项目缓存 - 重新编译运行App
5. 升级FullStory SDK版本
尝试将SDK升级至最新版本,新版本可能修复了M2 Mac模拟器的兼容性问题。
内容的提问来源于stack exchange,提问作者RohitK
相关产品推荐
相关产品推荐

