Ios 自定义字体产生崩溃

Ios 自定义字体产生崩溃,ios,fonts,Ios,Fonts,我们使用自定义表情符号为应用程序创建了自定义字体。有时应用程序会因以下stacktrace而崩溃(始终相同): 我不知道有没有可能在这种情况下得到帮助,但也许苹果公司的人可以给我一些建议,看看字体有什么问题。如果需要的话,我可以提供字体。不幸的是,这不是一个结论性的答案,但是评论太长了,所以我想可以随意否决那些做这种事情的人。但我希望你不会,因为我认为这可能是有用的信息 我深入研究了这种字体,它使用新定义的字体,就像苹果的彩色表情字体一样,为图标存储彩色图像(本例中为PNG)。我浏览了数据表,将

我们使用自定义表情符号为应用程序创建了自定义字体。有时应用程序会因以下stacktrace而崩溃(始终相同):


我不知道有没有可能在这种情况下得到帮助,但也许苹果公司的人可以给我一些建议,看看字体有什么问题。如果需要的话,我可以提供字体。

不幸的是,这不是一个结论性的答案,但是评论太长了,所以我想可以随意否决那些做这种事情的人。但我希望你不会,因为我认为这可能是有用的信息

我深入研究了这种字体,它使用新定义的字体,就像苹果的彩色表情字体一样,为图标存储彩色图像(本例中为PNG)。我浏览了数据表,将每个图标都转储到PNG文件中,一切似乎都正常(意思是:“sbix”表本身似乎符合规范,生成的PNG图像看起来没有损坏,事实上相当有趣!)

然而,与苹果颜色的表情符号字体相比,这种字体有一些特点,我觉得有点奇怪。苹果的字体有7个“罢工”(大小):20,32,40,48,64,96,160,而你的只有一个:285。我的理解是,当要求输入字体中不存在的字体大小时,系统应该向上/向下缩放(例如,您输入50,它向下缩放285到50),但鉴于苹果的最大罢工大小是160,这让我想知道字体是否有未指定的大小上限。我注意到的另一件事是PNG数据是256像素宽,我不确定这与285大小(可能是填充?)有什么关系

查看堆栈跟踪,它看起来像是从字体中获取了图像数据,但在实际渲染图像时失败了


我不确定你用什么来创建这种字体,但如果可以的话,你可以尝试缩放图像,使你的笔画大小为160,与苹果的最大笔画大小相匹配,看看会发生什么。很抱歉,我无法提供更多帮助,但我希望这至少能为您提供进一步调查的信息。

请提供字体。我不是苹果,但我可以看看。@ DjangoDoud我添加了带有自定义字体的存储库链接。我认为这是正确的答案,因为它给出了一些检查和解释如何使用SBIX表的想法。
0   libsystem_platform.dylib            0x38b8d486 _platform_memmove$VARIANT$Swift + 102
1   CoreFoundation                      0x2d8f7575 CFDataGetBytes + 237
2   ImageIO                             0x2e6e1e8f CGImageReadGetBytesAtOffset + 299
3   ImageIO                             0x2e6e1d59 CGImageReadSessionGetBytes + 29
4   ImageIO                             0x2e825973 read_fn + 23
5   ImageIO                             0x2e6e1cb1 png_read_sig + 45
6   ImageIO                             0x2e6e1935 _cg_png_read_info + 33
7   ImageIO                             0x2e6ea15b copyImageBlockSetPNG + 1123
8   ImageIO                             0x2e6e9779 ImageProviderCopyImageBlockSetCallback + 529
9   CoreGraphics                        0x2da2647d CGImageProviderCopyImageBlockSetWithOptions + 137
10  CoreGraphics                        0x2da492f7 CGImageProviderCopyImageBlockSet + 39
11  CoreGraphics                        0x2da2614f img_blocks_create + 411
12  CoreGraphics                        0x2da492bb img_blocks_extent + 63
13  CoreGraphics                        0x2da49271 img_interpolate_extent + 109
14  CoreGraphics                        0x2da1a12d img_data_lock + 4421
15  CoreGraphics                        0x2da187e9 CGSImageDataLock + 89
16  libRIP.A.dylib                      0x2dd65da7 ripc_AcquireImage + 99
17  libRIP.A.dylib                      0x2dd65131 ripc_DrawImage + 601
18  CoreGraphics                        0x2da186fb CGContextDelegateDrawImage + 51
19  CoreGraphics                        0x2da18581 CGContextDrawImage + 285
20  CoreText                            0x2e0a43db TCGImageData::DrawInRect(CGRect) const + 311
21  CoreText                            0x2e062299 CTFontDrawGlyphsWithAdvances + 705
22  CoreText                            0x2e070d55 TRun::DrawGlyphs(CGContext*, CFRange) const + 241
23  CoreText                            0x2e070c25 TLine::DrawGlyphs(CGContext*) const + 157
24  UIFoundation                        0x358860df __NSStringDrawingEngine + 10151
25  UIFoundation                        0x35883863 -[NSString(NSExtendedStringDrawing) drawWithRect:options:attributes:context:] + 151
26  UIKit                               0x301e72c9 -[UILabel _drawTextInRect:baselineCalculationOnly:] + 4225
27  UIKit                               0x3024d709 -[UILabel drawTextInRect:] + 501
28  UIKit                               0x3024d50b -[UILabel drawRect:] + 79
29  UIKit                               0x3024d4a9 -[UIView(CALayerDelegate) drawLayer:inContext:] + 373
30  QuartzCore                          0x2fe79189 -[CALayer drawInContext:] + 101