【问题标题】:App crashes after power down on iPhone 4SiPhone 4S 关机后应用程序崩溃
【发布时间】:2013-10-10 22:17:19
【问题描述】:

我在 iPhone 4S 上运行 iOS7,我的应用程序运行良好,直到我关闭我的 iPhone 并重新打开它。当我启动我的应用程序时,它只是闪烁黑屏,然后将用户带回 iPhone 应用程序图标视图。此外,我的应用程序使用 RestKit .20.3 和 ZBar 进行条码扫描,并在 Mountain Lion 上使用 Xcode 5 构建。然后我将我的 iPhone 连接回 Xcode,然后重新运行该应用程序,一切都很好了。有没有其他人遇到过这个问题。以下是我的崩溃日志中的一个 sn-p;

Date/Time:           2013-10-03 22:23:41.334 -0400
OS Version:          iOS 7.0.2 (11A501)
Report Version:      104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000000e7ffdefe
Triggered by Thread:  0

Dyld Error Message:
  Library not loaded: /Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit
  Referenced from: /var/mobile/Applications/DC06399E-15F3-46B1-B194-24CC93B763E2/    Genie.app/Genie
  Reason: image not found
  Dyld Version: 324

Binary Images:
0x2be76000 - 0x2be96fff dyld armv7  <b37cba000c7d3f8ea414f060d45ce144> /usr/lib/dyld
0x30e47000 - 0x30f4cfff CFNetwork armv7  <0ad158ad8b7a3716ad04ffde6081754c>      /System/Library/Frameworks/CFNetwork.framework/CFNetwork
0x30fbf000 - 0x311affff CoreData armv7  <9338ccb7c0f2377196e181eb10b15ef5> /System/Library/Frameworks/CoreData.framework/CoreData
0x312f3000 - 0x31416fff CoreGraphics armv7  <17a70d032a013c06b9a4d244b100e2b3> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
0x31b99000 - 0x31d83fff Foundation armv7  <75c827267c5a3c85a3b21a9459d3c312> /System/Library/Frameworks/Foundation.framework/Foundation
0x329f5000 - 0x32a58fff MobileCoreServices armv7  <5d5b5ca6dd7a305688d5a4d47363d534> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices
0x3380f000 - 0x3384ffff Security armv7  <492fcd48d4de3f29b01799ace718d3d7> /System/Library/Frameworks/Security.framework/Security

【问题讨论】:

  • 您是否在您的应用程序上运行任何单元测试?由于 SenTestingKit 测试框架,它似乎崩溃了,但不确定它为什么会运行。
  • 我也有同样的想法,但经过更多研究后,我相信这与我在项目中使用的 Zbar 版本有关。
  • SenTestingKit 在 Xcode 5 中我的 Pods Frameworks 文件夹下以红色突出显示。为什么它是红色的?
  • 这通常意味着它在构建过程中被编译。如果出现严重错误(例如 pod 未正确链接),它将在构建过程中失败。这是一个运行时错误,您似乎设置了一个异常断点来捕获它
  • 能够通过在我的目标构建阶段中的链接库下将 SenTestingKit 设为“可选”来解决我的问题。此外,使用了这篇帖子stackoverflow.com/questions/7895296/… 中的一些技巧,但是,由于您的原始评论,我能够将其拼凑起来。再次感谢您提供有用的 cmets。

标签: ios7 xcode5 cocoapods


【解决方案1】:

测试支持 pod,如

  • 光谱
  • OCMock
  • OCHamcrest
  • 期望

不属于您的主要目标(假设您不将 OCHamcrest 匹配器用于非测试目的)。它们需要专门针对您的测试目标,如下所示:

target :MyTests, :exclusive => true do
    pod 'Specta', '0.1.8'
    …etc…
end

【讨论】:

  • 这是我的 Podfile 中的内容;inhibit_all_warnings! def import_pods pod 'Specta'、'0.1.8' pod 'OCMock'、'2.1.1' pod 'OCHamcrest'、'2.0.0' pod 'Expecta'、'0.2.1' pod 'RestKit'、'~> 0.21.0' pod 'JSONKit', '~> 1.4' pod 'Reachability', '~> 3.0.0' pod 'AFNetworking' 结束平台 :ios, '7.0' import_pods
  • 有了这些信息,我已经完全重写了我的答案。
  • 感谢您的建议。我不得不绕回这个话题。这就是我将我的 pod 文件更新为... 我需要再次更新我的 pod 才能使其生效吗?禁止所有警告! def import_pods pod 'RestKit', '~> 0.21.0' pod 'JSONKit', '~> 1.4' pod 'Reachability', '~> 3.0.0' pod 'AFNetworking' 结束目标 :MyTests, :exclusive => true做 pod 'Specta', '0.1.8' pod 'OCMock', '2.1.1' pod 'OCHamcrest', '2.0.0' pod 'Expecta', '0.2.1' end platform :ios, '7.0' import_pods
  • 是的,做一个pod install
【解决方案2】:

能够通过在我的目标构建阶段中的链接库下将 SenTestingKit 设为“可选”来解决我的问题。此外,使用了此帖子 stackoverflow.com/questions/7895296/... 中的一些技巧,但是,由于您的原始评论,我能够将其拼凑起来。再次感谢您提供有用的 cmets。

【讨论】:

  • 为什么你的应用链接到 SenTestingKit?只有你的测试目标应该。
  • 我尝试将 SenTestingKit 链接到我的测试目标,甚至将其从我的项目中完全删除,并得到了上面描述的原始问题。当我在我的主应用程序的链接库列表中将 SenTestingKit 作为“可选”放回时,问题就消失了。欢迎对决议提出任何其他想法或建议。
  • 如果它真的被删除了,那么任何东西都会尝试加载它是没有意义的。您的解决方法可以避免问题,但不能解决问题。
  • 您对跟踪或追踪我的代码中引用 SenTestingKit 的内容有什么建议吗?
  • 我假设您已经为“sente”完成了“在项目中查找”。你在使用任何静态库吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多