在xcode调试阶段,应用程序在模拟器和设备上运行良好,但是作为临时分发版本运行应用程序,它会立即崩溃。 部分崩溃报告如下......
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x50000010 Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x37859f2a objc_release + 10
1 Simple Science Tab 0x000d3036 -[ssFirstViewController didYouReg] (ssFirstViewController.m:224)
2 Simple Science Tab 0x000d2450 -[ssFirstViewController viewDidLoad] (ssFirstViewController.m:45)
报告中引用的方法如下所示....
-(void) didYouReg {
NSString *dbtn = @"stage";
BWDB *db2;
NSDictionary * row = nil;
if ((db2 = [[BWDB alloc] initWithDBFilename:home_dbfn andTableName: dbtn])) {
for (row in [db2 getQuery:@"SELECT reg_yes FROM reg"]) {
ans= row[@"reg_yes"];
}
} else {
// message(@"db failed to init");
}
[db2 closeDB];
}
我一直在阅读很多帖子并尝试在xcode中启用僵尸功能,但这似乎没有显示任何内容。我正在使用xcode 4.6.1 我很感激任何建议。 感谢。
答案 0 :(得分:0)
从提供的代码中可以看出,在调用home_dbfn
时,变量didYouReg
被释放。如果只在ad-hoc发行版中发生这种情况,那么这当然很难调试。原因可能是例如不同的时序行为和不同的设备。您可以插入assert
语句或其他代码,以确保home_dbfn
未被解除分配,然后让您的Beta测试人员再次运行该应用。