如何在没有虚拟化的情况下在Macintosh上完成“干净”测试?

时间:2010-06-10 20:12:01

标签: macos testing virtualization

我在Windows上运行的一件事是,当您正在开发的Web浏览器插件或程序假设安装了某些内容时,默认情况下并不总是出现在Windows上。一个完美的例子是.NET - 许多运行Windows XP的人从未安装任何版本的.NET,因此安装程序需要在必要时检测并修复它。

我在Windows中对此进行测试的方法是让虚拟机拥有一个干净,修补但未安装的XP或Vista或7或其他任何版本的快照。当我完成测试时,我只是放弃了自快照以来的任何更改。效果很好。

我现在正在为Macintosh开发一些东西,这对我来说是一个非常新的平台,而且我看到虚拟化似乎不是一种选择。它在Mac OS X的EULA中被明确禁止,它只允许来自Mac OS X Server,它看起来我如何定位终端产品对我没用,而我看到的一个程序可以虚拟化它 - VirtualBox - 只支持服务器并主动解决有关运行Mac OS X的消费者/客户端版本的任何讨论。我在该主题的任何地方找到的唯一指令似乎涉及使用与完整不兼容的“黑客”程序时间演出我正试图这样做。

所以看起来虚拟化已经出局了,但在各个方面我都想要或者需要模拟在“干净”的Macintosh上安装和运行这个软件的感觉。人们通常如何做到这一点?只需购买多个Macintoshes并使用Time Machine?我是否认为这一切都错了,一切正常?

要清楚

  • 我不是想在Windows机器上运行Mac OS X.我有一台Macintosh,我可以在Apple硬件上虚拟化Mac OS X,我只是没有看到制作非服务器版本的途径。
  • 我知道Mac OS X 服务器可以虚拟化,但这不是我想要的。
  • 我知道有一些未经批准/不支持的方法可以让Mac OS X在像VirtualBox这样的虚拟化程序中运行,但出于法律原因,我对这些不感兴趣。
  • 我的问题不是“我怎么能这样做?”但是“所以我在Windows上做的事情似乎不可能,通常在Macintosh上,所以人们做了什么来实现我的目标?”

4 个答案:

答案 0 :(得分:2)

当我坐在工作机器上的各种Windows VM的无数版本时,我从来没有真正需要在Mac上。最大的原因是应用程序在Mac上的捆绑包中的部署方式。理想情况下,安装是一个副本,卸载将应用程序拖到垃圾箱。在Windows上,您在应用程序之间拥有更多共享状态,必须考虑大多数应用程序在Mac上没有的应用程序。现在,如果您正在编写设备驱动程序或VPN客户端或需要进入系统某些部分的东西,那么您就没那么奢侈了。

我真正觉得需要虚拟化的时候,我想针对不同版本的OS X,或者进行某种回归检查,看看X.Y.X版本下的内容确实有所不同。

那么我们如何实现您的目标,默认情况并不关心,因为您因应用程序包而没有相同的风险。或者,如果您关心,那么购买一堆外部硬盘驱动器,然后根据需要将它们换掉。 (对于OS X的两个版本,我只做了一次,所以我不能说它确实是行业惯例。)

答案 1 :(得分:1)

您不需要第二台Mac,您可以在另一个分区或硬盘上安装第二台OS X安装。

答案 2 :(得分:0)

这通常是你有一个“试验台”。获取第二台Mac,对干净安装进行映像,然后根据需要安装/重新映像。

答案 3 :(得分:-1)

  

我是否认为这一切都错了   一切正常吗?

这对我来说不是一个很好的答案,但是有点,是的!实际上没有任何用户应该拥有的框架没有被应用程序本身安装

为了使这个更好的答案,当然可以在VMWare Fusion下虚拟化OS X“Client”。从我对older question的回答:

VMWare Fusion可以运行10.5 / 10.6客户端虚拟机,但您必须通过编辑操作系统安装光盘来欺骗它进行安装。

这种方法存在一些问题,正如尝试它的人所列举的那样(主要是由于缺乏3D加速):

  • DVD播放器功能失误(-70017)
  • 大多数屏幕保护程序无效。
  • 前排加载到黑屏
  • Quicktime中的屏幕录制会产生错误(OSStatus错误-108)
  • 声音不起作用所有Mac OS的虚拟化时的错误
  • System Profiler无法找到有关系统组件的大量信息。
  • 在20秒的虚拟环境下启动时间很慢

根据您的测试要求,这些可能会或可能不会成为您的交易破坏者。

要诱使VMWare认为客户端10.5或10.6光盘实际上是服务器,您必须编辑Fusion的新VM基础映像:

sudo bash
cd "/Library/Application Support/VMware Fusion/isoimages"
mkdir original
mv darwin.iso tools-key.pub *.sig original
sed "s/ServerVersion.plist/SystemVersion.plist/g" < original/darwin.iso > darwin.iso
openssl genrsa -out tools-priv.pem 2048
openssl rsa -in tools-priv.pem -pubout -out tools-key.pub
openssl dgst -sha1 -sign tools-priv.pem < darwin.iso > darwin.iso.sig
for A in *.iso ; do openssl dgst -sha1 -sign tools-priv.pem < $A > $A.sig ; done
exit

然后安装操作系统:

如果您尝试安装它会产生Eboot错误,因此您需要按F8进入高级安装。然后在那里使用-v -install,它应该安装。