Я использую Applescript для выполнения части работы установщиков для моих продуктов.Я без проблем использовал один и тот же сценарий в течение многих лет, но недавно от нескольких пользователей были получены отчеты, в которых сценарий не очищается после себя, что приводит к проблемам.Я не могу воссоздать это на своих системах, и поэтому мне интересно, мог бы кто-нибудь из вас пролить свет на то, почему это происходит в некоторых системах.
Установщики - это файлы * .pkg.Установщики создают папку с именем Contents в домашнем каталоге пользователя с полезной нагрузкой (одна или несколько папок, содержащих файлы * .pyc и * .txt) вместе с Applescript, а затем вызывают сценарий оболочки, который выглядит примерно так::
#!/bin/sh
open "$2/Contents/Live AutoConfig.app"
exit 0
AutoConfig.app - это скомпилированный Applescript.Он переносит полезную нагрузку в Contents в содержимое одного или нескольких файлов * .app в Приложениях.Эта часть отлично работает.В конце этой передачи сценарий должен удалить папку Contents .Это то, что не работает.Код для очистки выглядит следующим образом:
on clean_up()
set temp_path to path to me
tell application "Finder"
set script_path to (container of temp_path) as Unicode text
delete (script_path)
end tell
end clean_up
Когда это не работает, нет сообщений об ошибках или чего-либо еще.Папка Contents просто не удаляется, как это должно быть.И да, я уверен, что clean_up вызывается.Я нахожу это довольно странным, поскольку, с точки зрения безопасности, я думаю, что передача файлов в * .apps более рискованна, чем удаление папки из домашнего каталога, и все же передача работает нормально.Странно.
Некоторая дополнительная информация: Установщики и скрипты были созданы с использованием 10.5.8 (FWIW, это, похоже, не проблема, поскольку установщики все еще работают нормально на моих других системах, работающих под управлением 10.12.6 ипотом).Пользователи, имеющие эту проблему, запускают установщики 10.12.6 и 10.13.6.
Есть идеи, почему это может происходить?