各位码农,
我的 iPhone 应用程序 1.0 版已经在 App Store 中,所以在那个版本中一切正常。
目前我正在处理更新,版本 2.0。好吧,如果我将此版本作为一个全新的应用程序安装在 iPhone 上,它会运行得非常好。应用程序启动时没有问题或运行时出现任何其他错误。
但现在的问题是:如果我已经安装了 1.0 版,然后尝试使用 2.0 版更新应用程序(在 Xcode 中以调试模式构建和运行),应用程序会在启动时立即崩溃。这非常令人困惑,因为如果将它们构建为独立的应用程序,这两个版本都可以很好地工作。另一个有趣的方面是该更新适用于 iOS 模拟器,但不适用于设备。
在设备上运行更新,我收到以下错误之一(错误并不总是相同):
- 无法获取进程 xxxx 的任务
- 等待应用程序启动超时
我的开发环境的附加信息:我在 OS X Mountain Lion 10.8 上使用 Xcode 4.4。我的 iPhone 上的操作系统是 iOS 5.1.1。
我发现崩溃是在调用 application:didFinishLaunchingWithOptions: 之前引起的,所以我的实际源代码不会导致问题。
对于那些仍然对该didFinishLaunchingWithOptions
方法感兴趣的人:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Navigation bar
UIImage *navigationBackground = [[UIImage imageNamed:@"EMSNavigationBarBackground.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 20, 0, 20)];
[[UINavigationBar appearance] setBackgroundImage:navigationBackground forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-3.f forBarMetrics:UIBarMetricsDefault];
//Normal button
UIImage *button30 = [[UIImage imageNamed:@"EMSBarButtonItemNormal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
UIImage *buttonHighlighted30 = [[UIImage imageNamed:@"EMSBarButtonItemPressed"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UIBarButtonItem appearance] setBackgroundImage:button30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundImage:buttonHighlighted30 forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackgroundVerticalPositionAdjustment:-3.f forBarMetrics:UIBarMetricsDefault];
//Back button
UIImage *buttonBack30 = [[UIImage imageNamed:@"EMSBarButtonItemBackNormal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)];
UIImage *buttonBackHighlighted30 = [[UIImage imageNamed:@"EMSBarButtonItemBackPressed"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack30 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBackHighlighted30 forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundVerticalPositionAdjustment:-3.f forBarMetrics:UIBarMetricsDefault];
return YES;
}