2011-12-09 15 views
1

iOSアプリをコンパイルする場合、すべてが次のシナリオで素晴らしく見える:のiOS 4.2.1リリースモードで視覚的なバグではなく、デバッグモードまたはiOS 5

  • のiOS 5.0.1、デバッグモード
  • iOSの5.0.1、リリースモード
  • のiOS 4.2.1、デバッグモード

私はリリースモードでアーカイブを構築し、とiOS 4.2.1で実行し、視覚的な問題が多数あります。ほとんどの場合、これらは、画面上のテキストの位置(ほとんどの場合、UILabels)が正しくありません。 4.2.1リリースビルドを物理デバイスでテストしています。 iPod touchの第2世代。 Xcodeでのビルドもバージョン4.2.1(4D502)です。

プロジェクトには、多数のサードパーティライブラリが組み込まれています。

ノープラスの効果でこれらの問題を解決するには、次の方法を試みたしました:

  • は削除/すべては、コード最適化レベルを含め、デバッグビルドと一致するようにリンカフラグをリリースビルドに固有の設定を構築修正、デバッグシンボル、その他のC/C++フラグ、およびすべてのプリプロセッサマクロ。 LLVM GCC 4.2、およびApple LLVMコンパイラ3.0
  • はビルドフェーズでは普通の何のためのチェックとデバッグビルドに適用されていたすべての引数と診断を削除ルール
  • をビルドします。
  • は、利用可能なコンパイラとの間で切り替えます「スキームの管理」ウィンドウで選択します。

このようにしてビルドプロセスの他の側面がアプリケーションに干渉する可能性があるのは確かです。特にビルド設定がこの時点でほぼ同じ場合は特にそうです。何か案は?

UPDATE

私はプロジェクトがXcodeの最新のベータ版を使用して問題なくビルドされることを発見しました。 Xcode 4.2.1に含まれるClangのバージョンに固有の問題を指摘しています。アップルはXcodeのベータ版でコンパイルされたアプリケーションの提出を許可しないので、私はまだ4.2.1内の解決策を探しています。

答えて

2

アップルデベロッパフォーラムでClangに問題があると思われるフィードバックに基づいて、Xcode 4.2.1のLLVM GCC 4.2に戻してみました。

今回はコンパイラを切り替えた後、〜/ Library/Developer/Xcode/DerivedDataからすべてのファイルを削除して、中間コードが残っていないことを確認しました。

この時点から、アプリはiOS 4.2.1のリリースモードで正しく機能しました。

1

これは、あなたのアプリがarmv6アーキテクチャをサポートできないことを意味します。 armv7を除いて、すべてのライブラリがarmv6をサポートしていることを確認してください。視覚的な問題の正確な性質は、特定のライブラリを指している可能性があります。

+0

完全にデバッグモードで実行されている場合、これはアーキテクチャの問題をなぜ指摘していますか? "アーキテクチャ"と "有効なアーキテクチャ"のビルド設定には、プロジェクトとすべてのサブプロジェクトにarmv6とarmv7が含まれています。 – jverdi

+1

あなたは、iPod touch 2nd Genで4.2.1リリースのビルドをテストしていると述べました。このデバイスを(後でカムするデバイスから)区別するのは、armv6のみをサポートしていることです。 –

0

私は同じ問題に遭遇しましたが、GCCに切り替えることは望ましくありませんでした(実際問題を解決しています)。さらなる研究の後、私はこの解決策を見つけました:https://stackoverflow.com/a/8391405/1273518これは私のために完全に働いた!

+0

こんにちは。可能性のある重複を示唆している場合は、回答を投稿せず、コメントを入力するか、受け入れられた回答を引用して、何が効果的かを説明してください。 – rdurand

関連する問題