1

我完全被这个难住了,希望有更多 Xcode 经验的 SO 用户能启发我了解我的应用程序构建发生了什么,或者我应该如何调试问题。

我有一个较旧的应用程序,它使用(现已弃用的)QTKit 库与 USB 视频源接口。我想看看它是否能在 macOS 10.12 beta 上成功构建。

我下载了测试版并将其与 Xcode 7.3.1 一起安装在 VMWare 虚拟机中。在解决了一个错误后(下面有更多关于这个的内容),应用程序成功构建并运行。

接下来我将 macOS 10.12 安装到它自己的分区中,并安装了相同版本的 Xcode。我从 VM 复制了 Xcode 项目文件。这一次,当我构建应用程序时,它会显示一个空白屏幕,其中应该是网络摄像头图像。

一些额外的事实:

  • 当我将在 VM 中构建的应用程序移动到分区操作系统安装时,它继续正常运行。
  • 当应用程序在 VM 中构建时,控制台会记录:“无法创建基本的加速 OpenGL 渲染器。Core Image 现在使用软件 OpenGL 渲染器。这会很慢”
  • 我在几个地方保留和发布 CIImages。当我第一次在 VM 中构建应用程序时,由于在发布后引用了映像,因此出现了 EXC_BAD_ACCESS 错误。此外,在 VM 构建中,如果没有释放镜像实例,则会导致巨大的内存泄漏。在分区构建中,我可以删除保留和释放图像的代码。不会发生泄漏,也不会发生访问错误。

为什么我得到不同的结果取决于应用程序是在虚拟机中构建还是在本地操作系统安装?

4

1 回答 1

0

当我将在 VM 中构建的应用程序移动到分区操作系统安装时,它继续正常运行。... 为什么我得到不同的结果取决于应用程序是在 VM 中构建,还是在本地操作系统安装?

我不知道您的具体情况,我可以说当应用程序构建在本机或虚拟环境中时,我会得到相同的结果。

到目前为止,我发现 10.12 中的加速 OpenGL 虚拟化存在问题。虽然我没有机器,但我可以测试其行为是否与硬件不一致。

有关如何检测硬件加速 OpenGL 渲染器是否可用的信息,请参阅https://stackoverflow.com/a/23000381/608945 。我用 10.11(硬件)试过这个,它返回true了,用 10.12(在 Parallels,虚拟),这个返回false

我觉得如果有一个用例给定应用程序将在虚拟环境中使用,当硬件加速不可用时,那么应该适当地处理它。

于 2016-09-12T10:17:30.423 回答