У нас есть два подписанных приложения для Mac OS X (которые мы разработали - приложения не из магазина приложений). appA запускает Applescript (из файла .scpt), который отправляет appB сообщение для запуска и поиска некоторого текста.
Это отлично работает в OS X 10.6.
В OS X 10.7 и 10.8 у меня другое поведение: когда appA запускает Applescript, appB НЕ ЗАПУСКАЕТСЯ. Однако, если appB УЖЕ ЗАПУСКАЕТСЯ, то сообщение appA ПОЛУЧАЕТСЯ appB, и запрошенный поиск обрабатывается.
Это похоже на проблему с песочницей: когда мы отправили эту команду в Терминал:
sudo spctl --master-disable
… И перезапустите, также нет проблем с запуском AppB AppB на 10.8. В версии 10.7 appB по-прежнему не запускается.
Нужны ли нам ВРЕМЕННЫЕ РАЗРЕШЕНИЯ, чтобы иметь возможность выполнять сценарий AppleScript (или отправлять AppleEvents) в другое приложение? Оба приложения подписаны вручную с использованием кода. Получены ли эти права от Developer Relations и применяются ли они с кодом?
appA получает AppleScript и выполняет его с помощью следующих функций:
OpenDefaultComponent(), OSALoad(), AEBuildAppleEvent(), OSAExecuteEvent()
Выполняемый AppleScript:
on lookup(search_phrase)
tell application "appB"
activate
lookup (search_phrase)
end tell
end lookup
property ASDScriptUniqueIdentifier : "Lookup.scpt"