2012-04-13 15 views
0

Ich möchte eine App, die "in sich abgeschlossen" ist (ich weiß nicht, ob ich das richtige Wort verwende. "Die App in den Papierkorb zu legen wird alles entfernen")). Aber die App benötigt einige Ressourcen zum Ausführen. Normalerweise lege ich diese Ressourcen in einen Ordner. Ich möchte diese Ressourcen in den App-Ordner verschieben (Paketinhalt). Kann ich das machen? Ist es eine gute Übung, das zu tun?Erstellen eines Ordners in Mac OS App

Wenn ich die App direkt von Xcode läuft, läuft die App gut. Aber wenn ich es vom Finder aus führe, wird die App sagen, dass der Ressourcenordner nicht erstellt werden kann, weil die Berechtigung verweigert wurde. Ich habe die Ordner-Berechtigung der App überprüft - Benutzer (ich) hat Lese-/Schreibzugriff. Ich frage mich, was dieses unterschiedliche Verhalten verursacht.

Die letzte Option ist, Application Support-Ordner zu verwenden, aber ich möchte keine Spuren hinterlassen, wenn Benutzer die App löscht.

Kann mir hier jemand helfen?

+0

Ich glaube, das ist der Standard für das Verpacken von Apps unter Mac OSX. Ich glaube auch, dass Sie in einem Verzeichnis Ausführungsrechte haben müssen, um darauf zugreifen zu können. – jahroy

Antwort

3

Anwendungen leben im Verzeichnis /Applications, wo Benutzer im Allgemeinen keinen Schreibzugriff haben. Eine App zu verlangen, Schreibrechte in Systemordnern zu haben, ist extrem schlecht.

Laufzeitdateien sollten in ~/Library/Application Support leben. Während dieser Ordner dazu neigt, etwas zu sammeln, wenn Ihre Anwendung wirklich große Dateien zurücklässt, sollte das kein Problem sein.

Wenn Sie möchten, dass Ihre Anwendung in sich abgeschlossen ist, muss sie von Anfang an mit allen benötigten Dateien geliefert werden und nicht auf die Festplatte geschrieben werden.

+0

Es klingt für mich wie die Ressourcen in Frage sind nicht _WRITTEN BY_ die App zur Laufzeit, aber _BUNDLED WITH_ die App zum Zeitpunkt der Erstellung. – jahroy

+0

@Jahroy: Wäre das der Fall, gäbe es kein Problem. –

+0

Tut mir leid, ich sollte mich über die Frage klar sein. Ich wollte in der Laufzeit Ressourcen ändern. Ich werde mit der Anwendungs-Support-Route gehen. Vielen Dank –

Verwandte Themen