【发布时间】:2012-04-10 11:38:56
【问题描述】:
所以我有一个很棒的应用程序,它可以在模拟器上完美运行,或者在设备插入时运行。
然后,如果我创建 IPA 并将其部署在我的设备上,或者使用 TestFlight,甚至提交到 App Store。当我尝试启动该应用程序时,该应用程序大部分时间都会崩溃。
即使没有符号化的崩溃报告也不会给我任何信息。
我使用了 TestFlight,以便它可以帮助我找出应用程序崩溃的位置,但应用程序在 TestFlight 启动之前崩溃。
这是我的一些代码(main.m):
#import <UIKit/UIKit.h>
#import "version3contentAppDelegate.h"
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([version3contentAppDelegate class]));
}
}
version3contentAppDelegate.m 的开头:
#import "TestFlight.h"
#import "version3contentAppDelegate.h"
#import "RootTableViewController.h"
#import "AppsFeedTableViewController.h"
#import "AboutShmoopModalViewController.h"
@implementation version3contentAppDelegate
@synthesize window, shmoopCoreData, tabBarController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"applicationDidFinishLaunching");
[TestFlight takeOff:@"3f3618576288d96d598646d060a4f26a_NzUyMjEyMDEyLTAzLTI2IDE3OjIxOjQzLjgyNzQwNg"];
...
如您所见,TestFlight 代码位于 didFinishLaunching 的开头。这意味着,如果它在那之后崩溃,我将在 TestFlight 上获得崩溃报告,而我没有。
有人知道为什么会这样吗? 该项目最初是在旧的 xcode 上为旧 iphone 开发的,目前它是一个 xcode 3 项目。但我在 XCode 4.3 和 iOS 5.1 设备上对其进行编程。
【问题讨论】:
-
在所有异常上设置断点怎么样?
-
但我不能断点,因为它只有在 Adhoc 上或在 Apple Store 上提交后才会崩溃? (我可能错了)
-
这毫无意义...部署不会改变代码。你以前是怎么崩溃的(我想我的意思是:你怎么知道它崩溃了)?你能复制它吗?
-
所以我在应用程序上打补丁,在设备上调试,然后更新代码。我想在某些时候我做错了什么。将其修补到 App Store,并继续我的更新。我没有从 App Store 测试每个版本,但用户开始说它崩溃了。现在我没有旧代码。我可以随心所欲地复制崩溃,它在闪屏加载时崩溃。我短暂地看到了闪屏,然后它就崩溃了。
-
这根本不具体!发布整个
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions,否则任何人都无能为力。档案不会突然中断。
标签: iphone objective-c ios xcode