Wir müssen Mac-Pakete im laufenden Betrieb erstellen, und es wäre praktisch, wenn Sie das gleiche auf Windows- oder Linux-Plattformen anstelle von PackageMaker auf Mac erstellen können. Irgendwelche Ideen?PackageMaker zum Erstellen von Mac-Paketen unter Windows/Linux
Antwort
Nein, können Sie nicht. Sie können einen skriptgesteuerten ssh-Login ausführen und ihn mit osascript starten, damit Sie den gesamten Build von woanders aus automatisieren können, aber Sie können nur für einen Mac auf einem Mac erstellen.
Sie könnten alle die Builds auf einem Mac tun, obwohl. Es ist viel einfacher so herum.
Ich bin nicht damit einverstanden, dass dies unmöglich ist. Sie könnten sicherlich alle Dinge tun, die PackageMaker unter OSX auf einem anderen Betriebssystem ausführt. Es ist nur eine Frage der Schaffung dieser Dateien:
Contents/
Archive.bom
Archive.pax.gz
Info.plist
PkgInfo
Resources/
TokenDefinitions.plist
package_version
en.lproj/
Description.plist
Die .plist-Dateien einfach in Python erstellt werden können mit plistlib, die in Python jetzt Standard ist. Die .bom und .pax.gz sind etwas kniffliger, aber der Rest sind alle Textdateien.
Der .gz-Teil der .pax.gz-Datei bedeutet, dass er mit gzip komprimiert ist. Dies ist unter Windows und Linux verfügbar.
Nach den pax man page eine pax-Datei in mehreren verschiedenen Archivformaten tatsächlich sein kann, einschließlich cpio und Teer, auch einfach in Linux oder Windows zu tun. PackageMaker scheint komprimierte cpio Dateien mindestens am 10.6 zu erstellen.
Die .bom-Datei ist eine Liste aller Dateien im Paket und ihrer Größen. Es ist wahrscheinlich der schwierigste Teil außerhalb von OSX zu erstellen. BOM steht für Bill Of Materials und stammt vom NextSTEP-Betriebssystem. Ich habe nicht in der Lage gewesen, viele Informationen über das BOM-Format zu finden, aber hier sind einige Hinweise: NextSTEP bom man page, OSX bom man page
Edit: Ich habe jetzt eine Version von lsbom implementiert, die ich in der Öffentlichkeit platziert habe. Der Code kann hier in Subversion zu finden: https://cauldrondevelopment.com/svn/osxbom/trunk
Vielleicht hat jemand auch mkbom implementieren und dann wird es eine komplette Lösung. Die Header-Datei bom.h im obigen Code für eine etwas vollständigere Beschreibung des BOM-Dateiformats.
Edit 2: Eine funktionierende Version von mkbom wird nun implementiert und kann hier gefunden werden: https://github.com/hogliux/bomutils
zusammen mit einer detaillierten Anleitung, wie man ein Installationsprogramm auf Linux erstellen: http://hogliux.github.io/bomutils/tutorial.html
Siehe auch die Frage how-to-build-native-mac-os-x-installer-on-a-non-mac-platform.
Sieht aus, als ob jemand bereits Reverse-Engineering-Stücklisten-Dateien gestartet hat: http://hintsforums.macworld.com/archive/index.php/t-66174.html – jcoffland