0

私はかなり「神秘的な」問題に直面しています。私のアプリは、iOS 4.x を実行しているデバイスではすべてのビルド構成で正常に動作しますが、iOS 3.x を実行している iPhone では起​​動直後にクラッシュしますが、リリース構成でコンパイルした場合のみです。ただし、デバッグ構成を使用すると、問題なく実行されます。

これの考えられる原因を調査するのに多くの時間を費やしましたが、今のところ幸運ではありません. LLVM GCC コンパイラを使用して、ベース SDK iOS 4.1 で XCode 3.2.4 を使用しています。クラッシュ ログによると、アプリケーションは applicationDidFinishLaunching: method implementation のコードの最初の行でクラッシュし、単純な [[SomeObject alloc] init] しか呼び出されず、EXC_BAD_ACCES が報告され、alloc メソッドがインスタンスを正しく割り当てなかったことを示しています (?) .

GCC 4.2 コンパイラに切り替えると、クラッシュ ログは完全に別のクラッシュの発生場所を報告しますが、これはまったく同じであると思います...

コンパイラまたはリンカーのフラグがいくつか欠けていると思いますが、どれを見つけることができません。これまでに見つけたすべての提案された解決策を試しましたが、何も役に立ちません。

助けてくれてありがとう。

4

1 に答える 1

1

リリースビルドにLLVMコンパイラを使用していますか?私の経験では、LLVMコンパイラはAPI呼び出しを弱くリンクします。これにより、4.x API呼び出しがある場合でも、それらの呼び出しが実行されない限り、3.xアプリを実行できます。ダイナミックローダーが4.xAPIを解決しようとすると、GCCでコンパイルされた3.xアプリが起動時にクラッシュします。

于 2010-12-09T21:03:44.783 に答える