私はこれに完全に困惑しており、Xcode の経験が豊富な SO ユーザーが、アプリケーションのビルドで何が起こっているのか、または問題をデバッグする方法について教えてくれることを願っています。
USB ビデオ ソースとのインターフェイスに (現在は廃止された) QTKit ライブラリを使用する古いアプリケーションがあります。macOS 10.12 ベータ版で正常にビルドされるかどうかを確認したかったのです。
ベータ版をダウンロードしてインストールし、VMWare 仮想マシン内に Xcode 7.3.1 をインストールしました。バグが解決された後 (詳細は後述)、アプリケーションは正常にビルドおよび実行されました。
次に、macOS 10.12 を独自のパーティションにインストールし、同じバージョンの Xcode をインストールしました。VM から Xcode プロジェクト ファイルをコピーしました。今回、アプリケーションをビルドすると、Web カメラの画像があるはずの場所に空白の画面が表示されます。
いくつかの追加の事実:
- VM 内に構築されたアプリをパーティション OS インストールに移動すると、正常に機能し続けます。
- アプリケーションが VM 内でビルドされると、コンソール ログに次のように記録されます。Core Image は現在、ソフトウェア OpenGL レンダラーを使用しています。これは遅くなる」
- いくつかの場所で CIImage を保持およびリリースします。VM で最初にアプリをビルドしたとき、リリース後にイメージが参照されたため、EXC_BAD_ACCESS エラーが発生しました。また、VM ビルドでは、イメージ インスタンスが解放されないと、大量のメモリ リークが発生します。パーティションのビルドでは、イメージを保持および解放するコードを削除できます。リークは発生せず、アクセスエラーも発生しません。
アプリケーションが VM 内に構築されているか、ネイティブ OS インストールで構築されているかによって結果が異なるのはなぜですか?