我在 appstore 中有一个应用程序,它在 iOS6 之前运行良好。
它在那里崩溃 - 但只有从商店下载时。当它通过 xCode 安装时,没有崩溃。
当我在 Organizer 中阅读崩溃报告时,我得到了以下信息:
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x32b6f526 objc_retain + 6
1 XXXX 0x000cefd8 -[XXXX messageComposeViewController:didFinishWithResult:] (XXXX.m:96)
2 CoreFoundation 0x348659c0 __invoking___ + 64
3 CoreFoundation 0x347bcfe6 -[NSInvocation invoke] + 282
4 CoreFoundation 0x347bcb3e -[NSInvocation invokeWithTarget:] + 46
5 UIKit 0x35f89324 -[_UIObjectArgumentReplacingProxy forwardInvocation:] + 300
6 CoreFoundation 0x34864616 ___forwarding___ + 622
7 CoreFoundation 0x347bbf64 _CF_forwarding_prep_0 + 20
所以我假设它是文件中的第 96 行。
这是代码:
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
[self dismissModalViewControllerAnimated:NO]; //take away the SMS screen fast
NSString *sms = controller.body; //**** THIS IS LINE 96
switch (result)
{
case MessageComposeResultCancelled:
//message.text = @"Canceled";
NSLog(@"Result: canceled");
break;
case MessageComposeResultSent: {
NSLog(@"Result: sent %@",sms);
}
break;
case MessageComposeResultFailed:
//message.text = @"Failed";
NSLog(@"Result: failed");
break;
default:
//message.text = @"Not sent";
NSLog(@"Result: not sent");
break;
}
[self.delegate myVCDidFinishWithValue: val];
}
所以基本上我在这种情况下我只是取出完整的代码,因为我不再需要它了。
我的问题:
现在有没有办法像从 AppStore 加载一样测试应用程序,以便我检查其他问题?
还是我现在赌博并希望错误消失?
ps 当我通过 xCode 安装应用程序时 - 甚至使用 TestFlight 分发给测试人员它工作正常!只有从 Appstore 才会崩溃。知道他们是否对代码做任何事情吗?
非常感谢!