11

配布用に構築している静的Libを使用して構築されたアプリがあります。AppとLibは、Xcodeデバッガーで、またはXcodeデバッグセッションによってデバイスにロードされたときに正常に実行されます。アドホックアーカイブビルドをデバイスに配置するとすぐに、アプリは常にクラッシュします。コンソールログステートメントは、Libコードでクラッシュしていることを示していますが、クラッシュレポートはLibコードを象徴していません。

  • Xcodeシミュレータでは再現できません。
  • Guard malloc、Guard Edgesは何も表示しません(ただし、これらはシミュレーターでのみ実行されます)。
  • 漏れなし
  • Xcode4.3.2の使用
  • アプリは4.3以降を対象としています。
  • Libは3.0以降を対象としています。
  • その他のリンカーフラグ=-ObjC
  • ターゲット「リンクバイナリとライブラリ」で「オプション」として設定されたライブラリ
  • サムサポートオフ(LLVMを使用)

役に立つかもしれないコンソールで2つの例外が見られますが、これまでのところ、これに大いに役立つネット上には何も表示されていません。

Application 'x' exited abnormally with signal 12: Bad system call: 12 (mostly)
Application 'x' exited abnormally with signal 12: Bad system call: 11 (rarely)

他の場所で、再帰を使用した静的ライブラリに問題があるというコメントを見ました。しかし、Libには再帰がありませんでした。

困惑し、より多くのアイデアが必要です。

4

4 に答える 4

14

理解した!!机の上で頭を叩いて4日後。なぜそれが機能するのか正確にはわかりませんが、機能します。他の人に役立つ場合は、ここにそれを解決した設定があります。静的ライブラリプロジェクトのビルド設定の「デプロイメント」セクションでこれらを設定します。

SET "STRIP LINKED PRODUCT" (STRIP_INSTALLED_PRODUCT) = NO
SET "STRIP STYLE" = DEBUGGING SYMBOLS.

これは試行錯誤で見つかりましたが、iOS静的ライブラリを構築するためのXcodeプロジェクトをオンラインで再設定するいくつかの議論で、この設定が使用されていることに気付きました。理由についての議論はありませんが、あります。

これらのlib設定が修正される理由について誰かが考えている場合は、ここでコメントすることをお勧めします。

于 2012-04-24T16:26:38.520 に答える
1

同様の問題が発生し、プロジェクトのビルド設定を変更しようとしましたが、うまくいきませんでした。最終的に、リリースのコンパイラ最適化レベル設定を変更することで、私の問題を解決しました。

ビルド設定で、LLVMコンパイラ4.2-コード生成セクションに移動し、最適化レベルオプションを探し、リリース設定を最速、最小[-Os]からなし[-O0]に変更します。

お役に立てれば!

于 2013-02-06T12:24:09.417 に答える
0

ビルド設定がAdHoc(リリース)とデバッグで異なる可能性が非常に高くなります。すべてのビルド設定値を再確認しましたか?特にARC(自動参照カウント)の設定を見てください。

于 2012-04-24T15:28:42.530 に答える
0

Xcodeデバッガーを使用してロードすることにより、本番ビルドをデバッグします(おそらく、現在テストしているデバッグビルドとは非常に異なる最適化とコード生成設定でリリースビルドに設定されます)。

于 2012-04-24T16:25:54.497 に答える