10.4 Изменения

Эта статья описывает изменения в AppleScript и связанных инструментах в Mac OS X v10.4 и его обновления.

Mac OS X v10.4 - AppleScript 1.10

AppleScript 1.10 включен с версией 10.4 Mac OS X и требует версии 10.4 Mac OS X или позже. Это содержит много новых функций и улучшений, и исправляет проблемы, найденные с AppleScript 1.9.3 и более ранними версиями.

AppleScript 1.10 может использовать сценарии, разработанные для любой версии AppleScript от 1,1 до 1.9.3, любое дополнение сценариев, создаваемое для AppleScript 1.5 или позже для Mac OS X и любого scriptable приложения для Mac OS 7.1 или позже.

Сценарий, создаваемый с AppleScript 1.10, может использоваться любой версией AppleScript назад к версии 1.1, если это не использует функции AppleScript, пишущий сценарий дополнений или scriptable приложений, которые недоступны в той версии.

Специальные замечания

  • Сценарии, сравнивающие номера версий AppleScript с помощью сравнений строк, должны будут быть изменены для работы правильно с новым номером версии AppleScript. A considering numeric strings оператор должен быть добавлен перед сравнением строк так, чтобы строка «1.10» была больше, чем строка «1.9.3».

  • Должны будут быть изменены сценарии, сравнивающие номера версий путем принуждения класса версии вещественного числа и затем выполнения числовых сравнений. Приведение от version к real был изменен, чтобы позволить вторым и третьим частям номера версии быть 0.. 15 вместо 0.. 9. В результате версия 1.2.3 теперь принудит к вещественному числу 1.0203. Ранее, это принудило бы к вещественному числу 1.23.

  • Сценарии, сравнивающие номера версий AppleScript, и которые должны работать на AppleScript 1.10, а также более ранних версиях AppleScript, должны сделать числовые сравнения с помощью номера версии Гештальта. Номер версии Гештальта может быть получен с помощью system attribute "ascv" команда.

  • Конкатенация строк теперь использует более богатые из этих двух операндов. Если любой операнд будет Unicode, то результатом будет Unicode.

  • path to me команда теперь возвращает корректный результат для скомпилированных сценариев, включая тех, которые выполняются с помощью run script команда.

  • Начинаясь в версии 10.4 Mac OS X, mount volume если сервер указан с помощью имени сервера AppleTalk, команда больше не может монтировать Mac OS 9 объемов сервера. Имя сервера TCP или IP-адрес должны использоваться вместо этого.

  • Не использовать sudo(8) с administrator privileges параметр do shell script команда. Вследствие ошибки, если sudo думает, что этому нужен пароль, это будет запрашивать его на несуществующем терминале и ожидать навсегда ответа, заставляя сценарий зависнуть. Это может повредить существующие сценарии.

  • do shell script команда теперь выполняет сценарий оболочки как seteuid-корень, не фактически корень. Это создает определенные различия; например, perl откажется принимать -e опции, когда seteuid-корень.

  • Коды ошибки, возвращенные do shell script команда изменилась.

  • Если with icon параметр к display dialog команда указывает значок, не существующий, об ошибке теперь сообщают. Ранее, ошибка была проигнорирована.

  • Возвращаемое значение от list disks команда является теперь списком строк Unicode. Ранее, это был список простых строк.

  • Получение count из paragraphs или text items из пустой строки Unicode теперь возвращается 1 вместо 0.

  • Строки, содержащие только плюс или знак «минус», больше не могут принуждаться к числу.

  • Неявно закодированные типы текстов, typeText, typeCString, и typePString, все осуждаются с AppleScript 1.9.2, так как они неспособны к представлению международных символов и могут быть даны иное толкование непредсказуемыми способами. Кроме того, typeCString и typePString не поддерживайте полный спектр текстовых приведений, и будет удален полностью в будущем выпуске. typeStyledText и typeIntlText, в то время как у них есть явные кодировки, не рекомендуются, так как они неспособны к представлению символов только для Unicode как венгерский, арабский или тайский язык. Рекомендуемый тип текста typeUnicodeText.

Разработчик отмечает

  • Новый API Open Scripting Architecture (OSA) была добавлена, который позволяет Вам получить словарь сценариев приложения как sdef (см. ASDebugging.h и sdef(5)). Если целевое приложение не имеет истины sdef, но действительно имеет 'aete' или Сгенерированный какао словарь, это переведет это, таким образом, API будет работать над любым scriptable приложением. [3657719]

    OSAError OSACopyScriptingDefinition(const FSRef *ref, SInt32 modeFlags, CFDataRef *sdef);

    Описания параметра

    • ref FSRef к файлу приложения или пакету.

    • modeFlags Нет никаких флагов, в настоящее время определяемых; передача 0.

    • sdef Если результатом является noErr, CFDataRef, содержащий sdef XML, который Вы ответственны за выпуск; иначе неопределенный.

    Обсуждение

    Для обеспечения sdef в приложении поместите sdef в папку Resources пакета и добавьте ключ OSAScriptingDefinition к Вашему Info.plist со значением имени sdef (например, MyApplication.sdef).

    Известные ошибки и ограничения

    Динамическая генерация sdefs не поддерживается. sdefs в однофайловых приложениях не поддерживаются.

  • Катастрофический отказ, произошедший при вызове OSAScriptError() с kOSAErrorApp селектор был фиксирован. [3547609]

  • osascript инструмент командной строки теперь передает kOSAModeCompileIntoContext флаг режима при компиляции текстового сценария. [3684436]

  • osascript инструмент командной строки может теперь вызвать сценарии, берущие параметры. Любые параметры после сценария будут переданы как список строк к прямому параметру обработчика выполнения. [3165225]

Новые функции и улучшения

AppleScript

  • Новый атрибут Рассмотрения/Игнорирования был добавлен что сравнения строк влияния. numeric strings атрибут указывает, что числовые подстроки должны быть сопоставлены их числовым значением. Например, “версия 1.9” является меньше, чем «версия 1.10». [3614412]

  • Называют новую строковую константу quote был добавлен, чье значение "\"". [3618573]

  • Конкатенация строк теперь использует более богатые из этих двух операндов. Если любой операнд будет Unicode, то результатом будет Unicode. [3375227]

  • date класс теперь имеет hours, minutes, и seconds свойства. hours свойство всегда использует 24-часовые часы. [3516702]

  • month свойство date класс может теперь быть установлен в целое число. [3525546]

  • weekday константы могут теперь быть принуждены к числам. Sunday 1. [3639194]

  • Приведение от version к real был изменен, чтобы позволить вторым и третьим частям номера версии быть 0.. 15 вместо 0.. 9. В результате версия 1.2.3 теперь принудит к вещественному числу 1.0203. Ранее, это принудило бы к вещественному числу 1.23. [3621631]

  • A tell application "AppName" оператор может теперь использовать приложение short name (CFBundleName), если в настоящее время работает приложение. [3655554]

  • Если приложение сценария (апплет) встретится с ошибкой, то кнопка Edit в ошибочном диалоговом окне теперь откроет апплет в редакторе сценариев по умолчанию. Редактор сценариев по умолчанию может быть установлен с помощью нового приложения Утилиты AppleScript. [3084519]

  • Если апплет будет иметь пользовательскую экранную заставку, то экранная заставка будет теперь выведена на экран, когда пользователь выберет пункт меню «About appletName». Ранее, универсальный апплет О Поле был выведен на экран. [3537429]

  • Если связанному апплету сохранили пользовательскую экранную заставку в Contents/Resources/description.rtfd/TXT.rtf, та экранная заставка будет выведена на экран вместо экранной заставки, сохраненной в пакете 'TEXT' и 'styl' ресурсы. Обратите внимание на то, что нетекстовые экранные заставки в настоящее время не поддерживаются. [3545405]

  • Связанные апплеты теперь выводят на экран локализованные меню и диалоговые окна. [3847125] [3933933]

  • Диалоговые окна экранной заставки апплета и ошибочные диалоговые окна теперь соответствуют Инструкциям по Интерфейсу пользователя Воды. [3545405] [3535392]

  • Апплет О Поле был обновлен. [2632525]

Стандартные дополнения

  • with prompt и with title параметры к choose application команда теперь поддерживает текст Unicode. [3526680]

  • choose application диалоговое окно теперь помнит ширину столбцов. [2680232]

  • choose file и choose folder команды теперь имеют a showing package contents параметр, указывающий, должны ли пакеты быть обработаны как папки. Значение по умолчанию является ложью. [3616391]

  • of type параметр к choose file команда теперь принимает или список типов файлов или список идентификаторов типов. [3226364]

  • choose from list команда теперь имеет a with title параметр, указывающий заголовок диалогового окна. По умолчанию диалоговое окно не имеет заголовка. [3722157]

  • choose from list команда теперь поддерживает текст Unicode. [3318667]

  • choose from list команда теперь поддерживает долгие подсказки и многострочные подсказки. [2641867]

  • choose from list диалоговое окно теперь позволяет текстовому элементу быть выбранным путем ввода первых нескольких символов его имени. [3497349]

  • choose from list диалоговое окно теперь поддерживает полный доступ клавиатуры. [2748218]

  • Новое choose remote application команда была добавлена, который позволяет пользователю выбрать запущенное приложение на удаленной машине или на локальной машине. [2763939]

  • choose URL команда теперь поддерживает файловые серверы CIFS. [3444824]

  • Новое display alert команда была добавлена, который выводит на экран стандартное предупредительное диалоговое окно, соответствующее Инструкциям по Интерфейсу пользователя Воды. [3580135] Обратите внимание на то, что стандартные предупредительные диалоговые окна имеют следующие ограничения:

    • Кнопка по умолчанию требуется. Самая правая кнопка будет кнопкой по умолчанию, если пользователь не укажет иначе использование default button параметр.

    • Кнопка отмены не может совпасть с кнопкой по умолчанию.

  • display dialog команда теперь имеет a cancel button параметр, указывающий имя или число кнопки отмены. [3422345]

  • display dialog команда теперь имеет a hidden answer параметр, указывающий, должен ли доступный для редактирования текст быть выведен на экран как маркеры. Значение по умолчанию является ложью. [1622240]

  • display dialog команда теперь имеет a with title параметр, указывающий заголовок диалогового окна. По умолчанию диалоговое окно не имеет заголовка. [3601825]

  • default answer параметр к display dialog команда теперь поддерживает текст Unicode и переводы строки. [3332444] [3316708]

  • with icon параметр к display dialog команда теперь принимает псевдоним или ссылку на файл на a .icns файл. [3437405]

  • display dialog диалоговое окно теперь поддерживает полный доступ клавиатуры. [3272416]

  • display dialog диалоговое окно теперь использует значки Aqua для note, caution, и stop. [3437405]

  • display dialog диалоговое окно теперь соответствует Инструкциям по Интерфейсу пользователя Воды. [3438825]

  • do shell script команда теперь выводит на экран диалог аутентификации Mac OS X для получения прав администратора. [3004723]

  • do shell script команда теперь имеет a user name параметр, указывающий учетную запись администратора. Этот параметр может использоваться вместе с password параметр и administrator privileges параметр для выполнения команд как администратор, не выводя на экран диалог аутентификации. [3004723]

  • info for команда теперь имеет a size параметр, указывающий, должен ли быть возвращен размер элемента. Значение по умолчанию является истиной. [3566020]

  • info for команда теперь возвращается type identifier для файлов. [3226360]

  • info for команда теперь возвращается short name (CFBundleName) для приложений. [3655608]

  • info for команда теперь возвращается busy status для пакетов. Если пакет отмечен как неполный (kExtendedFlagObjectIsBusy), состояние занятости установлено в истину. [3675978]

  • info for команда теперь устанавливает busy status для несвязанных файлов к истине, если или файл отмечен как открытый (kioFlAttribFileOpenBit) или файл, отмечен как неполный (kExtendedFlagObjectIsBusy). [3976012]

  • list disks команда теперь поддерживает дисковые имена, содержащие символы Unicode. Возвращаемое значение от list disks команда является теперь списком строк Unicode. Ранее, это был список простых строк. [3513241]

  • Новое localized string команда была добавлена, который возвращает локализованную строку для указанного ключа. [2857256]

  • path to команда теперь имеет папку, постоянную для Automator workflows folder. [3748836]

  • path to me команда теперь возвращает корректный результат для скомпилированных сценариев, включая тех, которые выполняются с помощью run script команда. [3634573]

  • Новое path to resource команда была добавлена, который возвращает псевдоним указанному ресурсу. [3177652]

  • say команда теперь принимает текст Unicode и числа как прямой параметр и как displaying параметр. [3380562]

  • Новое system info команда была добавлена, который возвращает рекордное, содержащее информацию о системе. [3611016]

Исправления ошибок

AppleScript

  • Строки, содержащие только плюс или знак «минус», больше не могут принуждаться к числу. [2604425] [3759051]

  • Классы числового значения, класс перечисляемого значения (typeEnumerated), и тип оценивает класс (typeType) может теперь быть принужден к и из текста Unicode и стилизованного текста. [3333079]

  • Тип Модуля оценивает классы (например, miles, gallons) может теперь быть принужден к и из текста Unicode. [3567987]

  • Класс версии (typeVersion) может теперь быть принужден к тексту Unicode. [3333229]

  • Простой текст (typeText) может теперь быть принужден к стилизованному тексту (typeStyledText). [3333079]

  • Приведение от typeFileURL возразить спецификатору было добавлено. [3244564]

  • Принуждение спецификации файла (typeFSS) к объектному спецификатору теперь работает правильно на имена файлов, которые более длительны, чем 31 символ. [3078972]

  • Если псевдоним не мог бы быть разрешен, принуждение псевдонима к объектному спецификатору отказало бы при определенных обстоятельствах. Это было фиксировано. [3556365]

  • Расстояние и преобразования веса теперь более точны. [3627006]

  • "file://localhost" as URL больше не вызывает катастрофический отказ. [3580636]

  • Получение первого слова пустой строки Unicode больше не вызывает катастрофический отказ. [3619870]

  • Получение произвольного элемента текстового использования Unicode some (например, some word of theUnicodeText) теперь приводит к более случайным результатам. [3479349]

  • Получение count из несуществующего элемента текста Unicode (например, count files of theUnicodeText) теперь возвраты 0. Ранее, это возвратило число символов. [3735260]

  • Получение count из paragraphs или text items из пустой строки Unicode теперь возвращается 1 вместо 0. [3978194]

  • Была решена проблема, заставившая некоторые стилизованные текстовые сравнения перестать работать, когда основной язык был установлен в японский язык. [3528969]

  • tell application "AppName" будет теперь искать приложение Mac OS X по имени AppName.app перед поиском Классического приложения под названием AppName. Ранее, Классическое приложение было сочтено первым. [2868512]

  • Долгие имена приложений больше не являются усеченными, когда используется в a tell оператор. [2854838] [3736065]

  • Долгие имена приложений больше не являются усеченными в, “Где xxx?” диалоговое окно. [3874872]

  • Длинный объем/папка/имена файлов больше не вызывает ошибки. [3625871]

  • Получение POSIX path из строки пути, которая уже является POSIX теперь, возвращает корректные результаты. [3405197]

  • Приложения Какао Scriptable, содержащие ресурсы Менеджера ресурсов, но не содержащие 'aete' ресурс, теперь распознаны как scriptable. [3553719]

  • Если a with timeout оператор указывает тайм-аут больше чем 8 947 848 секунд, тайм-аут будет установлен в 8 947 848 секунд. Ранее, об ошибке сообщили. [3570429]

  • Была решена проблема компиляции, заставившая последний знак улучшенного приложения спецификация URL быть удаленным. [3577364]

  • Когда основной язык будет установлен в японский язык, символы наклонной черты влево и символы знака Яня теперь скомпилируют правильно. [3765766]

  • '¬', '÷', '≠', '≤', и '≥' когда основной язык будет установлен в японский язык, корейский язык или китайский язык, символы теперь скомпилируют правильно. [3427926] [3758459] [3828128]

  • Связанные апплеты создаваемое использование AppleScript 1.9.x всегда, кажется, называют «апплетом», когда предназначено от удаленной машины. Это было фиксировано для связанных апплетов, создаваемых с AppleScript 1.10 и позже. [3625938]

  • Связанные апплеты создаваемое использование AppleScript 1.9.x ошибочно выводят на экран Открытое во флажке Classic Environment в окне Finder's Get Info. Это было фиксировано для связанных апплетов, создаваемых с AppleScript 1.10 и позже. [3560457]

  • Размер внутренней таблицы символов был увеличен, который позволяет большим сценариям быть скомпилированными. [3465382]

  • Размер внутреннего стека этапа выполнения был увеличен, который позволяет большим статическим спискам создаваться. [3612848]

  • Форматирование по умолчанию теперь локализуемо. [3381966]

  • Ссылки, форматирующие категорию, больше не используются. [3394917]

  • Деление 0 в a try блок в a repeat блокируйте больше не вызывает подвешивание. [3735291]

  • Были фиксированы катастрофические отказы, которые произошли бы при определенных обстоятельствах после сборки «мусора». [3410634] [3783112]

  • Утечки памяти были фиксированы. [3400572] [3542919]

  • Были решены несколько проблем сообщения об ошибке. [3537493] [2361457] [3481518] [3382032] [3753807] [3756205] [3775760]

Стандартные дополнения

  • choose application, choose from list, choose URL, и display dialog команды больше не будут представлять диалоговые окна на удаленных машинах. [3342807]

  • choose application команда больше не пропускает память. [3505723]

  • В версии 10.3.x Mac OS X, choose application диалоговое окно не является быстро реагирующим к щелчкам мышью в предметной области, когда неактивный. Это было фиксировано. [3467405]

  • of type параметр к choose file команда теперь работает правильно на пакеты, не содержащие файл PkgInfo (например, пишущий сценарий дополнений). [3742878]

  • choose file of type {"MooV"} теперь работы как ожидалось. Ранее, это позволило пользователю выбирать любой файл, который мог открыть QuickTime. [3595938]

  • choose file name диалоговое окно теперь распознает пакеты. [4003078]

  • display dialog команда больше не будет создавать диалоговое окно, которое слишком высоко для экрана, когда дали очень длинная строка для отображения. [3464996]

  • display dialog когда апплет работает на японско-основной системе, команда теперь выводит на экран японский текст правильно. [2812677]

  • do shell script команда теперь работает правильно с многократными командами когда administrator privileges параметр указан. [3466509]

  • Когда administrator privileges параметр указан к do shell script команда, 5-минутная метка времени аутентификации теперь применяется только к текущему сценарию. [3004723]

  • do shell script если пользователь отменяет диалог аутентификации, команда теперь возвращает корректный код ошибки (-128). [3446874]

  • info for команда теперь возвращает корректное file type и file creator для пакетов, не содержащих файл PkgInfo (например, пишущий сценарий дополнений). [3153056]

  • read before <delimiter> as date больше не вызывает ошибку. [3383413]

  • run script если прямой параметр не указан, команда больше не вызывает ошибку переполнения стека. [3514354]

  • using параметр к say когда Распознавание речи включено, команда теперь работает правильно. [3055088]

  • using параметр к say если указанная речь не капитализируется правильно, команда больше не вызывает ошибку. [2361457]

  • the clipboard as Unicode text теперь работы правильно, когда буфер обмена содержит разработанный текст, но никакой текст Unicode. [3668725]

  • Проверка ошибок и создание отчетов были улучшены. [3523658] [3522599] [2361457] [3413730] [3446766]

  • Были фиксированы несколько ошибок в Стандартном Дополнительном словаре. [3512009] [3431746] [3632368] [3608653] [3505597]

Mac OS X v10.4.2 - Стандартные Дополнения 1.10.1

Стандартные Дополнения 1.10.1 включены с версией 10.4.2 Mac OS X и требуют версии 10.4 Mac OS X или позже. Это содержит изменения в do shell script команда. Обратите внимание на то, что только Стандартные Дополнения изменились в этом выпуске, время выполнения AppleScript не изменилось, и его номер версии остается 1.10.

Исправления ошибок

Стандартные дополнения

  • do shell script ... with administrator privileges теперь наборы и реальные и эффективные идентификаторы пользователей сценария к 0. Это соответствует поведение в версии 10.3.x Mac OS X и исправляет много проблем разрешения в версиях 10.4.0 и 10.4.1. [4126949] Mac OS X

  • Используя sudo(8) с administrator privileges параметр do shell script команда больше не будет заставлять сценарий зависать. В целом, добавление sudo к with administrator privileges избыточно, но некоторые сценарии полагаются на него. [4126949]

Mac OS X v10.4.3 - AppleScript 1.10.3

AppleScript 1.10.3 включен с версией 10.4.3 Mac OS X и требует версии 10.4 Mac OS X или позже.

Разработчик отмечает

  • OSAGetPropertyNames() и OSAGetHandlerNames() Когда объект сценария содержит родительское объявление свойства, APIs теперь возвращает все свойства и обработчики объекта сценария. Ранее они только возвратили бы свойства и обработчики, объявленные перед родительским свойством. [4179456]

  • AppleScript 1.10.3 теперь уважает нормальные правила при попытке выбрать терминологию от хост-приложения: это загружается 'aete' ресурс, если Вы присутствуете или отправляете событие, если приложение отмечено как наличие динамической терминологии. Ранее, это всегда отправляло бы событие. Это только влияет на scriptable приложения, выполняющие сценарии в их собственном процессе. [4250843]

Исправления ошибок

AppleScript

  • delay команда теперь приводит к большему количеству времени другим процессам. [4179466]

Стандартные дополнения

  • do shell script ... with administrator privileges больше не замедляется, когда вызвано несколько раз в том же сценарии. [4179474]

  • get volume settings команда теперь возвращает корректное output volume когда баланс установлен направо от центра. [4242153]

  • Производительность system info команда была улучшена. [4182950]

Mac OS X v10.4.6 - AppleScript 1.10.6

AppleScript 1.10.6 включен с версией 10.4.6 Mac OS X и требует версии 10.4 Mac OS X или позже.

Исправления ошибок

AppleScript

  • Изменения в property когда сценарий выполняется из меню Script, значения теперь сохраняются. Если сценарий возвратил результат, в предыдущих версиях AppleScript были только сохранены значения свойств. [4400567]

  • Проблема, вызвавшая path to, path to it, и path to application "AppName" команды для возврата неправильного результата в определенных ситуациях были фиксированы. [4400329]

  • Проблема компиляции, вызвавшая after ссылочная форма, которая будет преобразована в before на основанном на Intel Macs был фиксирован. [4460185]

  • Были фиксированы катастрофические отказы, инициированные различными виджетами Инструментальной панели и приложениями в определенных ситуациях. [4400300] [4400304] [4400306] [4400309] [4400557]

  • Утечка памяти была фиксирована. [4400420]

Стандартные дополнения

  • Проблема, которая могла вызвать choose application диалоговое окно, чтобы быть невидимым было фиксировано. [4400378]

  • Проблема, которая могла вызвать choose remote application быть неспособным найти приложения на удаленных машинах, использующих Добрый день, было фиксировано. [4400386]

Mac OS X v10.4.7 - AppleScript 1.10.7

AppleScript 1.10.7 включен с версией 10.4.7 Mac OS X и требует версии 10.4 Mac OS X или позже.

Исправления ошибок

AppleScript

  • Выход из связанного апплета только для чтения больше не заставляет ошибку сообщаться. [4505459]

  • Скомпилированные сценарии, содержащие даты теперь, декомпилируются и работают правильно, когда передано от основанного на PowerPC Macs до основанного на Intel Macs (и наоборот). [4525261]

  • delay команды и on idle обработчики больше не конфликтуют. [4508927]

  • Конкатенация пустой записи больше не вызывает катастрофический отказ. [4510216]

  • Был фиксирован катастрофический отказ, который мог произойти при определенных обстоятельствах при копировании больших вложенных объектов сценария. [4510228]

  • Утечка памяти была фиксирована. [4505510]

Стандартные дополнения

  • Указание типа данных "TEXT" для a read или write команда (например, read fileRef as "TEXT") больше не вызывает ошибку на основанном на Intel Macs. [4508534]