2017-09-06 100 views
0

使用Process()symbolicating崩潰我有,看起來像下面代碼:獲得運行時錯誤在迅速

let process = Process() 
    process.launchPath = "/bin/sh" 
    process.arguments = ["symbolicatecrash", "crash.crash"] 

    let pipe = Pipe() 
    process.standardOutput = pipe 
    process.launch() 

    let data = pipe.fileHandleForReading.readDataToEndOfFile() 
    let output: String = String.init(data: data, encoding: .utf8)! 

但是,我得到這個錯誤

symbolicatecrash: line 14: use: command not found 
symbolicatecrash: line 15: use: command not found 
symbolicatecrash: line 16: use: command not found 
symbolicatecrash: line 17: syntax error near unexpected token `(' 
symbolicatecrash: line 17: `use Cwd qw(realpath);' 

兩個,symbolicate腳本crash.crash存在於Swift執行當前進程的目錄中。所以,他們很容易到達Process()

這個錯誤是什麼意思,什麼可以解決這個問題?

+0

看起來好像'symbolicatecrash'是擁有一批在它錯誤的shell腳本。你能在這裏展示它的內容嗎? –

+0

它是一個蘋果腳本。如果你已經有了mac,你可以在這裏找到它:'/ Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symboliccracked' – prabodhprakash

+0

它是由「Apple」編寫的腳本。不是「AppleScript」 – prabodhprakash

回答

1

分析您所指的腳本顯示它是一個Perl腳本。但是,您告訴Process運行一個shell腳本(process.launchPath = "/bin/sh"),這就是爲什麼這不起作用。

它應該工作到launchPath設置爲腳本的這樣的路徑:

process.launchPath = "/path/to/symbolicatecrash" 
process.arguments = ["crash.crash"] 

是不必要的指定解釋器使用(在你的榜樣/bin/bash,將是我的/usr/bin/perl)如果腳本可以直接從命令行調用。在symbolicatecrash的情況下,腳本直接執行,因爲它正確地指定了腳本的「認領」行解釋:

#!/usr/bin/perl -w 
+0

它是由「Apple」編寫的腳本。 – prabodhprakash