3

友人と私はMacAppStore用のアプリを開発しています。私たちはそれをアプリストアに提出しましたが、Appleは私たちがこれまで経験したことのないバグを理由にそれを拒否しました。エラーを再現するのに苦労しましたが、かなりの時間をデバッグした後、バグはアーカイブされた製品にのみ表示されることがわかりました。

バグの症状は、アプリをランダムな時間使用した後、アプリの一部のボタンが突然応答しなくなることです。この問題が発生するのはアーカイブされたアプリのみであるため、問題の原因を突き止めるのは困難です。

アプリをアーカイブすると、実際に何が起こっているのでしょうか。Xcodeで直接実行されるビルドとどのように違いますか?同様の問題を経験した人はいますか?

4

1 に答える 1

3

あなたが見つけたのはハイゼンバグです。

デバッグ用にコードをビルドする場合、コンパイラは最終的なビルド プロダクトを最適化しません。アプリケーションをアーカイブすると、コンパイラは最終製品を最適化して、実行速度を上げ、メモリ使用量を減らします。バグは、コードを最適化した場合にのみ表示されます。

アプリケーションのデバッグ バージョンには存在しない、デッドロックまたはその他の競合状態が発生している可能性があります。ターゲットのリリース構成に対してビルドして実行し、それが発生している場所を特定できるかどうかを確認できます。

ただし、コードを見ないと、SO はあまり役に立ちません。幸運を!

于 2012-02-18T04:50:56.693 に答える