我有一个沙盒化的Cocoa应用,在导出过程中需要运行第三方命令行工具。该工具似乎将其临时文件硬编码为使用
我该如何使该工具运行?由于我无法访问其源代码,因此无法修改它以使用
是否有一些方法可以在我的沙盒内重新映射文件夹?是否有某种鲜为人知的技巧可供使用?我应该尝试修补该工具的二进制文件吗?我已经束手无策了。
/tmp
,而沙盒不允许访问此文件夹,因此导出失败。我该如何使该工具运行?由于我无法访问其源代码,因此无法修改它以使用
NSTemporaryDirectory()
,并且它似乎不遵守TMP
或TEMPDIR
环境变量。出于我不理解的原因,给自己授予com.apple.security.temporary-exception.files.absolute-path.read-write
权限也似乎不起作用。是否有一些方法可以在我的沙盒内重新映射文件夹?是否有某种鲜为人知的技巧可供使用?我应该尝试修补该工具的二进制文件吗?我已经束手无策了。
DYLD_INSERT_LIBRARIES
,如此处所述,并覆盖open/fopen
和其他相关系统调用。 - user3159253dtrace
工具来检查第三方工具需要覆盖哪些系统调用。dtruss 似乎是 DTrace MacOSX 内核设施的一个命令行前端。 - user3159253