Jak debugować AppleScript?

Jakie wskazówki i triki masz do debugowania AppleScript? Czy jest debugger? Jeśli nie, jaki jest najlepszy sposób wstawiania "wydruków", aby wyświetlić wartość zmiennych? Czy istnieje sposób na" ładny druk " bardziej skomplikowanych struktur danych?

Author: Daryl Spitzer, 2009-09-23

4 answers

  1. Script Debugger
  2. XCode
  3. Uzyskanie właściwości obiektu (patrz poniżej), aby zrozumieć, dlaczego nie powiedzie się, gdy zostanie uruchomiony z Edytora skryptów. Możesz również użyć słowa class, aby zobaczyć, jaka jest właściwość class A. Słownik dla aplikacji jest dobrym punktem wyjścia.

    Jedną z technik, które często by mi pomogły, (i które nadal czasami robię) jest mówienie czegoś, aby zwróciło swoje właściwości, jak ta: {]}

    tell application "TextEdit"
      get properties
    end tell
    
  4. Instrukcje logowania i konsola.aplikacja, dla debugowanie zdarzeń runtime. (dalej poniżej). Można oczywiście włączać i wyłączać debugowanie, ustawiając właściwość

    Poniżej znajduje się techuqe, którego używam do śledzenia błędów wykonawczych, w apletach, regułach poczty i co masz. Jeśli się nie powiedzie, numer błędu i Wiadomość są logowane do TestDrive.log, i znajduje się w lewym marginesie konsoli.app ...

    tell application "TextEdit"
        try
            set a to text 0 of its name
        on error e number n
            my logit("OOPs: " & e & " " & n, "TestDrive")
        end try
    end tell
    
    to logit(log_string, log_file)
        do shell script ¬
            "echo `date '+%Y-%m-%d %T: '`\"" & log_string & ¬
            "\" >> $HOME/Library/Logs/" & log_file & ".log"
    end logit
    
 16
Author: McUsr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-27 22:53:47

Dla bardzo prostych potrzeb debugowania "stylu printf", spróbuj

display dialog "my variable: " & myVar
 50
Author: tuomassalo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-10 09:30:08

Jeśli budujesz dowolną ilość skryptów, ScriptDebugger jest najlepszym narzędziem, jakie mogę polecić. Mimo to...

Xcode {[2] } jest darmową opcją, która może być używana do tworzenia skryptów Applescriptów i może przechodzić przez kod za pomocą debuggera. Ta umiejętność jest przede wszystkim uwzględniona, więc możesz tworzyć aplikacje Cocoa za pomocą AppleScript Studio, ale możesz jej użyć do dowolnego rozwoju AppleScript.

Jeśli szukasz czegoś prostszego, możesz sprawdzić Smile, który tak naprawdę nie jest debugerem, ale oferuje funkcje przydatne do debugowania, które nie są dostępne w standardowym Edytorze skryptów.

 9
Author: Chuck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-26 20:46:21

Jeśli okno dialogowe jest zbyt małe, możesz użyć TextEdit, aby wyświetlić Duże zwroty:

tell application "TextEdit"
    activate
    make new document
    set text of document 1 to myResults
end tell

Źródło http://forums.macrumors.com/showthread.php?t=446171

 6
Author: Hex Bob-omb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-23 23:20:36