3

UIKitや他のシステムライブラリがシンボリック化されないこのようなクラッシュログを見たことがありますか?アプリの1つで起動時にクラッシュする問題が発生していますが、問題が発生しているのは少数のユーザー(5人など)のみです。(私の理解では、default.pngが表示されてからクラッシュします)、それを再現することができませんでした。コードに気付かないことは何もないようで、静的アナライザーを実行しましたが、問題はありません。しかし、UIKitや他のライブラリが象徴化されていないという事実は私には奇妙です。libSystem.B.dylib 0000000000 0 + 0を調べましたが、これと静的ライブラリとの接続についてGoogleでいくつかのヒットがあります。このプロジェクトは静的ライブラリを使用しますが、静的ライブラリに問題があった場合、カップルだけでなくどのデバイスでも機能しないと思います。

Exception Type:  EXC_BAD_ACCESS (SIGBUS)  
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000  
Crashed Thread:  0  

Thread 0 Crashed:  
0  libSystem.B.dylib              0000000000 0 + 0  
1  UIKit                          0x0068a0dc 0x66c000 + 123100  
2  MyApp                         0x000307b2 -[RootViewController defaultImage]       (RootViewController.m:39)  
3  MyApp                         0x00030720 -[RootViewController loadView] (RootViewController.m:49)  
4  MyApp                         0x00030182 -[RootViewController loadView] (RootViewController.m:43)  
5  MyApp                         0x00031894 -[AppDelegate applicationDidFinishLaunching:] (AppDelegate.m:52)  
6  UIKit                          0x31ada4b8 0x31acc000 + 58552  
7  UIKit                          0x31ad09e2 0x31acc000 + 18914  
8  UIKit                          0x31b29fd8 0x31acc000 + 384984  
9  UIKit                          0x31b298fc 0x31acc000 + 383228  
10 UIKit                          0x31b29332 0x31acc000 + 381746  
11 GraphicsServices               0x3026c046 0x30267000 + 20550  

これは全体としてdefaultImageメソッドです

-(UIImage*)defaultImage
{
  return [UIImage imageNamed: @"Default.png"];
}

ユーザーの1人からipaを取得しましたが、Default.pngが破損していないようです。

4

2 に答える 2

2

Xcodeには、すべてのハードウェア上のすべてのバージョンのiOSのすべてが含まれているわけではありません。代わりに、デバイスから情報を取得します。

これらのユーザーが使用しているOSとデバイス(おそらく同じ)を把握し、Macに接続します。Xcodeは、必要なものを丸呑みします。

于 2011-04-01T19:11:38.217 に答える
0

アプリのクラッシュログでもこれが発生することがあることを確認できます。これまでのところ、私はそれらをさらに象徴することができませんでした。それらのいくつかが完全に象徴的であり、他のものがそうでない理由はないようです。

App Storeに提出したバージョンのアーカイブとビルドを行いましたか?何らかの理由で、XCodeは、アーカイブされたアプリビルドからのログをシンボリック化するのにはるかに優れているように思われるので、常にそうするようにしています。


クラッシュ自体に関して、バックグラウンドスレッドからスプラッシュ画面を表示している可能性はありますか?すべてのデバイスでクラッシュが発生するわけではありませんが、一部のデバイスではクラッシュが発生します(ここでも、特定のデバイスがクラッシュし、私が見つけた他のデバイスはクラッシュしない理由はないようです)。シミュレーターやデバイスがクラッシュしなかったため、アプリでこの影響を受けましたが、ユーザーのデバイスのごく一部がクラッシュしました。私はバックグラウンドスレッドを使用して初期化を行っていましたが、後で読んだのは、メインスレッドからのみUIKitを使用できるということです。私はそれを変更し、もはや問題はありませんでした。

于 2010-10-25T19:33:47.563 に答える