私はついにこの問題を解決する方法を見つけました。fonts.confファイルの場所と/etc/fontsの前にあったパスを定義する環境変数FONTCONFIG_FILEとFONTCONFIG_PATHを設定しました。したがって、fontsディレクトリをプロジェクトに追加し、パス@runtimeを定義できます。
FontConfigの機能を必要とするメソッドを呼び出す前に、環境変数をコードに設定する必要があります。AppDelegateでアプリケーションを起動した後に設定しました。
追加したコードは次のとおりです。
//Get the directory of your Application
NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
//Create a String with the location of your fonts.conf file
NSString *fontconfigFile= [bundlePath stringByAppendingString:
[NSString stringWithFormat:@"/fonts/fonts.conf"]];
//Create a String with the path of the FontConfig configuration path
NSString *fontconfigPath= [bundlePath stringByAppendingString:
[NSString stringWithFormat:@"/fonts"]];
//Set the Environment Variables
setenv("FONTCONFIG_FILE", [fontconfigFile UTF8String], 0);
setenv("FONTCONFIG_PATH", [fontconfigPath UTF8String], 0);
2番目のステップでは、fonts.confファイルを変更する必要がありました。プロジェクトのFC/fontsにfontsディレクトリを追加し、FC / cacheにcacheディレクトリを追加し、fonts.confファイルを2つの部分で調整しました。
私は最初の部分を変更しました:
<!-- Font directory list -->
<dir>/usr/share/fonts</dir>
<dir>/usr/X11R6/lib/X11/fonts</dir>
<dir>~/.fonts</dir>
に:
<!-- Font directory list -->
<dir>FC/fonts</dir>
そして2番目の部分:
<!-- Font cache directory list -->
<cachedir>/opt/local/fc1407cd/var/cache/fontconfig</cachedir>
<cachedir>~/.fontconfig</cachedir>
に:
<!-- Font cache directory list -->
<cachedir>FC/cache</cachedir>
その後、それはもうクラッシュしませんでした。