AppleScript ObjC

[AppleScript] スクリプトに引数を渡す


【スクリプトエディタで開く】|

#!/usr/bin/env osascript
###↑必須

############################
### 各種共通宣言
############################
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions
property refMe : a reference to current application

############################
### argument 引数の受け取り処理
############################
on run {arg1, arg2}
  
  ###次の処理に渡す値をリストにして
  set listArg to {arg1, arg2}
  
  ###次の処理に渡す
open listArg
end run


############################
###本処理 前処理から値を受取
############################
on open listArg
  
  ### 処理をここに
  
end open




|

The Objective-C Programming Language

ダウンロード - The Objective-C Programming Language







|

[Framework]主要なフレームワーク

Accounts.framework
AddressBook.framework
AppKit.framework
AppleScriptKit.framework
AppleScriptObjC.framework
ApplicationServices.framework
AudioUnit.framework
AudioVideoBridging.framework
Automator.framework
AVFoundation.framework
AVKit.framework
CalendarStore.framework
CloudKit.framework
Collaboration.framework
Contacts.framework
ContactsUI.framework
CoreAudio.framework
CoreAudioKit.framework
CoreBluetooth.framework
CoreData.framework
CoreImage.framework
CoreLocation.framework
CoreMediaIO.framework
CoreMIDI.framework
CoreTelephony.framework
CoreWLAN.framework
CryptoTokenKit.framework
DiscRecording.framework
DiscRecordingUI.framework
EventKit.framework
ExceptionHandling.framework
FinderSync.framework
Foundation.framework
GameController.framework
GameKit.framework
GameplayKit.framework
GLKit.framework
ImageCaptureCore.framework
IMServicePlugIn.framework
InputMethodKit.framework
InstallerPlugins.framework
InstantMessage.framework
IOBluetooth.framework
IOBluetoothUI.framework
IOKit.framework
JavaFrameEmbedding.framework
JavaScriptCore.framework
JavaVM.framework
Kernel.framework
LocalAuthentication.framework
MapKit.framework
MediaLibrary.framework
Metal.framework
MetalKit.framework
ModelIO.framework
MultipeerConnectivity.framework
NetworkExtension.framework
NotificationCenter.framework
OpenDirectory.framework
OSAKit.framework
Photos.framework
PreferencePanes.framework
PubSub.framework
Python.framework
QTKit.framework
Quartz.framework
QuartzCore.framework
SceneKit.framework
ScreenSaver.framework
Scripting.framework
ScriptingBridge.framework
SecurityFoundation.framework
SecurityInterface.framework
Social.framework
SpriteKit.framework
StoreKit.framework
SyncServices.framework
WebKit.framework

|

[NSCFBoolean] integerValue() boolValue() intValue()

エイリアスかシンボリックリンクか
ファイルかフォルダかの判定


#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSURL : a reference to objMe's NSURL
property objNSArray : a reference to objMe's NSArray
property objNSDirectoryEnumerationSkipsSubdirectoryDescendants : a reference to objMe's NSDirectoryEnumerationSkipsSubdirectoryDescendants
property objNSNotFound : a reference to 9.22337203685477E+18 + 5807
set objFileManager to objMe's NSFileManager's defaultManager()


property refNSURLIsSymbolicLinkKey : a reference to objMe's NSURLIsSymbolicLinkKey

property refNSURLNameKey : a reference to objMe's NSURLNameKey
property refNSURLPathKey : a reference to objMe's NSURLPathKey

property refNSURLIsDirectoryKey : a reference to objMe's NSURLIsDirectoryKey
property refNSURLIsRegularFileKey : a reference to objMe's NSURLIsRegularFileKey

property refNSURLIsAliasFileKey : a reference to objMe's NSURLIsAliasFileKey



set strDirPath to "/Users/XXXXXXXXXX/Desktop"

##Make NSString
set ocidNSString to objNSString's stringWithString:strDirPath
log ocidNSString as text
log ocidNSString's className() as text
log ocidNSString's stringByStandardizingPath()

set ocidURLPath to objNSURL's fileURLWithPath:ocidNSString
log ocidURLPath as text
log ocidURLPath's className() as text




set ocidFileFile to objFileManager's contentsOfDirectoryAtURL:ocidURLPath includingPropertiesForKeys:[refNSURLNameKey, refNSURLPathKey, refNSURLIsAliasFileKey, refNSURLIsSymbolicLinkKey, refNSURLIsDirectoryKey, refNSURLIsRegularFileKey] options:objNSDirectoryEnumerationSkipsSubdirectoryDescendants |error|:(missing value)


log "Repeat######"
repeat with objFiles in ocidFileFile
log objFiles as text

log "NSURLIsAliasFileKey"
log (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value)) as record
log NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value))
set boolIsAliasFileKey to NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value))
log className() of boolIsAliasFileKey as text
-->(*__NSCFBoolean*)
log "integer: " & boolIsAliasFileKey's integerValue()
log "boolean: " & boolIsAliasFileKey's boolValue()
####判定用にはこの方法で取得する
set numIsAliasFileKey to (NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value)))'s integerValue()
set numIsAliasFileKey to (NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value)))'s intValue()
set boolIsAliasFileKey to (NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value)))'s boolValue()
####判定用にはこの方法で取得する
set numIsAliasFileKey to NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value)) as integer
set boolIsAliasFileKey to NSURLIsAliasFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsAliasFileKey] |error|:(missing value)) as boolean


log "NSURLIsSymbolicLinkKey"
log (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value)) as record
log NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value))
set boolIsSymbolicLinkKey to NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value))
log className() of boolIsSymbolicLinkKey as text
-->(*__NSCFBoolean*)
log "integer: " & boolIsSymbolicLinkKey's integerValue()
log "boolean: " & boolIsSymbolicLinkKey's boolValue()
####判定用にはこの方法で取得する
set numIsSymbolicLinkKey to (NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value)))'s integerValue()
set numIsSymbolicLinkKey to (NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value)))'s intValue()
set boolIsSymbolicLinkKey to (NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value)))'s boolValue()
####判定用にはこの方法で取得する
set numIsSymbolicLinkKey to NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value)) as integer
set boolIsSymbolicLinkKey to NSURLIsSymbolicLinkKey of (objFiles's resourceValuesForKeys:[refNSURLIsSymbolicLinkKey] |error|:(missing value)) as boolean



log "NSURLIsDirectoryKey"
log (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value)) as record
set boolIsDirectoryKey to NSURLIsDirectoryKey of (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value))
log className() of boolIsDirectoryKey
-->(*__NSCFBoolean*)
log "integer: " & boolIsDirectoryKey's integerValue()
log "boolean: " & boolIsDirectoryKey's boolValue()
####判定用にはこの方法で取得する
set numIsDirectoryKey to (NSURLIsDirectoryKey of (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value)))'s integerValue()
set numIsDirectoryKey to (NSURLIsDirectoryKey of (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value)))'s intValue()
set boolIsDirectoryKey to (NSURLIsDirectoryKey of (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value)))'s boolValue()
####判定用にはこの方法で取得する
set numIsDirectoryKey to NSURLIsDirectoryKey of (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value)) as integer
set boolIsDirectoryKey to NSURLIsDirectoryKey of (objFiles's resourceValuesForKeys:[refNSURLIsDirectoryKey] |error|:(missing value)) as boolean

log "NSURLIsRegularFileKey"
log (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value)) as record
set boolIsRegularFileKey to NSURLIsRegularFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value))
log className() of boolIsRegularFileKey
-->(*__NSCFBoolean*)
log "integer: " & boolIsRegularFileKey's integerValue()
log "boolean: " & boolIsRegularFileKey's boolValue()
####判定用にはこの方法で取得する
set numIsRegularFileKey to (NSURLIsRegularFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value)))'s integerValue()
set numIsRegularFileKey to (NSURLIsRegularFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value)))'s intValue()
set boolIsRegularFileKey to (NSURLIsRegularFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value)))'s boolValue()
####判定用にはこの方法で取得する
set numIsRegularFileKey to NSURLIsRegularFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value)) as integer
set boolIsRegularFileKey to NSURLIsRegularFileKey of (objFiles's resourceValuesForKeys:[refNSURLIsRegularFileKey] |error|:(missing value)) as boolean

if numIsSymbolicLinkKey = 1 then
log "シンボリックリックです"
else if numIsAliasFileKey = 1 then
log "エイリアスです"
else if numIsDirectoryKey = 1 then
log "フォルダです"
else if numIsRegularFileKey = 1 then
log "ファイルです"
end if


if boolIsSymbolicLinkKey is true then
log "シンボリックリックです"
else if boolIsAliasFileKey is true then
log "エイリアスです"
else if boolIsDirectoryKey is true then
log "フォルダです"
else if boolIsRegularFileKey is true then
log "ファイルです"
end if


log "NSURLPathKey"
####_NSURLPathKey-->アンダースコアが先頭に入ります
log (objFiles's resourceValuesForKeys:[refNSURLPathKey] |error|:(missing value)) as record
log _NSURLPathKey of (objFiles's resourceValuesForKeys:[refNSURLPathKey] |error|:(missing value)) as text
log "NSURLNameKey"
log (objFiles's resourceValuesForKeys:[refNSURLNameKey] |error|:(missing value)) as record
log NSURLNameKey of (objFiles's resourceValuesForKeys:[refNSURLNameKey] |error|:(missing value)) as text

end repeat




#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
tell application "Script Editor"
tell application "System Events"
tell process "Script Editor"
tell window 1
tell splitter group 1
tell splitter group 1
tell group 1
tell checkbox "返された値"
set boolValue to value as boolean
end tell
if boolValue is false then
click checkbox "返された値"
end if
end tell
end tell
end tell
end tell
end tell
end tell
end tell
end if
end repeat

end doLogView
#########################

|

[NSUUID] initWithUUIDString

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSMutableString : a reference to objMe's NSMutableString

property objNSNotFound : a reference to 9.22337203685477E+18



###初期化
set ocidUuidA to objMe's NSUUID's alloc()'s init()
log className() of ocidUuidA as text
log ocidUuidA
###テキスト形式で取得する
set ocidUUID to ocidUuidA's UUIDString
log className() of ocidUUID as text
log ocidUUID as text

###↑と同じ内容で別のUUIDの初期化
set ocidUuidB to objMe's NSUUID's alloc()'s initWithUUIDString:ocidUUID
log className() of ocidUuidB as text
log ocidUuidB's UUIDString as text

### 比較
set ocidCompare to ocidUuidA's compare:ocidUuidB

log class of ocidCompare
log ocidCompare



display notification "処理終了" with title "処理が終了" subtitle "処理が終了しました" sound name "Sonumi"
log ">>>>>>>>>>>>処理終了<<<<<<<<<<<<<<<"
return ">>>>>>>>>>>>処理終了<<<<<<<<<<<<<<<"




#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[NSUUID] UUIDString UUIDの取得

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions

######ログ表示
doLogView()

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSMutableString : a reference to objMe's NSMutableString

property objNSNotFound : a reference to 9.22337203685477E+18



###初期化
set ocidUUID to objMe's NSUUID's alloc()'s init()
log className() of ocidUUID as text
log ocidUUID
###テキスト形式で取得する
log ocidUUID's UUIDString as text



display notification "処理終了" with title "処理が終了" subtitle "処理が終了しました" sound name "Sonumi"
log ">>>>>>>>>>>>処理終了<<<<<<<<<<<<<<<"
return ">>>>>>>>>>>>処理終了<<<<<<<<<<<<<<<"




#########################ログ表示
to doLogView()

tell application "System Events"
set listAppList to title of (every process where background only is false)
end tell
repeat with objAppList in listAppList
set strAppList to objAppList as text
if strAppList is "スクリプトエディタ" then
tell application "Script Editor"
if frontmost is true then
try
tell application "System Events" to click menu item "ログを表示" of menu "表示" of menu bar item "表示" of menu bar 1 of application process "Script Editor"
end try
end if
end tell
end if
end repeat

end doLogView
#########################

|

[PDFDocument]PDFのページ数を取得する

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7

use AppleScript version "2.8"
use framework "Foundation"
use scripting additions
use framework "Quartz"

property objMe : a reference to current application
property objNSString : a reference to objMe's NSString
property objNSURL : a reference to objMe's NSURL


set aliasFile to (choose file with prompt "ファイルを選んでください" default location (path to desktop folder from user domain) of type {"com.adobe.pdf"} with invisibles and showing package contents without multiple selections allowed) as alias
-->alias
set strFilePath to POSIX path of aliasFile

set ocidFilePath to objNSString's stringWithString:strFilePath

####ページ数を数える
set ocidNSUrlPath to objNSURL's fileURLWithPath:ocidFilePath
set ocidPDFDocument to objMe's PDFDocument's alloc()'s initWithURL:ocidNSUrlPath
set numPdfPageCnt to ocidPDFDocument's pageCount()

log numPdfPageCnt
numPdfPageCnt

|

[Basic] log 内容の確認

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#
#
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7

use
AppleScript version "2.8"
use
framework "Foundation"
use
scripting additions
property
objMe : a reference to current application
property
objNSString : a reference to objMe's NSString

###元のテキスト
set
strFilePath to "/System/Applications/Preview.app/Contents/Info.plist"

###NSStringテキスト
set
objFilePath to objNSString's stringWithString:strFilePath


log objFilePath
--->«class ocid» id «data optr00000000802A6E0200600000»

log objFilePath as text
--->/System/Applications/Preview.app/Contents/Info.plist

log objFilePath's className() as text
-->__NSCFString


|

[LINK]AppleScript ObjC

Foundation
https://developer.apple.com/documentation/foundation


AppleScript ObjC
https://developer.apple.com/library/archive/releasenotes/ScriptingAutomation/RN-AppleScriptObjC/index.html

|

その他のカテゴリー

Acrobat Acrobat Annotation Acrobat Dialog Acrobat Form Acrobat JS Acrobat Open Acrobat Plugin Acrobat python Acrobat Reader Acrobat Sequ Acrobat Stamps Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin System Information Admin Tools Admin Users Admin Volumes Adobe Apple AppleScript AppleScript Guide AppleScript Accessibility AppleScript AppKit AppleScript Applications AppleScript AppStore AppleScript Archive AppleScript Attributes AppleScript Automator AppleScript AVAsset AppleScript AVconvert AppleScript AVFoundation AppleScript AVURLAsset AppleScript BackUp AppleScript Barcode AppleScript Bash AppleScript Basic AppleScript Basic Path AppleScript Bluetooth AppleScript BOX AppleScript Browser AppleScript Calendar AppleScript CD/DVD AppleScript Choose AppleScript Chrome AppleScript CIImage AppleScript CloudStorage AppleScript Color AppleScript com.apple.LaunchServices.OpenWith AppleScript Console AppleScript Contacts AppleScript CotEditor AppleScript CURL AppleScript current application AppleScript Date&Time AppleScript delimiters AppleScript Desktop AppleScript Device AppleScript Disk AppleScript do shell script AppleScript Dock AppleScript DropBox AppleScript eMail AppleScript Encode Decode AppleScript Error AppleScript EXIFData AppleScript ffmpeg AppleScript File AppleScript Finder AppleScript Firefox AppleScript Folder AppleScript Fonts AppleScript GIF AppleScript HTML AppleScript Icon AppleScript Illustrator AppleScript Image Events AppleScript Image2PDF AppleScript ImageOptim Applescript iWork AppleScript Javascript AppleScript Jedit AppleScript Json AppleScript Label AppleScript List AppleScript locationd AppleScript LRC AppleScript LSSharedFileList AppleScript m3u8 AppleScript MakePDF AppleScript Map AppleScript Math AppleScript Microsoft AppleScript Microsoft Edge AppleScript Microsoft Excel AppleScript Mobileconfig AppleScript Mouse AppleScript Movie AppleScript Music AppleScript NetWork AppleScript Notes AppleScript NSArray AppleScript NSBitmapImageRep AppleScript NSBundle AppleScript NSCFBoolean AppleScript NSCharacterSet AppleScript NSColor AppleScript NSColorList AppleScript NSData AppleScript NSDictionary AppleScript NSError AppleScript NSEvent AppleScript NSFileAttributes AppleScript NSFileManager AppleScript NSFont AppleScript NSFontManager AppleScript NSImage AppleScript NSIndex AppleScript NSKeyedArchiver AppleScript NSKeyedUnarchiver AppleScript NSLocale AppleScript NSMutableArray AppleScript NSMutableDictionary AppleScript NSMutableString AppleScript NSNotFound AppleScript NSNumber AppleScript NSOpenPanel AppleScript NSPasteboard AppleScript NSPDFImageRep AppleScript NSpoint AppleScript NSPredicate AppleScript NSRange AppleScript NSRegularExpression AppleScript NSRunningApplication AppleScript NSScreen AppleScript NSSize AppleScript NSString AppleScript NSStringCompareOptions AppleScript NSTask AppleScript NSTimeZone AppleScript NSURL AppleScript NSURL File AppleScript NSURLBookmark AppleScript NSURLComponents AppleScript NSURLResourceKey AppleScript NSUserDefaults AppleScript NSUUID AppleScript NSView AppleScript NSWorkspace AppleScript Numbers AppleScript OAuth AppleScript ObjC AppleScript OneDrive AppleScript Osax AppleScript PDF AppleScript PDFAnnotationWidget AppleScript PDFContext AppleScript PDFDisplayBox AppleScript PDFDocumentPermissions AppleScript PDFKit AppleScript PDFnUP AppleScript PDFOutline AppleScript Photos AppleScript Photoshop AppleScript Plist System Events AppleScript PostScript AppleScript prefPane AppleScript Preview AppleScript Python AppleScript QR AppleScript QR Decode AppleScript QuickLook AppleScript QuickTime AppleScript record AppleScript Regular Expression AppleScript Reminders AppleScript ReName AppleScript Repeat AppleScript RTF AppleScript Safari AppleScript SaveFile AppleScript ScreenCapture AppleScript ScreenSaver AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript Sort AppleScript Sound AppleScript Spotlight AppleScript SRT AppleScript StandardAdditions AppleScript stringByApplyingTransform AppleScript System Events AppleScript System Settings AppleScript TemporaryItems AppleScript Terminal AppleScript Text AppleScript Text CSV AppleScript Text TSV AppleScript TextEdit AppleScript Translate AppleScript Trash AppleScript Twitter AppleScript UI AppleScript Unit Conversion AppleScript UTType AppleScript valueForKeyPath AppleScript Video AppleScript VisionKit AppleScript Visual Studio Code AppleScript webarchive AppleScript webp AppleScript Wifi AppleScript XML AppleScript XML EPUB AppleScript XML OPML AppleScript XML Plist AppleScript XML RSS AppleScript XML SVG AppleScript XML TTML AppleScript XML webloc AppleScript YouTube AppleScript Zero Suppress Applications Barcode OnLine Tools CityCode Design iPhone List Logs lsappinfo Memo Music perl PlistBuddy pluginkit postalcode ReadMe SF Symbols character id SF Symbols Entity sips Skype Slack sqlite TCC Tools Typography Video Wacom zoom