Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos “是怎么回事?”;“干净”;在没有虚拟化的情况下在Macintosh上进行测试?_Macos_Testing_Virtualization - Fatal编程技术网

Macos “是怎么回事?”;“干净”;在没有虚拟化的情况下在Macintosh上进行测试?

Macos “是怎么回事?”;“干净”;在没有虚拟化的情况下在Macintosh上进行测试?,macos,testing,virtualization,Macos,Testing,Virtualization,我在Windows上遇到的一件事是,当您正在开发的web浏览器插件或程序假设安装了某些默认情况下并不总是出现在Windows上的东西时。一个很好的例子是.NET—很多运行Windows XP的人从未安装过任何版本的.NET,因此安装程序需要检测并在必要时进行补救 我在Windows中测试这一点的方法是使用一个虚拟机,其中包含一个干净的、修补过的、但未触及的XP、Vista或7或其他任何安装的快照。当我完成测试后,我会放弃快照之后的任何更改。效果很好 我现在正在为Macintosh开发一些东西,这

我在Windows上遇到的一件事是,当您正在开发的web浏览器插件或程序假设安装了某些默认情况下并不总是出现在Windows上的东西时。一个很好的例子是.NET—很多运行Windows XP的人从未安装过任何版本的.NET,因此安装程序需要检测并在必要时进行补救

我在Windows中测试这一点的方法是使用一个虚拟机,其中包含一个干净的、修补过的、但未触及的XP、Vista或7或其他任何安装的快照。当我完成测试后,我会放弃快照之后的任何更改。效果很好

我现在正在为Macintosh开发一些东西,这是一个对我来说非常新的平台,我看到虚拟化似乎不是一个选项。Mac OS X的EULA中明确禁止这种行为,只有Mac OS X服务器才允许这样做,这对我来说是没有用的,因为我是如何瞄准最终产品的,我看到的一个可以虚拟化它的程序——VirtualBox——只支持服务器,并积极地禁止任何关于运行Mac OS X的消费者/客户端版本的讨论。我在这个主题的任何地方找到的唯一说明似乎都涉及到“黑客”的使用这些节目与我试图为之工作的全职工作非常不兼容

看起来虚拟化已经过时了,但在不同的时候,我想要或者需要模拟在“干净”的Macintosh上安装和运行这个软件的感觉。人们通常是怎么做的?只需购买多台苹果电脑并使用时间机器?我是不是认为这一切都错了,一切都正常

说清楚

  • 我不想在Windows机器上运行MacOSX。我有一台Macintosh,我对在苹果硬件上虚拟MacOSX很在行,我只是没有看到让非服务器版本实现这一点的途径
  • 我知道MacOSX服务器可以虚拟化,但这不是我想要的
  • 我知道有一些未经批准/不受支持的方法可以让Mac OS X在VirtualBox等虚拟化程序中运行,但出于法律原因,我对这些方法不感兴趣
  • 我的问题不是“我如何才能做到这一点?”而是“所以我在Windows上做的这件事似乎在Macintosh上是不可能的,那么人们如何才能实现我的目标呢?”

您不需要第二台Mac电脑,只需在另一个分区或硬盘驱动器上安装第二台OS X即可。

这通常就是您的“测试平台”。第二台Mac电脑,镜像干净的安装,然后根据需要安装/重新镜像。

当我坐在这里,在我的工作机器上有无数版本的各种windows虚拟机时,我从来都不需要在Mac电脑上安装。最大的原因是应用程序以捆绑方式部署在Mac上。理想情况下,安装是复制,卸载是将应用程序拖到垃圾箱。在windows上,应用程序之间的共享状态要多得多,这是大多数应用程序在Mac上没有的。现在,如果您正在编写一个设备驱动程序或VPN客户端或需要进入系统这些部分的东西,那么您就没有这种奢侈了

我真正感到需要虚拟化的地方是,当我想针对不同版本的OSX,或者做一些回归检查,看看在X.Y.X版本下是否真的有不同的工作方式

那么,我们如何实现您的目标呢?默认设置是“不在乎”,因为您不会因为应用捆绑包而面临同样的风险。或者,如果你在意的话,那就买一堆外部硬盘来启动,并根据需要更换它们。(我只为两个版本的OS X做了一次,所以我不能说这真的是行业惯例。)

我对这一切的想法都错了吗 一切正常吗

就我而言,这不是一个很好的答案,但是有点,是的用户期望的框架中没有任何框架不是由应用程序本身安装的

为了更好地回答这个问题,当然可以在VMWare Fusion下虚拟化OS X“客户端”。从我对一个问题的回答来看:

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

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

  • DVD播放机不工作有错误(-70017)
  • 大多数屏幕保护程序都不工作
  • 前排加载到黑屏
  • Quicktime中的屏幕记录产生错误(OSStatus错误-108)
  • 虚拟化时,声音在所有Mac操作系统中都不起作用
  • System Profiler无法找到有关系统组件的大量信息
  • 在20秒的虚拟环境下,启动时间较慢
根据您测试的要求,这些可能是您的交易破坏者,也可能不是

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

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
sudobash
cd“/库/应用程序支持/VMware Fusion/isoimages”
mkdir原件
mv darwin.iso tools-key.pub*.sig原件
sed“s/ServerVersion.plist/SystemVersion.plist/g”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.pemdarwin.iso.sig
对于*.iso中的A;执行openssl dgst-sha1-签名工具-priv.pem<$A>$A.sig;完成
出口
然后安装操作系统:


如果你试图安装它将给出一个电子书错误,所以你需要去高级安装按F8。然后在那里使用-v-install,它应该安装。

你可以搬到美国以外的地方,然后尽情地虚拟化。@samoz:完全愚蠢的限制