2013-10-15 50 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文件以及包时,它已被修复。