Как проводится «чистое» тестирование на Macintosh без виртуализации? - PullRequest
6 голосов
/ 11 июня 2010

Одна из вещей, с которыми я сталкиваюсь в Windows, - это когда плагин веб-браузера или программа, которую вы разрабатываете, предполагает, что что-то установлено, что по умолчанию не всегда присутствует в Windows. Прекрасным примером будет .NET - многие люди, работающие под управлением Windows XP, никогда не устанавливали какие-либо версии .NET, и поэтому установщик должен обнаружить и исправить это при необходимости.

Способ, которым я тестировал это в Windows, заключается в том, чтобы иметь виртуальную машину со снимком чистой, исправленной, но в остальном нетронутой установки XP, Vista или 7 или чего-то еще. Когда я закончу тестирование, я просто откажусь от любых изменений, сделанных со снимка. Прекрасно работает.

Сейчас я разрабатываю что-то для Macintosh, платформы, которая является для меня очень новой, и я вижу, что виртуализация не представляется возможным. Это явно запрещено в лицензионном соглашении Mac OS X, оно разрешено только с Mac OS X Server, который, поскольку я нацеливаюсь на конечный продукт, мне не нужен, и единственная программа, которая может виртуализировать его, - VirtualBox - поддерживает только сервер и активно запрещает любые обсуждения использования потребительской / клиентской версии Mac OS X. И единственные инструкции, которые я нахожу где-либо по этой теме, похоже, связаны с использованием «хакерских» программ, что очень несовместимо с полной время я пытаюсь сделать это для.

Таким образом, похоже, что виртуализация отключена, но в разные моменты мне захочется или мне нужно будет смоделировать, каково это устанавливать и запускать это программное обеспечение на «чистом» Macintosh. Как люди обычно делают это? Просто купить несколько Макинтошей и использовать Time Machine? Я думаю об этом все неправильно, и все просто работает?

Чтобы быть ясным

  • Я не пытаюсь запустить Mac OS X на компьютере с Windows. У меня есть Macintosh, я в порядке с виртуализацией Mac OS X на оборудовании Apple, я просто не вижу пути к тому, чтобы сделать не-серверную версию.
  • Я знаю, что Mac OS X Сервер можно виртуализировать, но я не к этому стремлюсь.
  • Мне известно, что существуют несанкционированные / неподдерживаемые методы запуска Mac OS X в программах виртуализации, таких как VirtualBox, но по юридическим причинам я не заинтересован в них.
  • Мой вопрос не "как я могу это сделать?" а скорее «так что это, что я делаю в Windows, кажется невозможным, как правило, в Macintosh, так что же делают люди, чтобы добиться того, ради чего я иду?»

Ответы [ 4 ]

2 голосов
/ 11 июня 2010

Поскольку я сижу здесь с множеством версий различных виртуальных машин Windows на моей рабочей машине, мне это никогда не нужно на Mac. Самая большая причина заключается в том, что приложения развертываются в связках на Mac. В идеале установка является копией, а удаление - перетаскивание приложения в корзину. На окнах у вас гораздо больше общего состояния между приложениями, которые должны учитываться, которых большинство приложений не имеют на Mac. Теперь, если вы пишете драйвер устройства или VPN-клиент или что-то, что должно попасть в эти части системы, тогда у вас нет такой роскоши.

Когда я действительно ощущаю потребность в виртуализации, я хочу нацеливаться на разные версии OS X или выполнять какую-то регрессионную проверку, чтобы увидеть, действительно ли все работает по-другому в версии X.Y.X.

Итак, как мы добиваемся того, к чему вы идете, по умолчанию все равно, потому что у вас нет тех же рисков из-за комплектов приложений. Или, если вам не безразлично, купите кучу внешних жестких дисков для загрузки и поменяйте их местами по мере необходимости. (Я сделал это только один раз для двух версий OS X, поэтому я не могу сказать, что это действительно отраслевая практика.)

1 голос
/ 11 июня 2010

Вам не нужен второй Mac, вы можете просто установить вторую установку OS X на другой раздел или жесткий диск.

0 голосов
/ 15 июня 2010

Я думаю, что все это неправильно и все просто работает?

Это не очень хороший ответ с моей стороны, но вроде, да! На самом деле не существует никаких фреймворков, которые, как ожидается, должен иметь пользователь, которые не были бы установлены самим приложением.

Чтобы сделать это лучшим ответом , безусловно, можно виртуализировать OS X «Клиент» под VMWare Fusion. Из моего ответа на старый вопрос :

VMWare Fusion может работать с клиентскими виртуальными машинами 10.5 / 10.6, но вам придется обмануть его при установке, отредактировав установочный диск ОС.

Есть некоторые проблемы с этим методом, перечисленные кем-то, кто попробовал его (в основном из-за отсутствия 3D-ускорения):

  • DVD-плеер не работает с ошибкой (-70017)
  • Большинство хранителей экрана не работают.
  • Передний ряд загружается на черный экран
  • Запись экрана в Quicktime приводит к ошибке (ошибка OSStatus -108)
  • Звук не работает Ошибка во всех Mac OS при виртуализации
  • Системный профилировщик не может найти много информации о системных компонентах.
  • Время запуска медленно в виртуальной среде 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

Затем для установки ОС:

Если вы попытаетесь установить его, вы получите ошибку Eboot, поэтому вам нужно перейти к расширенной установке, нажав F8. Затем, находясь там, используйте -v -install, и он должен установить.

0 голосов
/ 11 июня 2010

Это обычно то, для чего у вас есть «испытательный стенд».Получите второй Mac, создайте образ чистой установки, а затем установите / измените образ по мере необходимости.

...