2016-04-19 11 views
2

Ich habe eine OSX-Anwendung mit Qt gebaut. Es ist co-signiert, passend für macstore und wurde von Apple freigegeben und steht im Mac Store zum Verkauf bereit.Productbuild Pfad ignoriert bei der Installation

Obwohl nach der Installation wird es an der Stelle installiert, an der es sich während des Verpackens befand, statt/Anwendungen.

Alternativ erstelle ich ein .dmg-Paket der Datei, die ich in/Anwendungen installieren kann.

Am Ende der Build-Prozedur Ich renne diese Befehle:

codesign --force --deep --verify MyApp.app/ --entitlements ${INSTDIR}/Entitlements.plist -s "3rd Party Mac Developer Application: Company Name" 
productbuild --component MyApp.app /Applications --sign "3rd Party Mac Developer Installer: Company Name" MyApp.pkg 

Das Ergebnis von denen die PKG ist, die ich über installer installiert bin versucht:

$ sudo installer -store -pkg MyApp.pkg -target/
installer: Note: running installer as an admin user (instead of root) gives better Mac App Store fidelity 
installer: MyApp.pkg has valid signature for submission: 3rd Party Mac Developer Installer: Company Name (key) 
installer: Installation Check: Passed 
installer: Volume Check: Passed 
installer: Bundle com.CompanyName.MyApp will be relocated to /Users/peti/dev/build/bin/Mac/release/MyApp.app 
installer: Starting install 
installer: Install 0.0% complete 
installer: Install 17.1% complete 
installer: Install 96.4% complete 
installer: Install 100.0% complete 
installer: Finished install 

Gleich nach dem Produktbau sagte der Umzug/Anwendungen, aber es hat es dort nicht installiert !! Bei einem nachfolgenden Lauf wird der falsche Pfad angezeigt. Ich habe auch versucht, von verschiedenen Standorten aus zu installieren.

Ich habe auch versucht, die App von Mac Store zu installieren, die das gleiche tut ... Es geht in den falschen Pfad.

Ich habe verwendet:

pkgutil --expand 

das Paket zu extrahieren. PackageInfo-Datei sagt das:

<pkg-info overwrite-permissions="true" relocatable="false" identifier="com.CompanyName.MyApp" postinstall-action="none" version="3.0.0" format-version="2" generator-version="InstallCmds-502 (14F1605)" install-location="/Applications" auth="root" preserve-xattr="true"> 

Irgendwelche Ideen was könnte schief gehen? Ich habe versucht, nach Lösungen zu suchen, aber kein Glück. Wo könnte dieser falsche Pfad gespeichert werden? Ich sehe den Pfad nicht in einer Datei vor dem Produktbuild. Macht Productbuild etwas Seltsames?

+0

'.dmg' ist ein Disk-Image, kein Paket, aber Sie können sicherlich ein' .pkg' darauf speichern. –

+0

@ I'L'I Ich verstehe, dass, was ich nicht verstehe, warum der Ort der Verpackung etwas mit dem Installationspfad zu tun hat. – tothphu

+1

Wenn Sie die Orte meinen, an denen sich Dateien befinden, wenn Sie sie erstellen, dann liegt das daran, dass sie bestimmen, wo sie installiert werden sollen. –

Antwort

1

Endlich denke ich, ich habe eine Erklärung.

Es wird auf jeder anderen Maschine korrekt installiert, außer auf unserer Maschine. Was der Grund dafür zu sein scheint, ist, dass osx den Pfad speichert, nachdem Sie die benannte MyApp.app von irgendwo im Dateisystem ausgeführt haben. Wenn Sie es also das nächste Mal installieren (update?), Wird die Anwendung auf dem bekannten Pfad aktualisiert.

Ein noch seltsamer Szenario ist, dass, wenn Sie zwei "Installationen" der Anwendung (zwei Kopien) haben und Sie versuchen, es erneut zu installieren, wird es im Wechsel zwischen den beiden Instanzen installieren! Riecht wie ein Käfer, den Apple niemals reparieren wird.

Danke für die Hilfe @ l'L'l. Wenn Sie mir dieses Verhalten erklären könnten, wäre das ein Plus.