This is an older question, but here is a way to do it anyway if someone else meets this.
+ (void)loadFontAtPath:(NSString*)path{ NSData *data = [[NSFileManager defaultManager] contentsAtPath:path]; if(data == nil){ NSLog(@"Failed to load font. Data at path is null"); return; } CFErrorRef error; CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)data); CGFontRef font = CGFontCreateWithDataProvider(provider); if(!CTFontManagerRegisterGraphicsFont(font, &error)){ CFStringRef errorDescription = CFErrorCopyDescription(error); NSLog(@"Failed to load font: %@", errorDescription); CFRelease(errorDescription); } CFRelease(font); CFRelease(provider); }
This will load the font at the path specified at runtime, then you can use it the same way as usual without adding it to the plist.
source share