我为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框架。
我感到困惑并需要帮助理解是:
为什么设备和模拟器在没有框架的情况下运行良好,但存档版本没有?
为什么我认为我需要这个框架?我在开发过程中没有使用任何单元测试。我使用了SBJSON和ASIHTTPRequest库,但我没有在任何库代码中看到SenTestingKit的#import语句。
我是否更容易删除对SenTestingKit的需求或以某种方式在归档中正确包含它?我想解决这个问题,但我需要尽快重新提交给应用商店。
我真的想在概念层面上理解这个问题,而不是在事情发生之前就开始讨论。
答案 0 :(得分:10)
仅仅因为您没有导入SenTestingKit-Headers,并不意味着您没有链接其库。
检查构建配置 / s => 目标 => 构建阶段 =>条目SenTestingKit.framework
的链接二进制文件库。如果除了测试目标之外的任何其他内容,请将其删除。
测试目标由一个小方框表示,而不是由一个小房子表示的App-Target。