iPhone X上启动应用程序时崩溃?

12

我使用Swift 4和Xcode 9开发了一个应用程序,但每次启动时它都会崩溃。在控制台上没有任何错误信息。

我的研究表明,这是字体的问题。

现有应用程序在iPhone X模拟器上启动时崩溃

但我的字体已经在项目和plist中了enter image description here

有些人说这可能是故事板的问题,因为控制器必须具有安全区域边距。但就在几天前,我在iPhone X上运行了我的应用程序,尽管它不使用安全区域,但它并没有崩溃。

我的应用程序在appdelegate中崩溃,如下截图所示

enter image description here

有人知道为什么会发生这种情况吗?


你是否将字体添加到“复制包资源”中了? - Brijesh Shiroya
我已经尝试在iPhone 5、6、6+模拟器和设备上运行它,但它没有崩溃。 - TechChain
我从未在Xcode中使用过.ttc字体。Xcode支持.ttc文件吗? - Cody Potter
是的,因为它可以在其他设备上运行。 - TechChain
这个问题还存在吗?打开Xcode面板以查看日志,并确保指定所有输出。你的SIGABRT可能是由许多因素引起的,其中包括故事板或已断开的插座。日志将告诉您确切的问题所在。调试。 - Paulo
显示剩余2条评论
4个回答

8

你还需要添加字体扩展名,例如 roboto.ttf

在此输入图片描述


这肯定不是字体文件的问题。 - TechChain

3
在我看来,这不是特定于 iPhone X 模拟器的问题,您可以在其他模拟器或真实设备上运行它以确保。您可以在此线程中找到逐步向 Xcode 项目添加字体的方法。

步骤1:将字体包含在 XCode 项目中

步骤2:确保它们已包含在目标中

步骤3:双重检查您的字体是否作为资源包含在捆绑包中

步骤4:在应用程序 plist 中包括 iOS 自定义字体

步骤5:找到字体名称

步骤6:使用 UIFont 并指定字体名称,同时确保您已将电话添加到捆绑资源中:

捆绑资源: enter image description here

还有一种可能的崩溃是由于代码中字体名称不正确(如果您在程序中使用它)。请从UIFont.familyNames检查字体名称。


它在任何其他设备或模拟器上都不会崩溃。 - TechChain
我已经分享了崩溃的截图。请您查看。 - TechChain
所以,你确定崩溃没有在那之前发生吗? 有任何控制台日志吗? - Mina
我分享了截图。没有控制台日志。在所有其他设备和模拟器上都可以正常工作。 - TechChain
请提供一个更新?我该如何摆脱崩溃? - TechChain
显示剩余2条评论

3

感谢大家的回答和帮助。以下是我想提到的一些要点:

  1. 对我来说,这不是字体问题。
  2. 这对我来说不是权限问题。

我使用的库名为 "ROLLBAR" 的库导致应用程序崩溃。当我删除了这个库的代码后,我就能在 iPhone X 上运行我的应用程序了。


Dhiraj:你认为你能给我们发送一封电子邮件至support@rollbar.com,提供更多信息吗?Rollbar绝对不应该导致您的应用程序崩溃。我们希望能够帮助弄清楚出了什么问题。 - kshep
这并没有提供问题的答案。如果要批评或请求作者澄清,请在他们的帖子下留言。-【来自审查】 - Peanut
1
@Peanut请在进行审核时更加注意。OP已经回答了自己的问题,所以即使您认为这不是一个好答案,您的推理肯定是错误的。 - Dávid Pásztor
我认为这应该是一条评论,可以放在原问题或其中一个答案下面。另一方面,Rollbar 部分是其他部分没有的。 - Peanut

2

可能是权限问题。请检查您的应用程序中所需的权限并提供适当的权限字符串。

如果问题仍然存在,请重置模拟器。这将使模拟器重新运行。

请随时告诉我最新情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接