2013-10-15 82 views
0

我正在使用Mac應用程序,該應用程序在我的作爲開發計算機的計算機上運行良好。 該項目有相當多的dylib文件,這我不得不使用Mac OS X存檔(.app)在測試Mac機器時墜毀:EXC_BAD_INSTRUCTION

install_name_tool -change

我在上面的命令中使用@executable_path解決依賴關係。這樣做後,該程序在我的機器上工作得很好,當我移動.app文件來測試失敗的環境..

墜毀主題:0調度隊列:com.apple.main線程

異常類型:EXC_BAD_INSTRUCTION(SIGILL) 異常代碼:0x0000000000000001,0x0000000000000000

線程0墜毀::調度隊列:com.apple.main線程
0 libfreetype.6.dylib 0x001f736b FT_CMap_New + 105

1 libfreet ype.6.dylib 0x0022d1a4 tt_face_build_cmaps + 516
2 libfreetype.6.dylib 0x00229f0a sfnt_load_face + 1424
3 libfreetype.6.dylib 0x00200cbe tt_face_init + 231
4 libfreetype.6.dylib 0x001f5fb4 open_face + 218
5 libfreetype.6.dylib 0x001f5bf1 FT_Open_Face + 528
6 libfreetype.6.dylib 0x001f59db FT_New_Face + 68

查看粗體字符可以發現問題出在freetype dylib中。但爲什麼會出現問題?我已將.dylib文件包含在my_app.app/Contents/Frameworks/目錄中。

這就是爲什麼問題引起的原因?

回答

1

由於提供給freetype的字體位置不正確,因此出現此錯誤。

客戶端在他的機器上沒有提供的字體文件(ttf)。

當我提供ttf文件以及包時,它已被修復。