来自终端或来自 AppleScript 的 运行 命令时的不同结果
Different result when running command from terminal or from AppleScript
当我在终端中 运行 defaults read 'com.apple.Safari'
时,我得到了很多信息,尤其是我感兴趣的值:defaults read 'com.apple.Safari' 'NSWindow Frame BrowserWindowFrame'
.
但在 AppleScript 中 运行ning 时,结果完全不同:
do shell script "defaults read 'com.apple.Safari'"
(*
{
ResetCloudHistory = 1;
cloudBookmarksMigrationEligibilityDataInvalidated = 1;
}
*)
所以当我 运行 AppleScript 询问我感兴趣的密钥时,我收到错误消息:
The domain/default pair of (com.apple.Safari, NSWindow Frame BrowserWindowFrame) does not exist
我认为这是出于安全考虑。
有谁知道我可以让我的 applescript 访问此设置的方法 并且 稍后写入它?
P.S。使用 Mac OS 10.14 莫哈韦
为了在macOS Mojave[=55=中读取沙盒版本的com.apple.Safari.plist ] 从 Script Editor,您需要将 Script Editor 添加到:System Preferences > 安全与隐私 > 隐私 > 完整磁盘访问.
然后:
do shell script "defaults read 'com.apple.Safari' 'NSWindow Frame BrowserWindowFrame'"
Returns,例如:
"88 73 1264 804 0 0 1440 877 "
请注意,如果 do shell script
命令 通过其他 方法 是 运行,则 application 涉及 method 需要添加到:System Preferences > Security &隐私 > 隐私 > 完整磁盘访问
在 macOS Mojave 中,要查看差异,来自 Terminal:
$ defaults read ~/Library/Preferences/com.apple.Safari.plist
{
IncludeDevelopMenu = 1;
WebKitDeveloperExtrasEnabledPreferenceKey = 1;
"WebKitPreferences.developerExtrasEnabled" = 1;
}
$
$ defaults read ~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist 'NSWindow Frame BrowserWindowFrame'
88 73 1264 804 0 0 1440 877
$
不过,后面的command使用do shell script
command:
do shell script "defaults read 'com.apple.Safari' 'NSWindow Frame BrowserWindowFrame'"
根据返回的内容,它显然正在访问 沙盒 版本的 com.apple.Safari.plist。
当我在终端中 运行 defaults read 'com.apple.Safari'
时,我得到了很多信息,尤其是我感兴趣的值:defaults read 'com.apple.Safari' 'NSWindow Frame BrowserWindowFrame'
.
但在 AppleScript 中 运行ning 时,结果完全不同:
do shell script "defaults read 'com.apple.Safari'"
(*
{
ResetCloudHistory = 1;
cloudBookmarksMigrationEligibilityDataInvalidated = 1;
}
*)
所以当我 运行 AppleScript 询问我感兴趣的密钥时,我收到错误消息:
The domain/default pair of (com.apple.Safari, NSWindow Frame BrowserWindowFrame) does not exist
我认为这是出于安全考虑。
有谁知道我可以让我的 applescript 访问此设置的方法 并且 稍后写入它?
P.S。使用 Mac OS 10.14 莫哈韦
为了在macOS Mojave[=55=中读取沙盒版本的com.apple.Safari.plist ] 从 Script Editor,您需要将 Script Editor 添加到:System Preferences > 安全与隐私 > 隐私 > 完整磁盘访问.
然后:
do shell script "defaults read 'com.apple.Safari' 'NSWindow Frame BrowserWindowFrame'"
Returns,例如:
"88 73 1264 804 0 0 1440 877 "
请注意,如果 do shell script
命令 通过其他 方法 是 运行,则 application 涉及 method 需要添加到:System Preferences > Security &隐私 > 隐私 > 完整磁盘访问
在 macOS Mojave 中,要查看差异,来自 Terminal:
$ defaults read ~/Library/Preferences/com.apple.Safari.plist
{
IncludeDevelopMenu = 1;
WebKitDeveloperExtrasEnabledPreferenceKey = 1;
"WebKitPreferences.developerExtrasEnabled" = 1;
}
$
$ defaults read ~/Library/Containers/com.apple.Safari/Data/Library/Preferences/com.apple.Safari.plist 'NSWindow Frame BrowserWindowFrame'
88 73 1264 804 0 0 1440 877
$
不过,后面的command使用do shell script
command:
do shell script "defaults read 'com.apple.Safari' 'NSWindow Frame BrowserWindowFrame'"
根据返回的内容,它显然正在访问 沙盒 版本的 com.apple.Safari.plist。