Как дать права на приложение Applescript

У меня есть приложение, созданное в студии Omnis, где я хочу, чтобы пользователь мог нажать кнопку, чтобы открыть Microsoft Excel, а затем вставить то, что находится в буфере обмена. Для этого у меня есть приложение, которое вызывает AppleScript.

tell application "Microsoft Excel"
  activate
  make new workbook
  paste special on worksheet active sheet
end tell

Однако всякий раз, когда мое приложение вызывает этот скрипт, оно сталкивается с проблемами в песочнице Apple, говоря, что оно не может отправлять события в Microsoft Excel.

Я читал в Интернете, что для того, чтобы получить доступ к отправке событий в Mac OS, вам нужно иметь файл authorlements.plist, связанный с вашим приложением. Как добавить файл authorlements.plist в мое приложение Applescript, чтобы при его запуске можно было отправлять события в Microsoft Excel?

2 ответа

Если вы не продаете приложение и просто используете его для себя, лучше всего отключить "песочницу". Ваше приложение все равно будет работать, щелкнув его правой кнопкой мыши> открыть.

Если у вас уже включена песочница, в вашей структуре приложения уже должен быть файл YOURAPPNAME.entitlements (не в скомпилированном приложении, а в вашем исходном коде), потому что в этом файле должна быть включена песочница.

Я не знаю, Omnis studio, вы можете попробовать использовать XCode вместо этого, который поддерживает файлы разрешений с нуля - даже если вам нужно идти с яблочным скриптом target-c вместо простого яблочного скрипта.

если вам удастся найти этот файл, вам нужно добавить новый ключ / значение, например, для обращения к Excel:

key: "com.apple.security.temporary-exception.apple-events"
value (type array): 
    Item 0 > "com.microsoft.excel"

Но будьте осторожны - если вы хотите остаться в "песочнице", в OSX 10.14 есть новая политика безопасности под названием "Защита целостности безопасности" (SIP) от Apple, где пользователям также необходимо разрешить вашему приложению автоматизировать другие приложения, ознакомьтесь с этой темой: "потому что он не защищен SIP " - ошибка события Apple в OSX Mojave

Чтобы обойти это начало с 10.14, вы также должны добавить новую строку в ваш файл info.plist

key: NSAppleEventsUsageDescription
value: [Some description why you need to use AppleEvents]

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

Это старый пост, но зачем вам создавать такой файл Excel, если это просто столбцы данных, просто экспортируйте файл CSV, который Excel может легко открыть...

Другие вопросы по тегам