PackageMaker для создания пакетов Mac в Windows / Linux - PullRequest
10 голосов
/ 24 февраля 2010

Нам нужно создавать пакеты для Mac на лету, и было бы удобно, если бы существует способ создать их на платформе Windows или Linux вместо использования PackageMaker на Mac. Есть идеи?

Ответы [ 2 ]

18 голосов
/ 05 ноября 2011

Я не согласен, что это невозможно. Вы, безусловно, можете делать все, что PackageMaker делает в OSX в другой ОС. Это просто вопрос создания этих файлов:

Contents/
  Archive.bom
  Archive.pax.gz
  Info.plist
  PkgInfo
  Resources/
    TokenDefinitions.plist
    package_version
    en.lproj/
      Description.plist

Файлы .plist могут быть легко созданы в Python с помощью plistlib , который теперь является стандартным в Python. .Bom и .pax.gz немного сложнее, но все остальные текстовые файлы.

.gz часть файла .pax.gz означает, что он сжат с помощью gzip. Это доступно в Windows и Linux.

Согласно справочной странице pax файл pax может иметь несколько различных форматов архивов, включая cpio и tar , что также легко сделать в Linux или Окна. Похоже, что PackageMaker создает сжатые файлы cpio , по крайней мере 10.6.

Файл .bom представляет собой список всех файлов в пакете и их размеры. Это, вероятно, самая сложная часть для создания вне OSX. BOM расшифровывается как Bill Of Materials и происходит из операционной системы NextSTEP. Я не смог найти много информации о формате спецификации, но вот некоторые подсказки: Страница руководства по NextSTEP bom , Страница руководства по OSX

Редактировать: Теперь я реализовал версию lsbom , которую я разместил в открытом доступе. Код можно найти в Subversion здесь: https://cauldrondevelopment.com/svn/osxbom/trunk

Возможно, кто-то также может реализовать mkbom , и тогда будет полное решение. См. Заголовочный файл bom.h в вышеприведенном коде для несколько полного описания формата файла спецификации.

Редактировать 2: Рабочая версия mkbom теперь реализована и может быть найдена здесь: https://github.com/hogliux/bomutils

вместе с подробным руководством по созданию установщика в Linux: http://hogliux.github.io/bomutils/tutorial.html

Также см. Вопрос как собрать встроенную mac-os-x-installer-on-a-non-mac-platform .

0 голосов
/ 24 февраля 2010

Нет, вы не можете. Вы можете создать сценарий входа в систему через ssh и запустить его, используя osascript, чтобы вы могли автоматизировать сборку из другого места, но вы можете собрать только для Mac на Mac.

Вы можете сделать все сборки на Mac. Так намного проще.

...