2016-07-01 14 views
0

Эта проблема несколько раз обсуждалась на Stackoverfl0w, но, к сожалению, я не видел действительно удовлетворяющего решения.Как запретить инсталлятор .pkg от поиска включил .app (ы) в местах, отличных от указанного установочного каталога,

Ситуация:

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

В настоящее время мы отправляем файл .pkg, который устанавливает наш пакет программного обеспечения в/Applications/$ CompanyName/$ SoftwareName_ $ VersionNumber. Включение номера версии в имя папки и не удаление старых версий необходимо, так как многие наши клиенты используют нашу текущую версию и бета-версию параллельно, и, кроме того, многие клиенты работают с более старым программным обеспечением, поскольку они сертифицировали его для конкретной но они используют текущую версию для текущих проектов.

Мы использовали только средства командной строки и библиотеки для macOS, поэтому для нас это работало совершенно много лет.

Однако мы начали переносить наши графические приложения из Windows только в Windows/macOS/Linux, которые отправляются в формате .app под macOS.

Вопрос:

Если .app поставляется в инсталлятор .pkg, установщик ищет отверстия диска для старых экземпляров одного и того же .app. Если он находит один, он заменяет найденный экземпляр (очень плохой), а также не помещает .app в указанный установочный каталог (также плохо).

Решения, которые я нашел:

а) Изменение CFBundleIdentifier в .app для каждой выпущенной версии. Кажется, это не чистый способ для меня. Я предполагаю, что это также приведет к появлению многократного появления .app в Launchpad
b) Поиск всех экземпляров .app до того, как программа установки сделает это, закрепив их и извлекая из них снова после установки. (Также не похоже на хорошее решение.)

У кого-то есть чистый способ для этого? Не могу поверить, что Apple не имеет способа указать, что это поведение должно быть опущено во время создания .pkg.

Есть ли лучшая документация, то один я нашел ?:

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 (хорошую документацию, но после ~ 8 лет бесперебойной работы, много полей по-прежнему помечены «Описание Forthcoming. ")

EDIT: Добавлен XCode в качестве тега. Нападение после получения переполнения с этим вопросом. Поблагодарили бы за любые предложения :)

ответ

0

Свойство «переместить» в файле распространения, похоже, контролирует это. К сожалению, похоже, вы можете включить только «перемещение», добавив этот ключ, но не отключив его, опуская ключ.Согласно документации Apple по распространению XML, по умолчанию для пакетов .app "relocate".

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

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