Как установить несколько пакетов и постобработку?

Я нахожусь в уникальном сценарии — так и должно быть, потому что никакой поиск, который я делаю, кажется, не дает никаких ответов. Но, может быть, есть гуру MacOS X, который может ответить мне на этот вопрос?

Я использую PackageMaker для создания процесса установки приложения моей компании. Это кроссплатформенное приложение, и я использую Linux и Windows, так что, пожалуйста, простите мой неразумный подход к MacOS X.

У нас есть два пакета программного обеспечения — э-э, приложения. Одним из них является Other.app, который разработан сторонней компанией, с которой мы «связываем» наше программное обеспечение. Наше приложение Stats.app. Наше приложение будет работать как агент запуска, поэтому у меня есть файл .plist, который работает, когда я устанавливаю его вручную в терминале.

Мои цели процесса установки таковы:

  1. Установите Other.app в /Applications
  2. Установите Stats.app в /Users/‹user›/Applications (см. ПРИМЕЧАНИЕ)
  3. Установите Stats.plist в папку /Users/‹user›/Library/LaunchAgents.
  4. Постобработайте Stats.plist, чтобы изменить ключ «ProgramArguments», чтобы путь был правильным:

    ‹массив›
    ‹строка›%{HOME}/Applications/Stats.app/Contents/MacOS/Stats‹/string›
    ‹/массив›

  5. Пост-выполните несколько простых команд:

    /Application/Other.app/Contents/MacOS/Other --configure=config.txt

  6. Проверьте коды выхода и, если все в порядке, сообщите пользователю, что мы закончили.

Я надеюсь... нет... молюсь! -- что у кого-то есть информация о том, как это можно сделать.

Чтобы уточнить, не требуется, чтобы Stats.app находился в домашнем каталоге пользователя. Требуется, чтобы агент запуска находился в домашнем каталоге, поскольку для работы Stats.app требуется запущенный Carbon.


person optionsanarchist    schedule 29.10.2010    source источник
comment
Я столкнулся с почти таким же сценарием, как и у вас, и PackageMaker меня трахал больше месяца...   -  person jiandingzhe    schedule 13.09.2016


Ответы (2)


Используйте сценарии после установки/после обновления для каждого пакета, чтобы переписать его. Различные версии PackageMaker выглядят по-разному, и системы, на которые вы ориентируетесь, также влияют на пользовательский интерфейс, так что покопайтесь.

Я убежден, что Apple создала PackageMaker как приманку для разработчиков, ориентирующихся на их платформу, потому что жизнь с Interface Builder, Cocoa и Xcode была слишком простой и приятной. Удачи!

Также: не доверяйте ему правильную обработку разрешений; пусть ваши сценарии после установки/после обновления (как правило, один и тот же набор сценариев для обоих) проходят через chmod и chown ваши файлы. Нет необходимости в sudo, вы уже работаете как root.

Также также: PackageMaker не может справиться с установкой структуры каталогов, которая включает символические ссылки на каталоги, создающие цикл. Сюда входят некоторые фреймворки, распространяемые Apple, такие как DotMacKit.

person Jeremy W. Sherman    schedule 29.10.2010
comment
Итак, как мне заставить PackageMaker установить Other.app в / и Stats.app в /Users/user ? На каком языке сценарий? баш скрипт? - person optionsanarchist; 29.10.2010
comment
Вы можете настроить целевой каталог установки для каждого пакета с помощью пользовательского интерфейса PackageMaker. Это установка прав собственности, разрешений, ACL и переписывание plist, для которых вам действительно понадобятся сценарии после установки/обновления. Они могут быть на любом языке, который вы хотите; они просто выполняются как программы, поэтому с правильной строкой хеш-бэнга все готово. - person Jeremy W. Sherman; 29.10.2010

Вы можете попробовать сценарий bash, который установит приложения в нужный каталог, а в сценарии используйте sed для модификации файла Stats.plist.

person Paul Cav    schedule 02.07.2016