2016-04-19 3 views
2

У меня есть приложение OSX, построенное с Qt. Он кодируется, упакован в соответствии с макстором и одобрен яблоком, и он готов к продаже в магазине mac.путь сборки продукта игнорируется при установке

Хотя после его установки он устанавливается в место, где он находился во время процесса упаковки вместо/Применения.

В качестве альтернативы я создаю пакет .dmg файла, который я могу установить в/Приложения.

В конце процедуры сборки я бег этих команд:

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 

Результат которых является PKG, который я пытаюсь установить с помощью инсталлятора:

$ 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 

Сразу после создания продукта было указано перемещение/Приложения, но он не установил его там! В следующем прогоне он скажет неправильный путь. Я также пытался установить из разных мест.

Я также попытался установить приложение из Mac Store, которое делает то же самое ... Он переходит на неправильный путь.

Я использовал:

pkgutil --expand 

Для извлечения пакета. Файл PackageInfo говорит следующее:

<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"> 

Любые идеи, что может быть неправильным? Я пытался использовать Google для решения, но не повезло. Где можно сохранить этот неправильный путь? Я не вижу путь, встроенный в какой-либо файл, до создания продукта. Является ли productbuild чем-то странным?

+0

'.dmg' - это образ диска, а не пакет, но вы можете хранить на нем' .pkg'. –

+0

@ I'L'I Я понимаю, что я не понимаю, почему место упаковки имеет какое-либо отношение к пути установки. – tothphu

+1

Если вы имеете в виду места, где находятся файлы при его создании, то это потому, что он использует это, чтобы определить, где его установить. –

ответ

1

Наконец-то, я думаю, у меня есть объяснение.

Он устанавливается правильно на любой другой машине, кроме нашей сборной машины. Причина в том, что после выполнения имени MyApp.app из любой точки файловой системы osx запоминает этот путь. Итак, когда вы пытаетесь установить его в следующий раз (обновить?), Он обновит приложение по известному пути.

Еще более странный сценарий заключается в том, что когда у вас есть две «установки» приложения (две копии), и вы пытаетесь установить его снова, он будет устанавливать его чередующимся между двумя экземплярами! Пахнет как ошибка, которую Apple никогда не собирается исправлять.

Спасибо за помощь @ l'L'l. Если бы вы могли объяснить мне такое поведение, которое было бы плюсом.

 Смежные вопросы

  • Нет связанных вопросов^_^