Использование скриптов в PackageMaker (Mac OS X)

Я пытаюсь создать установочный пакет на Mac для своих приложений (их два .app-ов). Один из них - это графический интерфейс, а другой - агент (сервис). Пакет установки должен запускать сценарий (это единственный способ, которым я знаю, что это можно сделать) в конце установки, чтобы агент был установлен как агент. Существует также файл .plist, который устанавливается в / Library / LaunchAgents, но это то, что PackageMaker делает автоматически (то есть без скрипта).

Проблема в том, что ... Я не могу запустить скрипт. В конце я получаю сообщение «Ошибка установки». Не знаю, в чем проблема. Может кто-нибудь помочь?

Еще несколько деталей:

  • Я пытаюсь сделать это на этапе postflight (после установки). просто предположение ... мне нужно называть мой файл с тем же именем (например, postflight)?
  • Полагаю, это правильный каталог и путь, который я указал. После десятков попыток в последней я установил в качестве «относительного пути» путь, по которому находится документ PackageMaker (в той же папке, что и у меня скрипт). Есть ли что-то важное, что я должен знать о путях, которые могут вызвать проблему? (однако факт в том, что сборка прошла успешно)
  • мне нужно написать что-то конкретное, чтобы разрешить выполнение сценария? У меня есть следующий скрипт: MyInstall.sh

со следующим содержанием (без кавычек):

"#! / bin / sh

sudo launchctl load /Library/LaunchAgents/com.MyCompany.MyService.plist "

(обратите внимание, что com.Mycompany.MyService.plist уже существует - он помещает его туда при установке).

P.S. В некоторых из моих попыток заставить его работать, PackageMaker терпел неудачу.

Кто-нибудь может ПОЖАЛУЙСТА, помочь?


person Feoggou    schedule 25.10.2011    source источник


Ответы (2)


Вы можете посмотреть журнал установки.

Когда приложение Установщик запущено, перейдите в меню Окно и выберите Журнал установки. Это откроет отдельное окно журнала. В этом окне выберите Показать все в поле со списком. Вы сможете понять, почему ваш сценарий дает сбой.

person Laurent Etiemble    schedule 25.10.2011
comment
Спасибо. Я не знал, что у него есть информация (например, журналы), написанная где-то, и где это могло быть. Я не уверен, что я сделал, чтобы он заработал (возможно, тот факт, что я установил скрипт как исполняемый с помощью chmod), или я не знаю, что еще я сделал, что имело значение, но после этого я попытался снова и это сработало. Спасибо, что рассказали мне о журналах и о том, где их найти (теперь я смогу увидеть причины, когда что-то происходит) - person Feoggou; 27.10.2011

У меня был такой опыт. И вот что я выяснил. Для успешной установки ваш сценарий должен явно возвращать 0 (т.е. «успех»). Если результат команд в вашем скрипте не равен 0, и вы не звоните

exit 0

как и в последнем предложении сценария, ваша установка сообщит вам, что это не удалось.

Если вы не используете возвращаемое значение скрипта и уверены, что scrpit работает правильно, просто добавьте «exit 0» в последнюю строку скрипта.

person Aleksandr Kravets    schedule 01.06.2012