Я создаю проект для приложения os x с помощью xpcservices, который запускается loginItems. это означает, что услуга основана в приложении в пути: {APP_NAME} .app/Содержание/Библиотека/LoginItems и кто несет ответственность за запуск службы является основным приложением:как я могу удалить XPCService по сценарию
NSXPCConnection *connection = [[NSXPCConnection alloc] initWithLoginItemName:@"{SERVICE_NAME}.app" error:&error];
Я построил деинсталлятор, для удаление всех файлов, которые я установил. и мне нужно удалить эту услугу. команда я использовал для этого:
launchctl remove SERVICE_NAME
это отлично работает, если я запустить его из терминала, но если я запустить его из сценария это удалить службу из «Activity Monitor», но сервис все еще в Список запуска с статусом -5. , поэтому, если я устанавливаю новую версию, вы берете предыдущую версию, которая была установлена.
Запуск сценария из xcode на NSTask
. ошибки нет. он делает то, что должен делать сценарий. Я даже установить привилегии администратора:
/usr/bin/osascript -e 'do shell script \"SCRIPT_NAME args 2>&1 etc\" with administrator privileges'
Почему это не удалить, как я сделал это в терминале?
пс: его работы при запуске его из Xcode (даже приложение в режиме выпуска)