【问题标题】:Xcode error on running app with embedded framework使用嵌入式框架运行应用程序时出现 Xcode 错误
【发布时间】:2017-04-24 23:54:49
【问题描述】:

我正在尝试创建现有应用程序的框架,该框架可以作为模块添加到任何其他应用程序。在该应用程序的早期版本中,创建框架并将其添加到演示应用程序以测试它是否有效,我没有任何问题。使用较新版本的应用程序时,我遇到了问题:

2017-04-21 13:59:02.238333-0400 XXX[8320:3762763] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSArrayM insertObject:atIndex: ]: 对象不能为 nil' *** 首先抛出调用堆栈: (0x1868c2fd8 0x185324538 0x1867a4888 0x1010c3948 0x18c9f1f9c 0x18ca09a28 0x18cb8e2a0 0x18caa8c4c 0x18caa88b4 0x18caa8818 0x18c9ef158 0x189bdf274 0x189bd3de8 0x189bd3ca8 0x189b4f360 0x189b763c0 0x189b76e8c 0x1868709a0 0x18686e628 0x18686ea74 0x18679ed94 0x188208074 0x18ca57130 0x100084860 0x1857ad59c) libc++abi.dylib:以 NSException 类型的未捕获异常终止

关于如何追溯嵌入式框架内的错误有什么建议吗? 它只发生在应用程序的主视图控制器上,不会发生在从这些主视图控制器访问的任何二级视图控制器上。

我浏览了旧版本和新版本的嵌入式框架的代码,我没有发现任何主要的不同,逐行检查了整个代码。

有什么建议吗?

【问题讨论】:

  • 查看崩溃日志的堆栈跟踪。
  • 从异常看来,您正在将对象插入到未初始化的数组中。或者将一个 nil 对象插入到数组中。需要知道是什么事件导致异常发生以进一步帮助
  • 堆栈跟踪没有显示任何东西,除了 main 中的崩溃。
  • 我检查了 insertObject,但我没有在所有代码中的任何地方使用它。我对故障排除不是很熟悉,但我只能说错误来自我在应用程序中使用的嵌入式框架。
  • 在您的演示应用程序中将 .framework 替换为框架项目(通过拖放)。首先构建框架目标,然后构建演示应用目标。现在应该可以调试到框架中了。注意:您必须在演示应用程序中设置断点并通过步进调试到框架中。如果我没记错的话,框架代码中的断点只有在你已经调试到项目之后才有效。

标签: ios xcode frameworks


【解决方案1】:

感谢 codealchimist 提供的解决方案,我弄清楚我缺少什么以便能够调试它。他提供的解决方案解决了能够调试应用程序和框架的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    相关资源
    最近更新 更多