Разработка действия
Просто разработать действие Automator. Поскольку действие является загружаемым пакетом, его объем ограничивается, и следовательно объем кода, который необходимо записать, ограничивается. Apple также упрощает путь к разработке действия из-за всех ресурсов, которые это помещает в вашем распоряжении. При создании проекта действия среда разработки XCode предоставляет Вам все необходимые файлы и настройки для создания действия. Просто необходимо выполнить определенные шаги — описанный в этом документе — для достижения конечного продукта.
Шаги для разработки действия должны не обязательно произойти в порядке, данном ниже. Например, можно записать описание действия в любое время, и можно указать свойства Automator в любое время.
Создание проекта действия Automator
Для создания проекта действия Automator запустите приложение XCode и выберите New Project из Меню Файла. Из первого окна Нового Помощника проектного менеджера выберите один из двух проектов действия Automator, в зависимости от Вашего выбора языка:
Действие AppleScript Automator
Какао действие Automator
Сценарий оболочки действие Automator
Рисунок 1 показывает выбор Какао действие Automator.
Завершитесь остающееся окно Нового Помощника проектного менеджера, как обычно — указывают расположение файловой системы для проекта и вводят название проекта. Когда Вы заканчиваете, окно Xcode, подобное тому на рисунке 2, выведено на экран.
Вы станете более знакомыми со многими файлами и обертками файла, выведенными на экран здесь в следующих разделах. Но вот сводка более значительных элементов:
Automator.framework
— Проект автоматически добавляет платформу Automator к проекту.Info.plist
— Информационный список свойств для пакета включает свойства Automator; комментарии, вставленные в элементы значения, обеспечивают полезные подсказки. Посмотрите Указание Свойств Действия для получения дополнительной информации.projectName
.h
и projectName.m
— Проект действия Какао включает заголовок и шаблонные файлы реализации, подготовленные к подклассу AMBundleAction (включая нулевую реализациюrunWithInput:fromAction:error:
).Проект действия AppleScript включает шаблон
main.applescript
файл вместо файлов шаблона Objective-C. Проект действия сценария оболочки включает amain.command
файл вместо этого.main.nib
— Файл пера пакета, частично подготовленный к действию. Посмотрите Построение Пользовательского интерфейса для подробных данных.
Построение пользовательского интерфейса
В браузере проекта XCode дважды щелкнуть main.nib
открыть файл пера действия в Интерфейсном Разработчике. Файл пера содержит Владельца обычного Файла и Первые экземпляры Респондента, но он также содержит два других элемента, определенные для действий:
Пустой объект NSView (известный как представление содержания действия, или просто, представление действия), на котором Вы устанавливаете средства управления, текстовые поля и другие элементы пользовательского интерфейса для установки параметров действия.
Экземпляр класса NSObjectController под названием Параметры. Экземпляр Параметров используется для установления привязки между объектами в пользовательском интерфейсе и экземпляре действия.
Для находящихся в AppleScript действий, Информационный экземпляр AppleScript, что использование AppleScript Studio для содержания имен и обработчиков событий для объектов в файле пера.
Несколько объектов и отношений в main.nib
уже инициализируются для Вас. Например, Владелец Файла установлен в области Custom Class окна Info быть экземпляром класса AMBundleAction (как показано на рисунке 3). (Если Ваш проект для действия AppleScript Automator, Владелец Файла установлен вместо этого в AMAppleScriptAction.) С Владельцем Файла, все еще выбранным при выборе области Connections окна Info, Вы будете видеть что view
выход объекта AMAction был подключен к представлению действия.
Создайте пользовательский интерфейс из действия, как Вы были бы для любого представления в Интерфейсном Разработчике. Однако имейте в виду, что действия, потому что они совместно используют пространство в потоке операций Automator с другими действиями, должны быть компактными, даже минимальными. Поместите только те средства управления, текстовые поля и другие объекты пользовательского интерфейса, которые абсолютно необходимы. И попытайтесь быть консервативными в Вашем использовании вертикального пространства; например, предпочтите всплывающие меню по переключателям для того, чтобы подарить пользователям выбор среди многократных опций. Для больше на инструкциях пользовательского интерфейса для действий, посмотрите Пользовательский интерфейс Действия в Руководстве по проектированию для Действий.
Важная функция действий Automator является Шоу, Когда Выполнено. Эта функция позволяет пользователям потоков операций (в отличие от писателей потоков операций) установить параметры действий, когда они выполняют поток операций как приложение. По умолчанию действия имеют кнопку раскрытия Опций в своем нижнем левом углу, когда включено, представляющем дополнительные средства управления; эти средства управления позволяют писателю потока операций выбирать части представления действия, представленные пользователям, когда выполняется поток операций. Разработчики могут настроить функцию Show When Run; посмотрите Показывают, Когда Выполнено для подробных данных.
Используя палитру какао-Automator
Среда разработки Automator включает палитру Interface Builder с объектами пользовательского интерфейса, разработанными для действий. Эту палитру называют Какао-Automator. Для загрузки этой палитры выберите область Palettes в Интерфейсных предпочтениях Разработчика, нажмите Add и выбор AMPalette.palette
в /Developer/Extras/Palettes
.
Палитра Cocoa-Automator (см. рисунок 4) содержит три специально реализованных всплывающих меню для представления легко конфигурируемых списков приложений, каталогов и файлов пользователям.
Эти списки обеспечивают доступ к стандарту или часто получали доступ к приложениям, папкам и файлам в файловой системе. Например, всплывающее меню Каталогов в действии смотрит что-то как пример на рисунке 5.
Можно также сконфигурировать всплывающие меню так, чтобы пользователи могли определить местоположение элементов кроме стандартных в списке, или (в случае всплывающего меню Каталогов) создают новые элементы.
Для размещения одного из этих всплывающих меню просто перетащите его от палитры до представления действия. Затем для конфигурирования всплывающего меню выберите Show Inspector из меню Tools и выберите область Attributes (рисунок 6). Область Attributes Интерфейсного Разработчика позволяет Вам конфигурировать объект пользовательского интерфейса в различных способах.
Для всплывающих меню Automator (объекты AMPathPopUpButton), специальные опции пути являются следующим:
Позволяет пользователям выбирать или приложения, каталоги, или файлы или любую комбинацию трех типов. Например, если Вы проверяете Каталоги и Файлы, пользователи в состоянии выбрать и каталоги и файлы от всплывающего меню.
Выбор New Paths добавляет Новый элемент у основания всплывающего меню. Во всплывающем меню Каталогов это позволяет пользователям создавать новый каталог с помощью браузера файловой системы; Новый элемент не появляется в других видах всплывающих меню.
Выбор Existing Paths добавляет Другой элемент у основания всплывающего меню. Во всех типах всплывающего меню этот элемент позволяет пользователям выбирать что-либо в браузере файловой системы.
Когда или Новая или Открытая позиция выбрана и Выбрать Panel, поскольку опция Sheet выбрана, действие выводит на экран браузер файловой системы как окно рабочего листа модальный лист, а не как модальное приложением диалоговое окно.
Когда опция Standard Paths выбрана, всплывающее меню имеет следующие элементы, в зависимости от своего типа:
Если это - всплывающее меню Каталогов, стандартные расположения такой как Домой, Рабочий стол, Фильмы, и Изображения включены.
Если это - всплывающее меню Приложений, список элементов включает все приложения в
/Applications
.Если это - всплывающее меню Файлов, ничто не происходит.
Когда опция Path Components выбрана, полный путь текущего выбранного элемента выведен на экран.
То, когда опция Placeholder выбрана, независимо от того, что Вы входите в текстовое поле Placeholder непосредственно под опцией, выведено на экран как первый раскрывающийся элемент. Этот заполнитель обычно является строкой те, которые “Выбирают приложение” или “Никакой выбор”.
- Типы
- Выбрать
- Дисплей
- Показать
Прежде чем всплывающее меню AMPathPopUpButton может должным образом функционировать в представлении действия, необходимо установить привязку между всплывающим меню и свойством параметров действия. Чтобы сделать это, укажите ключ для свойства как атрибут экземпляра Параметров (см. Привязку Установления для процедуры). Наконец, выберите всплывающее меню в пользовательском интерфейсе и затем укажите ключ в области Bindings инспектора, с помощью привязки пути; посмотрите рисунок 7 для примера.
Установление привязки
После построения представления действия установите привязку между объектами в пользовательском интерфейсе и объекте действия. Привязка является технологией Какао, концептуально базируемой в парадигме Контроллера представления Модели. В Контроллере представления Модели объекты в хорошо разработанной программе принимают одну из трех ролей: просмотрите возражает, что существующие данные и получают ввод данных пользователем; объекты модели, содержащие данные и воздействующие на те данные; и контроллер возражает, что добиваются передачи данных между представлением и объектами модели. Механизм привязки автоматически синхронизирует обмен данными между представлением и объектами модели, сокращая потребность в пользовательских объектах контроллера и всем коде «связующего звена», который они обычно влекут за собой. Действия Automator используют привязку для передавания данных между объектами в представлении действия и словаре параметров (или запись), что все действия должны записать пользователей настроек, указывают для действия.
Шаблоны проекта для действий Automator предварительно сконфигурированы для использования привязки вместо целевого действия и механизмов выхода (для Основанных на какао действий) или обработчики событий, указанные в области AppleScript Интерфейсного Разработчика для находящихся в AppleScript действий. Если Вы предпочитаете, можно использовать эти механизмы вместе с параметрами обновления “платформы Automator” API для обновления параметров действия вручную. Для получения информации об этом подходе посмотрите Обновление Несвязанные Параметры (для находящихся в AppleScript действий) или Обновление Параметров Действия (для действий Objective C).
Следующие шаги суммируют то, что необходимо сделать для установления привязки действия в Интерфейсном Разработчике. Для полного описания технологии привязки Какао посмотрите, что Привязка Какао Программирует Темы.
Выберите экземпляр Параметров в окне файла пера и выберите область Attributes окна Info. В маркированных «Ключах» таблицы добавляют ключи для каждого объекта пользовательского интерфейса, установка которого или оценивает Вас, должен получить доступ. Посмотрите рисунок 8 для примера.
Ключи, которые Вы указываете здесь, используются в другом месте в действии для идентификации средств управления действия. Необходимо поэтому использовать те же строки, которые Вы использовали для обязательных ключей в следующих местах в проекте действия:
Как ключи для
AMDefaultParameters
свойство Automator. (AMDefaultParameters
свойство указывает начальные установки действия; посмотрите Указание Свойств Действия и Ссылки Свойства Действия Automator для подробных данных.) СоответствиеAMDefaultParameters
запись должна быть добавлена для каждого ключа, используемого с привязкой.Как имена переменных экземпляра выхода и методов доступа в действиях Objective C
Поскольку ключи к записи параметров передали в находящееся в AppleScript действие в
on run
обработчик; посмотрите Структуру на Обработчике команды выполнения для получения дополнительной информации.Поскольку переменные окружения установлены для действия сценария оболочки; посмотрите Действия Сценария оболочки Создания для подробных данных.
С экземпляром Параметров, все еще выбранным, выберите область Bindings окна Info и разверните подобласть «contentObject». Установите, “Связывают, чтобы” открыть элемент Владельцу Файла и войти
parameters
в поле «Model Key Path».Ключевой путь параметров относится к
parameters
свойство, определенное классом AMBundleAction — т.е. словарь или запись, используемая для получения пользователей настроек, делает в представлении действия.Для каждого объекта пользовательского интерфейса действия установите привязку с надлежащим ключом параметров. Например, рисунок 9 показывает привязку для всплывающего меню.
Привязка варьируется типом объекта пользовательского интерфейса. Например, всплывающие меню обычно отделываются от индекса элемента (
selectedIndex
), флажки имеют булевскую переменнуюvalue
, и текстовые поля имеют строкуvalue
.
Когда Вы закончены с пользовательским интерфейсом действия, сохранили файл пера и возвращаетесь к проекту XCode.
Указание свойств действия
Приложение Automator использует специальные свойства в информационном списке свойств действия (Info.plist
) для получения различных данных, этому нужно для представления и обработки действия. Эта информация включает:
Свойства Automator имеют префиксный «AM». Шаблон проекта для действий включает почти все свойства, в которых Вы нуждаетесь (или, возможно, нуждается) указать. Как показано на рисунке 10, шаблон обеспечивает полезные комментарии как заполнителей для значений ключа. В создании действия необходимо предоставить действительные значения для этих ключей. Ссылка Свойства Действия Automator описывает свойства Automator, включая их цель, типы значения и представительные значения.
Поскольку значения некоторых свойств Automator появляются в пользовательском интерфейсе, необходимо включать переводы их в Infoplist.strings
файл для каждой локализации действия Вы обеспечиваете. Посмотрите Интернационализацию Действия для получения дополнительной информации.
В дополнение к свойствам, которые являются определенными для Automator, действие Info.plist
файл содержит свойства, которые характерны для всех пакетов, включая пакеты действия, а также приложения. Значения большинства этих универсальных свойств пакета предоставляются автоматически при создании проекта. Однако необходимо указать значение CFBundleIdentifier
свойство. Automator использует это свойство для нахождения действия и его ресурсов. Идентификатор должен быть уникальным, и должен использовать стандартный формат:
com.
CompanyName.Automator.
ActionIdentifier
Например, если именем Вашей компании является Высшая точка, и Ваше действие называют, Находят Фу Итэмса, подходящее CFBundleIdentifier
был бы com.Acme.Automator.FindFooItems
.
Шаблоны проекта Automator задают два свойства, AMName
и часть идентификатора действия CFBundleIdentifier
, с текстом заполнителя. При создании проекта именем проекта заменяют заполнителей. (Если название проекта содержит пробелы, XCode заменяет символом подчеркивания пробелы в идентификаторе пакета.)
Отредактировать Info.plist
вручную в окне Xcode, просто дважды щелкните по имени файла в окне проекта. Если требуется всегда открыться Info.plist
файл в различном редакторе для списков свойств, таких как Редактор Списка свойств приложение или BBEdit, использует окно Finder's Get Info для установки приложения по умолчанию для файлов с расширением .plist
. Тогда в XCode, используйте команду Open with Finder контекстного меню. Однако предпочтительный инструмент для редактирования свойств Automator должен использовать встроенное подручное меню Automator, представленное в Xcode 2.1.
Используя подручное меню Automator
Можно отредактировать информационный список свойств как текстовый файл в XCode. Просто дважды щелкните Info.plist
файл в окне проекта и файл откроются в отдельном окне или области. Однако синтаксические ошибки могут часто происходить при редактировании списка свойств вручную. Вместо этого можно использовать подручное меню Automator, делающее ввод значений свойств проще и менее восприимчивым к ошибке.
Этот инспектор встроен в XCode для всех типов проектов Automator. Для доступа к инспектору сделайте следующее:
Выберите Edit Active Target 'Target' из Меню проектов.
Щелкните по вкладке Properties.
Более низкая часть инспектора, обычно резервирующегося для указания типов документов, здесь используется для Automator-специфичных свойств. Инспектор повреждает свойства в логические наборы; первый набор показывает свойства General (рисунок 11).
В представлении инспектора, таком как то на рисунке 11, дважды щелкните по ячейке под Значением для открытия ячейки для ввода значения. Если, например, Вы хотите активировать опцию Show When Run для действия, щелкните по надлежащим флажкам.
Если Вы представите всплывающее меню Набора, то Вы будете видеть другие логические наборы свойств Automator. Рисунок 12 показывает набор для AMAccepts
свойство (Ввод).
Когда свойство является массивом, как с AMAccepts
, щелкните по знаку «плюс» в левом нижнем углу инспектора для открытия нового поля для редактирования. Введите значение (в этом случае идентификатор типа). Для удаления элемента из массива выберите его и щелкните по знаку «минус».
Запись описания действия
Маленькая, но важная часть разработки действия пишет описание действия. Automator выводит на экран описание это его нижнее левое представление каждый раз, когда пользователь выбирает действие. Описание кратко описывает то, что действие делает и говорит пользователям что-либо еще, что они должны знать о действии. Рисунок 13 показывает то, на что похоже типичное описание.
Поскольку описание вписывается в относительно небольшую площадь окна Automator, необходимо сделать его максимально кратким и кратким. Идеально пользователю не придется прокрутить представление описания для наблюдения всего текста.
Описание имеет несколько частей, каждая из которых Вы указываете через свойство Automator в информационном списке свойств пакета (Info.plist
):
Значок. Изображение TIFF на 32 x 32 пикселя выведено на экран в верхнем левом углу описания. Это - значок приложения что
AMIconName
свойство указывает (см. Ключи Свойства и Значения).Заголовок. Строка, которую Вы указываете для
AMName
свойство (см. Ключи Свойства и Значения).Сводка. Предложение или два непосредственно под заголовком тот кратко утверждает то, что делает действие.
Ввод и Результат. Состояния типы данных, которые действие принимает и обеспечивает. Automator вводит значения по умолчанию для этих разделов, если Вы ничего не указываете.
Опции. Суммирует параметры конфигурации в пользовательском интерфейсе действия.
Требует. Описывает любое требование для действия для работы должным образом — например, Safari должен отображать веб-страницу.
Предупреждение. Предупреждает пользователя любого вероятного последствия действия — например, если это удалит календарь.
Примечание. Дополнительная информация подарков, которая не так критически важна как предупреждение.
Связанные действия. Указывает действия, связанные с этим — например, действие Изображения Импорта могло бы упомянуть действие Изображения Экспорта.
Значок описания, заголовок, сводка, ввод и разделы результата требуются или строго рекомендуются. Все упомянутые выше свойства, за исключением значка и заголовка, являются подсвойствами специфичного для описания AMDescription
свойство. AMDescription
пример в Перечислении 1 показывает подсвойства, указанные для Отправить описания Приветствия Дня рождения, изображенного на рисунке 13.
Свойства Listing 1 AMDescription для Отправляют описание Поздравлений Дня рождения
<key>AMDescription</key> |
<dict> |
<key>AMDInput</key> |
<string>Address Book entries from previous action.</string> |
<key>AMDOptions</key> |
<string>Birthday message. Choice of picture. |
Randomly chosen picture. </string> |
<key>AMDSummary</key> |
<string>This action sends an email birthday greeting, with a |
picture, to each of the Address Book entries.</string> |
</dict> |
Посмотрите Ключи Свойства и Значения для получения дополнительной информации о AMDescription
ключи и значения.
Запись кода действия
Самый важный шаг в создании действия пишет Objective C или код AppleScript (или Objective C и код AppleScript), который реализует логику для Вашего действия. Шаблон проекта для действий Automator дает Вам шаблонные файлы для реализации действия:
projectName
.h
и projectName.m
файлы для действий Objective Cmain.command
для действий сценария оболочки
Шаблонные файлы заполняют как можно больше требуемой структуры. Заголовочный файл Objective C, например, имеет необходимый импорт платформы и @interface
наследование показа объявления от AMBundleAction. Реализация Objective C включает нулевую реализацию метода, который все действия должны реализовать, runWithInput:fromAction:error:
(см. рисунок 14). main.applescript
файл, с другой стороны, имеет скелетную структуру для on run
обработчик команды, который должны реализовать все находящиеся в AppleScript действия.
Посмотрите Реализацию Действия AppleScript и Реализацию Действия Objective C для требований, предложений и примеров, связанных с реализацией действия Automator. Для инструкций по реализации действий сценария оболочки посмотрите Запись Сценария.
Интернационализация действия
Большинство полируемых приложений, принесенных к функции рынка многократные локализации. Эти приложения не только включают локализации — т.е. переводы и другие специфичные для локали модификации текста, изображений и других ресурсов — но интернационализировались для создания тех локализаций сразу доступными. Интернационализация включает много методов, зависящих от “предпочтительные языки” пользовательская настройка и архитектура системы для доступа к ресурсам в пакетах. Загружаемые пакеты (которые, конечно, являются пакетами так же, как приложениями,) зависят от тех же механизмов для интернационализации.
Следующие разделы суммируют то, что необходимо сделать для интернационализации действий. Для полного изображения посмотрите Руководство по Интернационализации и Локализации для общего описания интернационализации и Руководство по Интернационализации и Локализации для обсуждения, которое является определенным для Какао.
Локализованные строки
Если Ваше действие программно генерирует строки, и Вы хотите выведенные на экран локализованные версии, необходимо интернационализировать программное обеспечение с помощью методов доступа, отличающихся для действий Objective C и основанных на сценарии действий.
И Objective C и действия AppleScript требуют, чтобы Вы создали для каждой локализации строковый файл, который является файлом с расширением .strings
. (Стандартное, или имя по умолчанию для строкового файла Localizable.strings
.) Каждая запись в строковом файле содержит ключ и значение; ключ является строкой на языке разработки, и значение является переведенной строкой. Запись может также иметь комментарий для помощи переводчикам. Используйте точку с запятой для завершения записи. Вот несколько примеров:
/* Title of alert panel which brings up a warning about |
saving over the same document */ |
"Are you sure you want to overwrite the document?" = |
“Souhaitez-vous vraiment écraser le document ?"; |
/* Encoding pop-up entry indicating automatic choice of encoding */ |
"Automatic" = "Automatique"; |
/* Button choice allowing user to cancel. */ |
"Cancel" = "Annuler"; |
Когда Вы завершили a Localizable.strings
файл для локализации, необходимо интернационализировать его так же, как Вы были бы любой другой язык - или специфичный для локали файл ресурсов пакета. Посмотрите Файлы ресурсов Интернационализации для сводки.
Для кода Objective C используйте NSLocalizedString
макрос или один из другого NSLocalizedString...
макросы для запроса локализации, подходящей для текущей пользовательской настройки. Перечисление 2 дает пример, показывающий использование NSLocalizedString
в сочетании с NSString stringWithFormat:
метод.
Перечисление 2 Используя NSLocalizedString в коде Objective C
- (NSString *)displayName |
{ |
int cnt = [pdfView pageCount]; |
NSString *name; |
if (cnt == 1) { |
NSString *format = NSLocalizedString(@"%@ (1 page)", |
@"Window title for a document with a single page"); |
name = [NSString stringWithFormat:format, fileName]; |
} else { |
NSString *format = NSLocalizedString(@"%@ (%d pages)", |
@"Window title for a document with multiple pages"); |
name = [NSString stringWithFormat:format, fileName, cnt]; |
} |
return name; |
} |
Поскольку AppleScript пишет сценарий команды, эквивалентной NSLocalizedString
localized string
. Один хороший подход должен иметь локальную подпрограмму, берущую строку для локализации в качестве параметра и использующую localized string
команда на нем, как в Перечислении 3.
Обработчик Сценария перечисления 3 для локализации строк
on localized_string(key_string) |
return localized string key_string in bundle with identifier "com.apple.Automator.myAction" |
end localized_string |
В другом месте в main.applescript
и в других сценариях для действия, вызовите эту подпрограмму, когда необходимо будет получить строку в текущей локализации:
if the calendar_name is my localized_string("No Calendars") then error my localized_string("The copy of iCal on this computer contains no calendars to clear.") |
Локализация свойств Automator
Стандартный вариант строкового файла для проектов Infoplist.strings
. В этом файле Вы присваиваете локализованные строки (т.е. переводы) к ключам, появляющимся в Info.plist
файл. Для Automator это включает не только свойства верхнего уровня такой как AMName
но подсвойства свойств Automator. Например, следующая выборка от Infoplist.strings
файл для действия Изображений Обрезки:
AMName = "Crop Images"; |
ApplyButton = "Add"; |
IgnoreButton = "Don't Add"; |
Message = "This action will change the image files passed into it. Would you like to add a Copy Files action so that the copies are changed and your originals are preserved?"; |
Пары ключ/значение в этом примере включают не только локализованное англичанами значение для AMName
свойство, но локализованные строки для подсвойств AMWarning
свойство.
Интернационализация файлов ресурсов
Необходимо интернационализировать любой файл в проекте действия, содержащем данные, которые являются определенными для языка или локали. Эти файлы включают:
Интернационализация файла ресурсов просто влечет за собой присвоение языка или локали к файлу. Когда Вы разрабатываете проект действия, XCode автоматически помещает ресурс в подкаталог локализации пакета Resources
каталог. Подкаталоги локализации имеют расширение .lproj (например, French.lproj
).
Для интернационализации файла ресурсов сделайте следующее:
Тестирование, отлаживая и устанавливая действие
Проект действия автоматически устанавливается в XCode так, чтобы при выборе Команд выполнения или Команд отладки XCode запустил действие Automator и добавил действие к набору действий, загруженных Automator. Чтобы видеть, как это сделано, выберите Automator в Исполнимых программах умная группа и выберите Edit Active Executable из Меню проектов. Как Вы видите в области General инспектора, “Исполнимый путь” значение установлен в /Applications/Automator.app
. Выберите область Arguments инспектора и отметьте что -action
разовый запуском параметр был установлен в Ваше действие (рисунок 15).
Тестирование и отладка стратегий
Чтобы протестировать Ваше действие, создайте и выполнить проект действия (Сборка> Сборка и Выполнение). Поскольку Automator разрабатывает проект, который он выполняет amlint
утилита в фазе сборки. amlint
инструмент выполняет проверки целостности, чтобы удостовериться, что должным образом создается действие; например, это проверяет, что были установлены все требуемые свойства Automator. Это интегрирует свои предупреждающие сообщения с другими сообщениями в окне Xcode Build Results. Несмотря на то, что amlint не генерирует сообщения об ошибках (таким образом, останавливающий сборку), необходимо исследовать и решить все проблемы, о которых сообщают, перед созданием версии развертывания из действия. Узнать больше о amlint
, см. страницу справочника для него (к которому можно получить доступ из Меню справки XCode).
Когда Automator запускается, необходимо создать поток операций, содержащий действие. Выполните поток операций и наблюдайте, как Ваше действие выполняет. Для получения лучших данных от тестирования рассмотрите следующие шаги:
Используйте действие Результатов Представления для наблюдения вывода предшествующих действий.
Используйте Диалоговое действие Подтверждения, чтобы приостановить или отменить выполнение потока операций.
Добавьте одно каждое из вышеупомянутых двух действий между каждым действием.
Если действие основывается на AppleScript, можно использовать Выполнение действие AppleScript для тестирования Вашего on run
обработчик команды, поскольку Вы пишете его.
Если Ваше действие основывается на реализации Objective C, можно отладить действие так же, как Вы были бы любой другой двоичный файл Objective C. Просто установите точку останова в XCode. Когда Ваше действие будет выполнено в Automator, точка останова инициирует в gdb
. Можно также отладить действия AppleScript с помощью специального графического отладчика, задающегося для проектов действия AppleScript. Этот отладчик смотрит и ведет себя очень как графический отладчик для gdb
делает. Это останавливается в точках останова, выводит на экран переменные и позволяет Вам продвинуться через сценарий. Переменные включают глобальные переменные, локальные переменные и свойства. Рисунок 16 показывает отладчик AppleScript в действии.
Для отладки действий AppleScript можно также вставить log
или display dialog
операторы в коде. Если оператор журнала в приложении tell
блок, используйте tell me to log
выражение вместо простого log
.
Установка действий
Когда Ваше действие будет полностью отлажено и протестировано, создайте версию развертывания пакета (использующий надлежащую оптимизацию). Тогда создайте пакет установки для действия (или добавьте действие к пакету установки своего приложения). Установщик должен скопировать действие в /Library/Automator
или ~/Library/Automator
В зависимости от того, должен ли доступ к действию быть в масштабе всей системы или ограничен пользователем установки.
Если действие использует функции того приложения, вместо того, чтобы установить Ваше действие отдельно, можно поместить его в пакете приложения, особенно. Когда Automator ищет действия для отображения, это смотрит в зарегистрированных приложениях также в стандартных каталогах Automator. Преимущество упаковки Ваших действий в приложении состоит в том, что Вы не должны создавать отдельный пакет установки для установки действий. Для установки действий пользователи должны только перетащить приложение к стандартному расположению.
Пакеты действия должны быть сохранены в обертке приложения в Contents/Library/Automator
. Таким образом, если Ваше действие MyAction.action
и Ваше приложение MyApp.app
, путь в приложении был бы:
MyApp.app/Contents/Library/Automator/MyAction.action |
Можно или вручную скопировать действие в это расположение (после создания необходимых подкаталогов), или у Вас есть XCode, копируют его с помощью фазы сборки Файлов Копии. Если Вы копируете действие в комплект приложений, но приложение уже установлено в системе, необходимо заставить Launch Services распознавать, что приложение имеет новое содержание для регистрации (т.е. новое действие) путем изменения даты модификации приложения. Можно сделать это путем ввода touch
команда в Терминальном приложении.
$> sudo touch /Applications/MyApp.app |
Или можно переименовать приложение в Средстве поиска к чему-то еще, возвратить его к настоящему имени, и затем запустить приложение один раз.
Часто задаваемые вопросы об отладке действий Automator
Вопрос: Как я могу определить, какую версию действия Automator использует, если многократные версии моего приложения (возможно содержащий многократные версии действия) установлены (локально или в моей сети)?
Ответ: нет никакого способа указать, какая версия Вашего приложения Automator должен получить действия от того, если установлены многократные версии приложения. Однако существует несколько способов определить версию действия, фактически использующегося:
В OS X v10.5 при выборе действия в списке Действия Вы видите его версию в представлении описания. Вы можете также Щелчок управления, действие в потоке операций просматривает и выбирает Show in Finder для наблюдения, где действие расположено, так, чтобы можно было исследовать его непосредственно.
В OS X v10.4, Automator не показывает, что версия действия в описании просматривает или позволяет Вам показывать действие в Средстве поиска. Возможная работа вокруг должна удалить любые нежелательные действия, если та опция доступна Вам, так, чтобы только требуемая версия действия была доступна.
Вопрос: Как я могу просмотреть журнал или сообщения об ошибках?
Ответ: при разработке действия сценария оболочки и выходов действия с ненулевым кодом состояния, что-нибудь, во что действие записало stderr
обнаружится в журнале Automator, как описано в Отладке и Тестировании Действий Сценария оболочки.
Если Вы разрабатываете действие AppleScript, вывод операторов AppleScript такой как log
или tell me to log
появитесь в Консольном журнале (не в журнале Automator).
Если Вы разрабатываете действие Какао, выведенное от NSLog
операторы также появятся в Консольном журнале.