On n'utiliserait pas DiskImageMounter car, bien qu'il donne l'illusion d'être scriptable et chargé de commandes dans son dictionnaire AppleScript, il ne renvoie jamais une référence valide à une image qu'il ouvre ; AppleScript n'est donc jamais informé qu'il a fait le travail ; et DiskImageMounter s'en débarrasser, quitter, et invalider la connexion avec AppleScript en lançant une erreur. Et il fait ça à chaque. fois. fois. Donc, c'est des balles fiables.
Pour monter une image disque avec AppleScript, il faut utiliser une application que je recommande très rarement d'utiliser, sauf pour quelques tâches spécifiques, à savoir Finder . DiskImageMounter est la seule application moins fiable que Finder mais Finder est un trier, et il réussit à monter des volumes sans faire trop de bruit :
set f to POSIX file "/path/to/diskimage.dmg" as alias
tell application id "com.apple.Finder" to open f
Elle ne renvoie pas non plus une référence au volume monté, mais vous pouvez obtenir Finder pour énumérer les disques déjà montés au préalable, puis les énumérer à nouveau après, et le nouveau qui apparaît sera votre volume monté :
set f to POSIX file "/path/to/diskImage.dmg" as alias
tell application id "com.apple.Finder"
set ejectables to disks
open f
repeat until disks != ejectables
delay 1
end repeat
return the POSIX path of last item of (disks as alias list)
end tell
Enfin... Le JXA :
Finder=Application('com.apple.Finder');
f=Path('/path/to/diskImage.dmg');
Finder.open(f);