46

iOSアプリで作業していますが、アプリがリリースモードでビルドされている場合にのみ再現できるバグに気づきました。作成したリリースモードアプリを実行する唯一の方法は、アーカイブを作成し、デバッグプロファイルを使用して署名し、デバイスにアドホック展開することです。ただし、このメソッドを使用すると、デバッガーをアタッチできません。また、リリースビルドがコードでオプティマイザーを実行した後、デバッガーが正常に機能するかどうかもわかりません。

アプリがリリースモードでビルドされている場合にのみ再現可能な問題をデバッグするための良い方法を知っている人はいますか?

4

5 に答える 5

47

通常、デバッグビルドでは-O0デバッグを容易にするために最適化が無効()になっていますが、リリースビルドでは最適化が有効(-O3または-Os)になっているため、コードの実行がはるかに高速になりますが、デバッグが難しくなります(不可能ではありません)。デバッグ構成でXcodeのビルド設定に移動し、一時的に最適化レベルを上げることができます。これにより、他のすべてのデバッグ機能(シンボルなど)が保持されますが、リリースモードのバグもフラッシュされます。-O0(完了したら、デバッグ構成で最適化レベルをリセットすることを忘れないでください!)

于 2013-01-23T05:58:39.697 に答える
15
  1. Xcodeアプリケーションメニューの[プロジェクト]コマンドに移動し、[スキームの編集]を選択します(ショートカット:⌘<)
  2. 左ペインで「プロジェクト名の実行」を選択します
  3. 右側のペインの[情報]タブで、[ビルド構成]を[リリース]に変更します
于 2013-01-22T15:03:30.167 に答える
9

デバッグをオンにしている間は、リリースモードでアプリを実行することはできません。それは意図されていません。

アプリをリリースモードで実行する場合、アプリの動作を監視する別の方法を見つける必要があります(アラートの使用など)。

<code>Debugexecutable</code>のチェックを外してアプリをリリースモードで実行します

さらに、デバイスの配布プロファイルを信頼する必要があります。Xcodeは、最初の実行時にアラートメッセージで通知およびガイドします。

于 2016-10-14T07:32:25.377 に答える
1

iOSアプリケーションをリリースモードでデバッグするには、設定を変更します。[ビルド設定]->[展開]->[展開後処理]->[リリース]->値を「NO」に設定します。

'Deployment Post Processing:Release'の値を'No'に設定します

于 2019-01-16T06:41:34.483 に答える
0

これを実現するには、自動署名を簡単にオンにする必要がありました。iOS配布証明書(iOS開発証明書が必要)を使用してデバイス上で直接ビルドすることはできません。また、iOS開発証明書(iOS配布証明書が必要)を使用してAppStoreにリリースすることはできません。

私のデバッグモードは、iOS開発証明書を使用してデバイス上に直接ビルドするように構成されました。私のリリースモードは、iOS配布証明書を使用して、アプリをすべてのデバイスにインストールできるように構成されていました。デバイスでリリースモードで実行するために、テストのために簡単に自動コード署名に切り替えました。テストが終了したら、gitを使用して以前のXcode構成に戻しました。

最もエレガントな方法ではありませんが、それで仕事は終わりました。

于 2020-04-04T21:47:28.867 に答える