5

我已经为 iPhone 创建了一个基于地图的应用程序,并且最近将它提交到了商店。我在设备或模拟器上运行应用程序没有问题。但是,商店拒绝了它,因为它在发布时崩溃了。崩溃日志抱怨找不到 SenTestingKit 框架:

Date/Time:       2012-02-21 19:02:26.048 -0800
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread:  0

Dyld Error Message:
  Library not loaded: /Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit
  Referenced from: /var/mobile/Applications/*Long Application Reference Number*/MyApp.app/U of T Map
  Reason: image not found
  Dyld Version: 199.5

我已经研究过其他有这个问题的人,我确信当我继续摆弄它时,我会找到我需要成功包含 SenTestingKit 框架的框架搜索路径。

我感到困惑并需要帮助理解的是:

  1. 为什么设备和模拟器在没有框架的情况下运行良好,而存档版本却没有?

  2. 为什么它认为我需要这个框架?我在开发过程中没有使用任何单元测试。我使用了 SBJSON 和 ASIHTTPRequest 库,但在任何库代码中都没有看到 SenTestingKit 的#import 语句。

  3. 我是否更容易消除对 SenTestingKit 的需求或以某种方式将其正确包含在存档中?我想解决这个问题,但我需要尽快重新提交到应用商店。

我真的很想在概念层面上理解这个问题,而不是在事情奏效之前破解。

4

1 回答 1

10

仅仅因为您没有导入 SenTestingKit-Headers,并不意味着您没有链接它的库。

检查您的Build-Configuration /s => Target => Build Phases => Link Binary With Libraries的条目SenTestingKit.framework。如果它存在于除测试目标之外的任何内容中,请将其删除。

Test-Target 用一个小盒子在此处输入图像描述来表示,而 App-Target 用一个小房子来表示在此处输入图像描述

于 2012-04-20T09:41:39.610 回答