gpt4 book ai didi

iphone - 在 AppDelegate 完成加载之前,我的 iPhone 应用程序在加载时崩溃

转载 作者:可可西里 更新时间:2023-11-01 05:10:15 25 4
gpt4 key购买 nike

所以我得到了我很棒的应用程序,它可以在模拟器上或插入设备时完美运行。

然后,如果我创建一个 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 在设备上对其进行编程。

最佳答案

如果它在您的设备上崩溃,那么您将有一个崩溃日志可供查看。

其次,根据我的经验,应用程序崩溃的主要原因:didFinishLaunchingWithOptions: 是由于加载资源加载时间过长。

iOS 有一个看门狗计时器,它会监视应用程序并在它们执行某些操作的时间过长时将其杀死。加载、卸载等。通常是几秒钟,如果它们花费的时间比这更长,则假设它们已挂起,计时器会杀死它们。

由于模拟器中的调试原因,此计时器被禁用,这就是为什么这些崩溃仅在实际设备测试期间出现的原因。

一旦您从本地设备获得崩溃日志,请检查给定的代码,如果它是 0x8badf00d,则它是看门狗计时器杀死您的应用程序。请注意错误代码 8-bad-food :-)

然后您需要查看您的代码并尽可能多地移动到后台线程,以便 didFinishLaunchingWithOptions: 方法可以尽快完成。

关于iphone - 在 AppDelegate 完成加载之前,我的 iPhone 应用程序在加载时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9881084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com