仲間のコーダー、
私はすでにAppStoreにあるバージョン1.0のiPhoneアプリを持っているので、そのバージョンではすべてが完璧に機能します。
現在、バージョン2.0のアップデートに取り組んでいます。このバージョンを完全に新しいアプリとしてiPhoneにインストールすると、完全に機能します。アプリの起動や実行時のその他のエラーに問題はありません。
しかし、今問題があります。バージョン1.0を既にインストールしていて、バージョン2.0でアプリを更新しようとすると(Xcodeでビルドしてデバッグモードで実行)、アプリは起動するとすぐにクラッシュします。どちらのバージョンも独立したアプリとして構築されている場合は非常にうまく機能するため、非常に混乱します。もう1つの興味深い側面は、アップデートがiOSシミュレーターで機能するが、デバイスでは機能しないことです。
デバイスで更新を実行すると、次のいずれかのエラーが発生します(エラーは常に同じではありません)。
- プロセスxxxxのタスクを取得できませんでした
- アプリの起動を待ってタイムアウトしました
開発環境への追加情報:OS X MountainLion10.8でXcode4.4を使用しています。私のiPhoneのオペレーティングシステムはiOS5.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;
}