ios - Swift iOS:dyld:dyld_sim 无法在受限进程中加载
问题描述
我正在为运行 iOS 12 或更高版本的越狱设备制作 iOS 应用程序。
我需要我的应用程序运行命令行命令,为此我使用自定义的 Objective-C 头文件创建对象 NSTask 及其所需的一切,然后使用桥接头将其公开给 Swift。
因此,要运行任务,我使用以下函数:
func task(launchPath: String, arguments: String...) -> NSString {
let task = NSTask.init()
task?.setLaunchPath(launchPath)
task?.arguments = arguments
// Create a Pipe and make the task
// put all the output there
let pipe = Pipe()
task?.standardOutput = pipe
// Launch the task
task?.launch()
task?.waitUntilExit()
// Get the data
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue)
return output!
}
并这样称呼它:
installPackage = task(launchPath: "/usr/bin/dpkg", arguments: "-i", packageID, "control")
我注意到这没有做任何事情,所以我想检查该命令真正在做什么。
为此,我打印了installPackage
. 这应该打印了 dpkg 命令输出,但它打印了以下内容:
print(installPackage)
~> dyld: dyld_sim cannot be loaded in a restricted process
我已经读过要解决此问题,您需要关闭Thread Sanitizer或将Build Configuration更改为Release,但它一直显示相同的消息。
我能做些什么来解决这个问题?
解决方案
推荐阅读
- distributed-computing - 在 PAXOS 或 RAFT 中重新上线的副本如何赶上?
- reactjs - 如何向 Material-UI TablePagination 添加元素?
- reactjs - 样式化组件 - 将对象作为来自抛光的颜色函数的第二个参数传递
- javascript - Primefaces 如何从 JQUERY 或 JS 或 PF 方法中设置 selectOneRadio
- docker - AzureFunctions AppInsights 日志记录在 Azure AKS 中不起作用
- swift - 将 3d 模型放置在 SCNNode 中而不点击
- excel - 使用工作表格式向列添加 % 符号
- bash - Vagrant bash脚本没有响应
- objective-c - 与 NSTimer 一起使用时,cellForRowAtIndexPath 无法正确呈现单元格
- laravel-5.5 - Laravel 5.5 中的时间验证