Can someone update about the current state of the Automator app in macOS. Automator seems like a valuable tool for automating tasks on macOS but in the recent years I have noticed a growing emphasis on the Shortcuts app for automation.
It would be great if you could clarify the following:
• Current Status of Automator: Is there any official statement regarding the continued support of the Automator app in future macOS versions?
• Future of Automator: Does Apple plan to introduce new features or updates for Automator in upcoming releases?
• Indifference to Shortcuts App: From what I understand both the ‘Automator’ and the ‘Shortcuts’ app are used for creating workflows/shortcuts to automate tasks. What is it that Automator app has to offer which cannot be done using the Shortcuts app? assuming the continued support for the Automator app. Can all the automator workflows not be automated using the shortcuts app?
I understand that Apple is constantly innovating and introducing new tools. However, clarity regarding the future of Automator would be helpful for users like myself.
In addition, as a developer I wanted to offer some actions for my application in the Automator app, so that the user can make use of it to create some workflows. But from what I found in the apple documentation here, these action are created using the ‘Automator action’ Project type template in the xcode. However, in the current version of xcode 15, this project type seems to be missing. Does it indicate that apple no longer provides support for applications to create new automator action? If not, how can I provide automator actions for my xcode application?
Automation & Scripting
RSS for tagLearn about scripting languages and automation frameworks available on the platform to automate repetitive tasks.
Post
Replies
Boosts
Views
Activity
My applescript calls a perl script to convert a file.
When I call the perl from commandline, everything works fine.
When I call the applescript (by dropping a file on it),
this error occurs:
Can't load '/Library/Perl/5.30/darwin-thread-multi-2level/auto/Encode/Encode.bundle' for module Encode: dlopen(/Library/Perl/5.30/darwin-thread-multi-2level/auto/Encode/Encode.bundle, 0x0001): tried: '/Library/Perl/5.30/darwin-thread-multi-2level/auto/Encode/Encode.bundle' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/
which I interprete that OSA runs in Rosetta mode now.
This error did not occur at least until Mar 27, when I used it last.
Of course on the same machine.
How is it possible that OSA now is called under Rosetta?
Has there been a chacnge in Ventura 13.6.6?
How to control that this OSA runs as native arm64?
I am developing a shortcut for an application that is currently in production. The shortcut essentially involves opening the application and launching a notification so that the AppDelegate initiates a process to scan NFC tags.
To achieve this, I have an AppIntent that overrides the variable openAppWhenRun = true and an AppShortcutsProvider to implement this intent.
The problem arises when a user updates to the latest version of the application and tries to implement this shortcut through an automation. The following error appears: "When 'Reader' is detected" encountered an error: The action 'Scan DMA tags' could not run because an internal error occurred.
This does not always happen, only on some devices. However, if we uninstall and reinstall the application, it works perfectly. But this is not a viable solution since the application uses a database and data loss from frequent uninstallations is not acceptable.
Any solution?
I have tried to replicate the error but have been unable to do so. This issue has occurred on both iOS 16 and iOS 17.
I've been working on a project with App Intents and have hit a complete wall. The desire is to have an app that allows a person to place an order of something and have that order processed while in lock screen without any intervention.
Is that workflow possible without having to unlock the screen? Under what circumstances can a task be handled without unlocking the device.
Going over some of the documentation about older custom intents strongly implies that this was possible under certain circumstances.
I am trying to automate the installation, launch, and monitoring of iOS apps. Historically we have used ios-deploy, but as of XCode 15 and iOS 17+, using ios-deploy no longer works. See issue
The CoreDevice framework and xcrun's devicectl command has many of the features I require, but in contrast to ios-deploy, executing
xcrun devicectl process launch --device <uuid> <bundle>
does not route the launched app's stdout the the devicectl process. From the help menu, it looks like adding the --console flag will do exactly what I want, which routes the app stdout to the devicectl process and waits for the app to exit.
However, if I try running
xcrun devicectl process launch --console --device <uuid> <bundle>
I receive the following error
ERROR: The specified operation is not implemented on this device. (com.apple.dt.CoreDeviceError error 1 (0x01))
--------------------------------------------------------------------------------
ERROR: The operation couldn't be completed. (CoreDevice.ActionError error 2.)
NSDebugDescription = This operation cannot be performed on this device.
It's rather unclear on what the actual issue is, and I can't find any CoreDevice documentation online to help me deduce what these error codes refer to. Any help would be appreciated!
Since apple has added the "no opt out" automatic completion of some words in the iphone keyboard, pr at least in the latest version of IOS 17.5.1 many users that try to use the portuguese word "vou" that means "going" ar suffering from constant replacing of the word to "vouch" even with the keyboard and phone language set to portuguese and autofill turned off.
Hi,
I have one Synology NAS at home and one Synology NAS on an external place. On my MacBook I want to create a script that first mount the local NAS, wait 30 seconds (to let OpenVPN startup and connecting to my DDNS) and mount the external NAS.
When mounting both NASses, I will let the script checking if both shares still mounted and if not, try to remount.
I've created the code below but it looks like the script only runs te first lines and only mount the local NAS.
global startup
set startup to true
on idle
if startup then
mount_share("smb", "Lisa", "NAS_name", "Data/Mijn Afbeeldingen")
set startup to false
return 30
else
mount_share("smb", "Lisa", "NAS_name", "Data/Mijn Afbeeldingen")
mount_share("smb", "Lisa", "IP-external NAS", "Backup Lisa")
return 120
end if
end idle
on mount_share(protocol, account, server, share)
set x to 0
-- try a few time in case the server has to wake up first.
-- don't do anything if the share is already mounted
repeat until x > 4 or (list disks) contains share
tell application "Finder"
try
mount volume protocol & "://" & account & "@" & server & "/" & share
on error
set x to x + 1
delay 30
end try
end tell
end repeat
end mount_share
Hopefully someone can help me
Hello all,
I am wondering if anyone can help me with writing a script that fully uninstalls an app with one click or can point me to a script already written please? So that when I click the script it uninstalls the app and leaves nothing behind. So when I click finder and use the search function with the name of the app, then click add and then name matches (input name of app) then click add and select system files are included, nothing comes up as the script has completely removed it from my system.
I am Using Mac Mini M2 Pro 16gb ram and macOS Sonoma.
Thank you
Staring to use ScriptingBridge in Swift to enable faster scripting access to an external app (Devonthink) and therefore avoid having to use an AppleScript as a conduit to call a Swift command line utility and deal with its results.
The plan is to be able to read the plaintext of a record (no problem) and change the record name in Devonthink based on its contents. But I can’t seem to write to a property, instead getting an error “Cannot assign to property: ‘***’ is immutable”.
Any guidance how to get around this?
I'd like to launch my APP via scanning NFC Tags In BackgroundMode. However, every time when I scan NFC tags, there always APP notification pops up, instead of opening APP directly.
Please advise me how to skip the APP notification and directly launch APP.
I'd like to open a small window to play the GIF by scanning NFC tag, when app is unlocked. can I use app clips to realize it ?
It would greatly benefit the entire community if there was a "Once" button under the "automation" section that is apart of "shortcuts" app.
Currently there are 3 selections - Daily, Weekly, Monthly.
Please add a 4th selection - "Once"
I'm asking because I was told that I could do this here.
Thanks for anyone that supports this as I feel it would benefit us immensely.
I haven’t figured out a way to have my phone automatically restart between the hours of midnight and 6am when the battery reaches 100%. Is there a way to do this?
is there an announcement or workaround to get the set wallpaper action in shortcuts back to work?
I’ve two automations set.
Send a notification when battery rises above 80%
Set Always ON display off on apple watch (via Shortcuts Automation, everyday at 12 a)
For these aforementioned shortcuts I get the following errors frequently, on my Lock Screen,
Wha is INCExtensionErrorDomain error 1307 and Remote execution timed out error? And how can these errors be mitigated?
All attempts to script Safari in Xcode using NSAppleScript returns the following message.
error: {
NSAppleScriptErrorAppName = Safari;
NSAppleScriptErrorBriefMessage = "Application isn\U2019t running.";
NSAppleScriptErrorMessage = "Safari got an error: Application isn\U2019t running.";
NSAppleScriptErrorNumber = "-600";
NSAppleScriptErrorRange = "NSRange: {32, 3}";
}
Latest script attempt:
func getHTML() -> String {
let source = """
tell application "Safari"
get URL of tab 1 of window 1
end tell
"""
//print(source)
var a = "hello"
var error: NSDictionary?
if let scriptObject = NSAppleScript(source: source) {
if let scriptResult = scriptObject.executeAndReturnError(&error).stringValue
{
a = scriptResult
print(scriptResult)
} else if (error != nil) {
print("error: ",error!)
}
}
return a
}
Hello fellow developers,
I am developing a macOS app called "Playlist Plunderer 2," aimed at using AppleScript to control the Music app to play songs and employing ShazamKit to recognize these songs and update their metadata. Despite setting up the entitlements and plist files correctly, I'm encountering issues with gaining the necessary AppleScript permissions, and my app is not appearing under 'Automation' in System Preferences. Additionally, ShazamKit fails to match songs, consistently returning error 201.
Here are the specifics of my setup and what I've tried so far:
Xcode Version: 15.4, macOS 14.1.2
Entitlements Configured: Includes permissions for Apple events, audio input, and scripting targets for the Music app.
Capabilities: ShazamKit and ScriptingBridge frameworks integrated, set to "Do Not Embed."
Info.plist Adjustments: Added "Privacy - Microphone Usage Description."
Scripting: Manual AppleScript commands outside of Xcode succeed, but the app's scripts do not trigger.
Entitlements File:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.automation.apple-events</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.Music</key>
<array>
<string>com.apple.Music.playback</string>
<string>com.apple.Music.library.read-write</string>
</array>
</dict>
</dict>
</plist>
I am having issues controlling the music app (itunes) from the apple script within my xcode project. the objective of the app is to rewrite the metadata of songs inside a folder in my Music app, this folder is titled Playlist Plunderer. The way I intend for the app to function is, the app will play the songs in the playlist, and then it will use shazamkit to recognize the song thats playing, it will then copy the metadata results of that song to rewrite the metadata of the song in the music playlist. I am still in the beginning stages. and I am very new to xcode. I created a apple developer account, paid the $99 and it is active, and I added the identifier bundle to the account from my app. I am VERY new to xcode,(this is my first project)
my development team is set ( Shane Vincent), and the app is set to automatically manage signing, under app sandbox. i have audio input checked, under hardened runtime/ resource access audio input is checked.
in build settings the path to the info.plist file is correct,
the info.plist contains Privacy - Microphone Usage Description that I added i think it was called NSMmicriphone or something, with a description that reads "This app needs to access the microphone to identify songs using ShazamKit."
the app appears under System Preferences > Security & Privacy > Privacy > Microphone but not under System Preferences > Security & Privacy > Privacy > Automation
it is being made on macOS 14.1.2 (23B92) and xcode Version 15.4 (15F31d)
Under framework library, and embedded content, I have added two frameworks, Shazamkit.framework, and ScriptingBridge.framework, both set to do not embed
Current Issue: AppleScript fails to authorize with the Music app, and ShazamKit errors suggest an issue with song matching.
Has anyone faced similar challenges or can offer guidance on how to ensure AppleScript and ShazamKit function correctly within a sandboxed macOS app? Any insights into troubleshooting or configuring entitlements more effectively would be greatly appreciated.
Thanks for your help!
I want to launch my app via shortcuts which has new automation, Then I selected NFC scanning button and run immediately. Next I selected my AppIntent, but when I get launched from a Tag, How can I get data stored in it.
Dear Apple Developers,
I hope this message finds you well. I apologize for the interruption; I am not a developer, but a user of MacBook who has encountered a frustrating issue when launching applications via Xquartz on my 2024 MacBook Air. After reaching out to Apple Support without success, I am seeking assistance here.
I am an academic researcher in structural biology. Recently, I upgraded from a 2017 MacBook Pro to a 2024 MacBook Air. Since the upgrade, I have been unable to properly launch application GUIs from our HPC using SSH and the module load command, a process that worked seamlessly on my 2017 MacBook Pro.
While Xquartz launches and runs in the background automatically on the 2024 MacBook Air, just as it did on the 2017 MacBook Pro, the application GUIs I need do not display correctly. Specifically, PyMOL opens with a blank interface, preventing me from viewing structures, and Chimera shows an error message before quitting automatically. I have attached the error logs for your reference.
The most significant difference between the 2017 MacBook Pro and the 2024 MacBook Air is the transition from an Intel to an M3 chip. I wonder if this could be the root of the problem?
Any assistance in resolving this issue would be greatly appreciated. Thank you very much for your time and support.
Yours sincerely,
Lingting Li
When running this script a file selection dialog opens and allows to select multiple files, but cannot select all files by command + a. Isn't this a bug? I use MacBook Air M2 + macOS Sonoma 14.6 (23G80).
#!/usr/bin/osascript -l JavaScript
const app = Application.currentApplication();
app.includeStandardAdditions = true;
app.chooseFile({
multipleSelectionsAllowed: true,
});