2016-07-01 4 views
0

Dieses Problem wurde auf Stackoverfl0w mehrfach diskutiert, aber leider sah ich keine wirklich zufriedenstellende Lösung.Wie Sie verhindern können, dass das .pkg-Installationsprogramm installierte .apps an anderen Stellen als dem angegebenen Installationsverzeichnis durchsucht,

Die Situation:

(enthalten nur, weil die meisten früheren Antworten mit der Linie ging! „Nur es nicht tun Es gibt keinen Grund mehrere Version einer Anwendung zu haben ist .. usw.“, die ich einverstanden für die meisten Fälle, aber nicht dieses.)

Wir liefern zurzeit eine .pkg Datei, die unser Software-Paket zu/Applications/$ CompanyName/$ SoftwareName_ $ VersionNumber installiert. Es ist notwendig, die Versionsnummer in den Namen des Ordners einzutragen und ältere Versionen nicht zu löschen, da viele unserer Kunden parallel unsere aktuelle Version und Beta-Version verwenden. Außerdem arbeiten viele Kunden mit einer älteren Version, da sie diese für eine bestimmte Version zertifiziert haben Anwendungsfall, aber sie verwenden eine aktuelle Version für aktuelle Projekte.

Wir haben nur Kommandozeilen-Tools und Bibliotheken für macOS ausgeliefert, daher funktionierte es für uns über viele Jahre völlig gut.

Wir haben jedoch mit der Portierung unserer GUI-Anwendungen von Windows auf Windows/macOS/Linux begonnen, die im .app-Format unter macOS ausgeliefert werden.

Die Frage:

Wenn ein .app innerhalb eines PKG-Installationsprogramm ausgeliefert wird, sucht das Installationsprogramm die Lochscheibe für alte Instanzen derselben .app. Wenn es eins findet, ersetzt es die gefundene Instanz (sehr schlecht) und legt auch nicht die .app im angegebenen Installationsverzeichnis (auch schlecht) ab.

Lösungen gefunden:

a) Änderung der CFBundleIdentifier der .app für jede freigegebene Version. Scheint nicht wie ein sauberer Weg zu mir. Ich nehme an, es wird auch verursachen, dass die .app mehrmals im Launchpad erscheint
b) Suche alle Instanzen der .app, bevor das Installationsprogramm es tut, zippen sie und extrahieren sie nach der Installation wieder. (Klingt auch nicht nach einer guten Lösung.)

Hat jemand einen sauberen Weg dafür? Ich kann nicht glauben, dass Apple keine Möglichkeit hat, anzugeben, dass dieses Verhalten beim Erstellen des .pkg weggelassen werden sollte.

Gibt es eine bessere Dokumentation dann diejenige, die ich ?:

https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW15

http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html (Gute Dokumentation gefunden, aber nach ca. 8 Jahren Betriebszeit, viele der Felder sind nach wie vor mit „Beschreibung Anstehende markiert. ")

EDIT: XCode als Tag hinzugefügt. Stoßen nach verdienen der Tumbleweed mit dieser Frage. Würde mich über jeden Vorschlag freuen :)

Antwort

0

Die "relocate" -Eigenschaft in der Distributionsdatei scheint dies zu kontrollieren. Leider scheint es, dass Sie "Umzug" nur aktivieren können, indem Sie diesen Schlüssel hinzufügen, aber nicht deaktivieren, indem Sie den Schlüssel weglassen.Laut Apples Distribution XML-Dokumentation ist der Standard für .app-Bundles "relocate".

Verwandte Themen