0

iPhone5 で動作するようにアプリを更新しようとしています。これには、armv7 および armv7s アーキテクチャ用にコンパイルされていることを確認する必要があります。プロジェクトのビルド設定を更新し、静的にリンクされたすべてのライブラリもこれらの設定で再コンパイルしました。したがって、コンパイルとリンクが正常に行われるようになりました。

ただし、iOS6 を実行しているデバイス (iPad) で実行すると (もちろん armv7 アーキテクチャのみをサポートします)、次の出力ですぐにクラッシュします。

dyld: vm_protect(0x00001000, 0x003BB000, false, 0x07) failed, result=2 for segment __TEXT in /var/mobile/Applications/....[name/location of my app]....

トレースウィンドウでもこれを取得します:

dyld`dyld_fatal_error:
0x2fe400c4:  trap   
0x2fe400c8:  nop  

バイナリの armv7s 部分をテストするための iPhone5 がありません。もちろん、実際にリリースする前に実際のデバイスでテストしますが、それまでの間、iOS6 を実行している現在の armv7 iPad/iPhone を使用して作業を継続できるようにしたいと考えています。最近リリースされた Xcode 4.5 を使用しています。

それで、誰かが何が起こっているのか、または同じ問題を抱えている可能性がありますか?

4

2 に答える 2

0

ライブラリを静的に再コンパイルしたときに、誤って動的リンクを無効にした可能性があります (その結果、コンパイル時に -static フラグが clang に渡されます)。

LLVM コンパイラの言語設定で [共有ライブラリとのリンクを有効にする] を [はい] (デフォルト) に切り替えて修正します。(これにより、プロジェクト ファイルから GCC_LINK_WITH_DYNAMIC_LIBRARIES = NO が削除されます)。

于 2013-07-24T05:13:42.393 に答える
0

私が含めていたライブラリの1つを再ダウンロードしてから再コンパイルすると、問題が修正されました。armv7s アーキテクチャを追加するときにライブラリのビルド構成で何かを誤って変更したか、ライブラリのプロジェクトの一部が何らかの形で破損したようです。(影響を受けるライブラリは、FTGLES2 Xcode プロジェクトに含まれている Freetype2 ライブラリでした。)

于 2012-09-21T02:56:35.440 に答える