如何在没有虚拟化的 Macintosh 上进行“干净”测试?

2024-03-03

我在 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 XServer可以虚拟化,但这不是我想要的。
  • 我知道有一些未经批准/不受支持的方法可以使 Mac OS X 在 VirtualBox 等虚拟化程序中运行,但出于法律原因,我对这些不感兴趣。
  • 我的问题不是“我该怎么做?”而是“所以我在 Windows 上做的这件事通常在 Macintosh 上似乎是不可能的,那么人们会做什么来实现我想要的目标呢?”

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

我真正觉得需要虚拟化的地方是当我想要针对不同版本的 OS X,或者进行某种回归检查以查看在 X.Y.X 版本下情况是否确实有所不同时。

那么我们如何实现您想要的目标,默认是不关心,因为您不会因为应用程序包而面临相同的风险。或者,如果您愿意,可以购买一堆外部硬盘驱动器来启动并根据需要更换它们。 (我只在两个版本的 OS X 上这样做过一次,所以我不能说这真的是行业惯例。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有虚拟化的 Macintosh 上进行“干净”测试? 的相关文章

  • 允许在 Safari 上聊天应用程序使用 audio.play()

    由于苹果禁用了自动播放音频的功能HTMLMedia Element play https developer mozilla org en US docs Web API HTMLMediaElement play在没有用户交互的 java
  • 如何在 Xcode 上共同设计并启用第 3 方 CLI 的强化运行时?

    我的项目需要 Ghostscript 来完成很多任务 因此我已将 gs CLI 工具添加到我的项目资源中 然而 当我尝试对项目应用程序进行公证时 Xcode 向我显示了以下内容 我认为这可能是因为 Ghostscript 便携式 CLI 是
  • 在当前参数寄存器中找到的选择器名称:isEqual:

    我正在寻求一些帮助来消除 OSX 应用程序中的一个我无法解决的错误 我收到以下记录错误 Selector name found in current argument registers isEqual 但我一生都无法弄清楚它来自哪里 因为
  • 使用 rbenv 在 MacOS 上安装 Ruby 2.6.0 失败

    我在 Mojave 上有一台 Mac 它无法安装开发所需的一些基本内容 rbenv install 2 6 0 Downloading openssl 1 1 1d tar gz gt https dqw8nmjcqpjn7 cloudfr
  • 如何为 Mac OS X 制作可拖动的菜单栏图标

    我正在为我正在开发的应用程序编写菜单栏图标 但是 NSStatusBar 类没有可以通过 cmd 鼠标左键拖动来使图标可拖动的方法 如何使用 Objective C 代码使菜单栏图标可拖动 谢谢 目前您无法使用 NSStatusBar 来完
  • 如何使用 Productbuild 构建具有自定义背景的 OS X 安装程序包?

    我有一个项目依赖现已弃用的 PackageMaker 工具来创建 OS X 安装程序 我正在努力更新它以使用pkgbuild http developer apple com library mac documentation Darwin
  • 如何获取 iTunes 选择的文件路径

    我正在尝试使用 AppleScript 确定在 iTunes 中选择的曲目的路径 貌似不是该公司的财产track班级 谁能告诉我如何获取文件路径 尝试这个 gets file path of selected song tell appli
  • 如何从 MacOS X Dock 启动脚本?

    我知道我可以将应用程序固定到扩展坞并从那里启动它们 但是 有没有办法将不是 MacOS 意义上的 应用程序 的程序 例如 bash 脚本 固定到扩展坞上 您可以将任何文件拖到 Dock 的右侧栏 垃圾箱和文件夹所在的位置 然后单击它来执行它
  • 如何设置Python的USER_SITE;我需要吗?

    我在 OS X 10 10 只需使用 pip 维护 上安装了 Python 我的站点包位于 Library Python 2 7 site packages 苹果的封装在 System Library Frameworks Python f
  • 如何测试包含自定义表单控件的组件?

    我有一个这样的组件 Component selector app custom form control templateUrl
  • 如何阻止与 RSpec 和 Capybara 的外部连接?

    在我的 Rails 项目中 我想编写非理想条件的测试 例如缺乏互联网连接或超时 例如 我正在使用 gem 来联系 API 并且希望确保在我的应用程序和外部 API 之间存在连接问题时能够正确处理错误 我已经可以通过用录像机制作固定装置并从
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • 如何更改默认的Python版本?

    我已经在我的 Mac 上安装了 Python 3 2 我跑完之后 Applications Python 3 2 Update Shell Profile command 当我输入时 这很令人困惑Python V在终端它说Python 2
  • 在C语言中如何清屏? [复制]

    这个问题在这里已经有答案了 我想清除屏幕上的所有文字 我尝试过使用 include
  • 为什么 Mac OS 上的 C 运行时允许预组合和分解的 UTF-8?

    所以我们都知道 Mac OS 上的文件系统具有使用完全分解的 UTF 8 的古怪功能 如果您调用 POSIX API 例如realpath 例如 您将从 Mac OS 返回这样一个完全分解的 UTF 8 字符串 当使用像这样的 API 时f
  • 自动测试无限循环

    我在 Rails 项目中使用自动测试时遇到了一个问题 即当测试失败时 即 我修改了测试文件并且自动测试自动运行测试 自动测试会不断尝试运行测试 当然每次都会失败 因为文件尚未被修改 而不是等到文件再次保存 当咆哮通知打开时 当我试图修复代码
  • CIAdditionCompositing 给出不正确的效果

    我正在尝试通过平均其他几个图像来创建图像 为了实现这一点 我首先将每个图像变暗 其系数等于我平均的图像数量 func darkenImage by multiplier CGFloat gt CIImage let divImage CII
  • 如何生成Mac应用程序的安装包?

    如何为 OS X 二进制文件以及一些配置和脚本文件创建单个安装程序包 最终文件夹应如下所示 任何帮助 将不胜感激 谢谢 如果您希望将各种东西放置在不同的位置 安装程序在这里 文档在那里 支持文件在这里等等 它们也非常适合提供安装体验的可配置
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • 分段错误:当我运行 Pygame 时为 11

    有人问过类似的问题here https stackoverflow com questions 34278488 pygame display causing segmentation fault 11 但没有得到答复 我有 Python

随机推荐