Как принудительно установить местоположение из OSX .pkg

Я пытаюсь создать установщик пакета для нашего продукта. Раньше мы устанавливали с .dmg, и процесс заключался в том, чтобы просто перетащить его в папку /Applications. Теперь мы хотим установить его в /Application/Company/Suite/product.

Проблема в том, что если мы используем установщик .pkg в системе, в которой ранее был установлен наш продукт, он создает папки, но устанавливает продукт в старое место.

Как я могу заставить установщик pkg сделать следующее:

  1. Удалить старую версию
  2. Установите новую версию в нужное место

У меня очень мало опыта работы с OSX, так что, может быть, я просто что-то упускаю? Также смотрите в папке приложений - не похоже, что что-то еще установлено в подкаталог, необычно ли делать что-то таким образом? Спасибо!

РЕДАКТИРОВАТЬ: я просматриваю ответы, расположенные здесь OSX .pkg установщик иногда не устанавливает файл .app, проблема с другой формулировкой - но ответ может быть именно тем, что мне нужно.

EDIT2: Установщик OSX .pkg иногда не устанавливает файл .app Не применяется. Мы не устанавливали с помощью какого-либо менеджера пакетов, поэтому предыдущей записи нет.

EDIT3: мы использовали dmg, но теперь переходим на pkg.


person lockout87    schedule 22.10.2014    source источник
comment
Это необычно. Если у вас нет смягчающих обстоятельств, пожалуйста, просто распространите приложение и, возможно, перетащите в приложения .dmg штуковину.   -  person Max    schedule 22.10.2014
comment
Решение довольно высоко надо мной, но если OSX действительно не делает этого таким образом, я передам эту информацию.   -  person lockout87    schedule 23.10.2014


Ответы (1)


Итак, я нашел ответ.

Чтобы установить его в новое место: Plist внутри пакета приложения (product.app/Contents/Info.plist) имеет идентификатор «CFBundleIdentifier», он должен отличаться от старого приложения. Например, у нас было «Company.Product-Name», я изменил его на «Company.Product.Name». Это позволит новой установке перейти на новое место.

Чтобы удалить старую установку: я просто добавил эту строку в сценарий предварительной установки: «sudo rm -Rf '/Application/Product Name.app'»

Спасибо за помощь.

person lockout87    schedule 23.10.2014