2009-06-07 13 views
6

Da es keine Xcode-Skriptvariable für "aktuelles Projektverzeichnis" gibt, wie können Sie ein Skriptmenüelement erstellen, um den Clang Static Analyzer für Ihr aktuelles Projekt von Xcode aus auszuführen?Verwendung von Clang Static Analyzer aus XCode

Antwort

3

Aus dem Menüpunkt XCode Skript „Edit User Scripts“ geben Sie das folgende Skript:

#!/bin/bash 
result=$(osascript << END 
tell application "Xcode" 
tell active project document 
    set projectPath to path as string 
end tell 
end tell 
return projectPath 
END 
) 

cd "$result" 

/Developer/clangchecker/scan-build -k -V xcodebuild -configuration Debug -sdk iphonesimulator3.0 

Offensichtlich müssen Sie den Pfad installieren von Clang, anpassen und auf die Version des Einstellringes SDK, das Sie verwenden.

Denken Sie daran, unmittelbar vor der Verwendung von scan-build eine "Alle bereinigen" durchzuführen, da die Ergebnisse möglicherweise unvollständig sind.

+0

Jedes Mal, wenn ich dieses Skript ausführen, muss ich Xcode neu starten, um es erneut auszuführen. Warum? Gibt es eine Möglichkeit, das Skript zweimal ohne Neustart auszuführen? Es wird mir nicht erlauben, es noch einmal zu nennen! –

+2

Hmmm .... Ich hatte dieses Problem nie ... JEDOCH: Diese Funktion ist in XCode 3.2 eingebaut, ich würde einfach upgraden und dieses Skript ganz vergessen. – mmc

0

Ich glaube, dass die $ {PROJECT_DIR} -Umgebungsvariable ist, was Sie für das Verzeichnis des Projekts wünschen, das ein Build-Phase-Skript ausführt.

+0

$ {PROJECT_DIR} funktioniert in einem Build-Phase-Skript, ja, aber nicht in einem Benutzerskript, das über das Skriptmenü ausgelöst werden kann. – mmc

+0

Ja, Ihre Frage war sehr klar. Es tut uns leid. Sie könnten in Ihrem Projekt immer noch ein Claming-Ziel erstellen (das ist, was ich normalerweise tue). Nicht so sauber wie ein Menüskript (und Sie müssen natürlich in jedem Projekt ein Skript erstellen), aber es funktioniert gut. –

+0

Ah ha! Ich hatte nicht einmal daran gedacht, ein separates Ziel festzulegen. Es gibt viele verschiedene Möglichkeiten, sich diesem zu nähern, denke ich. – mmc

1

FYI, Xcode 3.2 (Snow Leopard nur glaube ich) enthält den Clang Static Analyzer in der "Build and Analyze" -Menüoption.

http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Ein Nachteil von Xcode 3.2 (abgesehen von nur auf Snow Leopard arbeiten) ist, dass die v2.x Simulatoren nicht zu funktionieren scheint - in der Tat, ich habe gesehen, dass Beiträge v2 anzeigt. x-Builds werden überhaupt nicht unterstützt.