У меня есть приложение, для которого мне нужно создать установщик, и все, что нужно сделать установщику (кроме копирования приложения), — это запустить скрипт (или исполняемый файл), который не является частью самого приложения. Любая помощь в том, как я могу это сделать? Я вижу на вкладке Требования действие Результаты выполнения скрипта, а также Действия перед установкой в разделе Действия. strong> с действием Открыть файл. Подойдет ли любой из них или мне следует искать в другом месте?
Использование PackageMaker для запуска скрипта при установке
Ответы (3)
здесь хорошее руководство
Существует 7 типов сценариев, которые могут быть запущены в процессе установки:
InstallationCheck. Этот сценарий запускается в начале процесса установки (даже до этапа аутентификации). Его можно использовать для проверки возможности установки пакета на этот компьютер.
VolumeCheck. Этот сценарий запускается на этапе «Выбор места назначения». Он используется для определения того, на какой том можно установить пакет.
предварительная проверка: этот сценарий запускается сразу после того, как пользователь нажал кнопку "Установить".
preinstall / preupgrade: этот сценарий запускается после сценария предварительной проверки, если он есть (в случае установки одного пакета); в противном случае сразу после того, как пользователь нажал кнопку «Установить».
Как видите, здесь есть 2 типа скриптов. Предустановочный запускается, когда Пакет еще не был установлен (с точки зрения Installer.app), предобновляющий запускается, когда Пакет уже установлен. Чтобы определить, был ли пакет уже установлен или нет, Installer.app просматривает содержимое следующего каталога: /Library/Receipts. Если в нем есть файл с именем PackageName.pkg, то пакет уже установлен, в противном случае это первая установка.
postinstall / postupgrade: этот сценарий запускается после установки файлов в пакете. См. (preinstall/preupgrade), чтобы увидеть, какой из них запущен.
postflight: этот сценарий запускается после сценария postinstall/postupgrade или после установки пакета.
preflight/postflight/preupgrade/postupgrade
больше не поддерживается. Просто preinstall/postintall
. Кроме того, начиная с Catalina, вы не можете предполагать, что /bin/bash
существует, поэтому ваши сценарии должны быть /bin/sh
- person spartygw; 12.07.2021
Мне только что удалось включить сценарий оболочки в свой пакет, созданный с помощью PackageMaker. Мне нужно было добавить свое приложение в элементы входа в систему после установки, поэтому я сделал скрипт с именем postflight.sh
и поместил его в папку. (Кажется, это работает с любым местоположением)
И затем в моем пакете у меня есть Приложения. В разделе «Содержание», «Пакет: Приложения» на вкладке «Сценарии» я выбираю postflight.sh
в разделе «Постполетная проверка». Вот и все.
мой postflight.sh
начинается с
#!/bin/bash
а затем у него есть скрипт для добавления приложения в элементы входа. Когда у меня этого не было, я мог сделать пакет, но установка не удалась. Надеюсь, это полезно.
Эта инструкция по использованию PackageMaker устарела, но содержит некоторые очень полезная информация о сценариях примерно на полпути вниз. Найдите таблицу, показывающую переменные командной строки, видимые из оболочки и perl, а также некоторые полезные значения состояния выхода.