Swift iOS:dyld:dyld_sim无法在受限进程中加载​​

时间:2019-06-17 14:08:48

标签: ios swift ios-simulator nstask dyld

我正在为运行iOS 12或更高版本的越狱设备制作一个iOS应用。

我需要我的应用程序运行命令行命令,因此要实现此目的,我需要使用custom Objective-C header file来创建对象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 ,但它会保留显示相同的消息。

该如何解决?

0 个答案:

没有答案