我的程序使用NSTask執行一個小的c Unix子程序。它通過獲取的路徑與pathForAuxiliaryExecutable如何有時可以爲零?
NSString * path = [[NSBundle mainBundle] pathForAuxiliaryExecutable:@"appName"];
,然後交給該路徑來
[task setLaunchPath: path];
偉大工程幾乎所有的時間這樣做。但是我偶爾會收到崩潰報告,其中「路徑」爲零。不是子程序崩潰,操作系統找不到它?
這怎麼會發生?我認爲這是第一次宇宙射線,但現在發生了大約四次。所有這一個可執行文件(到目前爲止)。
僅供參考,該程序爲代碼簽名,但在Mac Store外部發布。這是用Xcode 7構建的;相關的構建階段是Copy Executables
,其中我複製並代碼簽署了五個這樣的可執行文件。當我看着構建的程序時,這五個程序都坐在MacOS上;程序中沒有任何其他地方有重複。失敗的是176K大小。
我現在有這樣的檢查,因此它不再崩潰,但我需要找出原因pathForAuxiliaryExecutable零星失敗 – mackworth
嗯,那會是投資時間和本地調試的問題。祝你好運! – Abhinav
我很欣賞它,但成千上萬的人在運行程序(每天很多),只有幾次遇到這個問題,隔離起來會很有趣! – mackworth