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

使用MonkeyDev调试App Store应用时遇LLVM Profile错误求助

解决LLVM Profile Error: Failed to write file "default.profraw"权限问题

这个问题我之前在类似的调试场景里碰到过,本质是App Store应用的沙箱限制在搞事情——LLVM默认要把profile文件写到应用沙箱外的路径,而iOS9.3.2的沙箱权限管控很严格,直接就给拦住了。结合你的Xcode9-beta + iOS9.3.2环境,给你几个可行的解决办法:

方法1:指定Profile文件到应用沙箱可写目录

最稳妥的方式是让LLVM把profile文件输出到应用沙箱内明确允许写入的目录,比如Documents。

在你的Tweak主代码里,添加启动时的环境变量配置:

%ctor {
    // 获取应用的Documents目录路径
    NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    NSString *profFilePath = [docsDir stringByAppendingPathComponent:@"default.profraw"];
    // 告诉LLVM要把profile文件写到这个路径
    setenv("LLVM_PROFILE_FILE", [profFilePath UTF8String], 1);
    
    // 你的其他初始化代码...
}

重新编译安装Tweak后,LLVM就会乖乖把文件写到沙箱内的Documents目录,不会再触发权限错误。

方法2:关闭LLVM代码覆盖率生成(如果不需要的话)

要是你只是单纯调试应用,不需要收集代码覆盖率数据,直接关掉相关编译选项就行:

  • 打开MonkeyDev项目的Makefile,找到CFLAGS或OTHER_CFLAGS配置项,删掉里面的-fprofile-instr-generate和-fcoverage-mapping参数;
  • 或者在Xcode的Build Settings里,搜索Generate Test Coverage Files和Instrument Program Flow,把这两个选项都设为NO。

这样LLVM就不会尝试生成profile文件,自然也就不会出现写入权限问题。

方法3:确保MonkeyDev适配Xcode9-beta

Xcode9-beta属于早期测试版本,部分旧版MonkeyDev可能存在兼容性bug,导致沙箱权限处理异常。建议你把MonkeyDev更新到适配Xcode9的最新版本,避免工具层面的坑。

额外小提示

如果之后需要导出生成的profile文件,可以用iExplorer这类工具连接设备,找到对应应用的Documents目录就能导出default.profraw了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:14:44