10.11 Changes

This article describes changes to AppleScript and related tools in OS X El Capitan v10.11.

Folder Actions Folder Actions now reliably notices all added and removed items in an observed folder.

Script Library Locations AppleScript now has two additional search mechanisms when searching for script libraries: Script libraries may now be located in any installed application bundle, in the Contents/Library/Script Libraries directory of the bundle. This allows distributing libraries that are associated with an application, or creating applications that exist solely to distribute libraries.

The environment variable OSA_LIBRARY_PATH may be used to add more locations to search for script libraries. This allows using a library without installing it in one of the usual locations. The variable’s value is a colon-separated list of absolute POSIX paths, such as OSA_LIBRARY_PATH='/opt/local/Script Libraries:/usr/local/Script Libraries' . For complete details, see Creating a Library in the AppleScript Language Guide.

AppleScriptObjC AppleScriptObjC now bridges several more types. As usual with AppleScriptObjC, conversion is automatic when passing an AppleScript object to an Objective-C method; converting an Objective-C object to an AppleScript value requires explicit coercion using as . Most struct types are bridged to records and vice versa. Lists are also bridged to structs if the elements are in the correct order. Previously, only NSRange , NSSize , NSPoint , and NSRect were bridged. struct types with bitfield members are still not supported. [20297172]

File objects ( file , alias , and POSIX file ) are now bridged to NSURL ; NSURL objects with a scheme of file are bridged to alias . [20891802]

date objects are now bridged to NSDate and vice versa. NOTE: Converting between date and NSDate is inherently imprecise: date has a resolution of exactly one second over its entire range, and is relative to the current time zone; NSDate has a variable resolution (for practical purposes, one to ten microseconds), and is a specific point in time. [20891805] Bug Fixes AppleScript now reliably recognizes constant and enumeration values from Objective-C frameworks. [18778520] Coercing NSNumber objects to real no longer truncates double-precision numbers to single-precision. ( someNSNumber's doubleValue has always worked correctly.) [18819219] Coercing NSString objects to string now functions the same as coercing to text or Unicode text , preserving all characters. [18098890]

Other Bug Fixes delay now functions correctly in applets, waiting for the full specified time. [18963858]

Developer Notes OSACopyScriptingDefinitionFromURL now works correctly if given a file: URL. [14298245] In an sdef, access-group elements on a suite are now correctly inherited by all the sub-elements, including class-extension elements. [19966017]