2016-05-22 7 views
0

私のアプリはリリース構成でのみフリーズします。
私は、この設定に問題を突き止め:スイフトコンパイラの最適化によりフリーズが発生する

enter image description here

をそれはスウィフトコンパイラがバグだらけであることは秘密ではありません。 私はコンパイラのクラッシュ(およびクラッシュが頻繁に起こる)を見たことがありません。

したがって、最適化レベルを「なし」に設定してApp Storeに送信することは「安全」ですか?
経験がありますか?

答えて

1

コンパイラの最適化を行わずにアプリケーションを出荷することはお勧めしません。 [1]

なし:コンパイラがコードを最適化しようとしません。開発中にロジックエラーの解決に集中し、 が高速なコンパイル時間を必要とする場合は、このオプションを としてください。実行可能ファイル の配送にはこのオプションを使用しないでください。

出所:apple.developer.com

コンパイラ最適化のバグが存在するが、[2]答えで説明したようにXcodeのは、おそらく問題の原因ではありませんがkfmfe04 @ stackoverflowのユーザーによってhereを提供する:いくつかの非常にまれなケースで

、デバッグコードは機能しますが、リリース コードは失敗します。これが起こると、ほとんどの場合、問題は私の コードにあります。リリースでの積極的な最適化が


あなたは常にコンパイル済みのアセンブリファイルを調べることによって、問題の原因を突き止めることができますことを忘れないでください...バグがなど一時の誤理解寿命によって を引き起こし明らかにすることができ構築し、コンパイラーがフードの中で何をしているのかを理解するには、いくつかのASMの知識が必要です。 Xcodeのオプション

Debug -> Debug Workflow -> Always Show Disassembly

は、その後、あなたがASMコードを確認したいブレークポイントを置きます。

+0

ただし、フリーズしていないアプリを出荷することをおすすめします。 –

+0

あなたは何が「安全」であるかについて質問していました。コンパイラの最適化を行わずにアプリケーションを送信すると、おそらく拒否されます。 –

+0

私は誰かが最適化せずにビルドを提出した経験があるかどうか尋ねています。私が問題の原因を見つけられないなら、これは私の唯一の選択肢かもしれません。問題の原因はおそらく私が使っている図書館の中にあります。 –

関連する問題