• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Grundsätzliche Möglichkeiten zum Sichern von Konfigurationsparametern ?

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Ein Frage an die OS X - Programmierexperten:
Welche grundsätzlichen Möglichkeiten gibt es um Konfigurationseinstellungen zu persistieren?
Der Standard dürfte vermutlich die plist sein - aber was gibt es darüber hinaus?

Hintergrund der Frage:
Ich benutze eine Anwendung (last.fm client) die einen bestimmten Parameter (wohl) nicht in der dazugehörigen plist sichert. Seit Snow Leopard funktioniert diese Mimik bei vielen (aber wohl nicht allen) last.fm Benutzern jetzt nicht mehr. Was könnte das Problem sein?
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Es gibt auch (üblich bei BSD-Tools) die etwas bauernhafte althergebrachte Methode, unsichtbare Dateien direkt im privaten Ordner zu parken. (unter anderem)
 

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
Folgende Einstellung funktionierte nicht: "Icon nicht im Dock anzeigen".

Interessant in diesem Zusammenhang waren zwei Warnings (in der Konsole):
The domain/default pair of (/Applications/Last.fm.app/Contents/MacOS/../../Contents/Info, LSUIElement) does not exist
Could not write domain /Applications/Last.fm.app/Contents/MacOS/../../Contents/Info; exiting

If the Info.plist of an app has a property LSUIElement set to 1, then it does not appear in the dock or app switcher. I used that to make LaunchBar hide. It's quite useful. You can hide your SuitCase, etc. using the same method: Right-click (or Ctrl-Click) on the app in the Finder and select Show Package Contents. Navigate into the Contents folder, then open the Info.plist. If you have the Dev Tools installed, it will open in the Property List Editor, and you can simply change the LSUIElement to 1 (if it is there) or select the expanded Root entry and click Add Child to make a new entry for LSUIElement and set it to 1. If you don't have the Dev Tools, you'll have to manually edit the XML with any XML editor, or vi from xterm, etc.

Erkenntnisse:
- Die gesuchte Einstellung "Icon nicht im Dock anzeigen" findet in sich "Info.plist" im Ordner "Contents" der Applikation.
- Über die Applikation ließ sich der Wert nicht verändern, da nur das System hierauf Schreib-/Leserechte hatte.

Fragen:
- Haben sich die Defaults für die Schreib-/Leserechte unter Snow Leopard geändert?
- Ist es zwingend erforderlich allen Objekten (dem Programm, dem Ordner und der Datei) entsprechende Schreibrechte zu geben?
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Haben sich die Defaults für die Schreib-/Leserechte unter Snow Leopard geändert?
Die Defaults für Programme legt der jeweilige Entwickler selbst fest. Wird nicht vom System vorgegeben.

Ist es zwingend erforderlich allen Objekten (dem Programm, dem Ordner und der Datei) entsprechende Schreibrechte zu geben?
Klares: Jein.
Man kann diesen Key auch einfach per Terminal setzen, als Admin (mit Kennwort):
Code:
[size="-2"]sudo defaults write "/Applications/Last.fm.app/Contents/Info" "LSUIElement" -bool YES;[/SIZE]
Nach Änderung einer solchen Einstellung ist ggf eine Neuanmeldung nötig, um sie wirksam werden zu lassen.
 

toc-rox

Weigelts Zinszahler (Rotfranch)
Registriert
15.11.09
Beiträge
247
@Rastafari: Vielen Dank für deine qualifizierte Unterstützung.

Durch die originäre Applikation wird das "LSUIElement" als vom Typ "string" definiert ("0" = anzeigen, "1" = nicht anzeigen):
Code:
defaults write "/Applications/Last.fm.app/Contents/Info" "LSUIElement" -string "1"

Kontrollieren läßt sich Einstellung beispielsweise so:
Code:
defaults read "/Applications/Last.fm.app/Contents/Info" "LSUIElement"
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Durch die originäre Applikation wird das "LSUIElement" als vom Typ "string" definiert
Unerheblich, die Strings "1" und "0" als Alternative zu Bool'schen Werten gehen auch.
(Das gilt für alle plists im System, Abwärtskompatibilität zu NextStep und so...)
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Hallo,

ich verstehe Dein Anliegen nicht so ganz.

Eine Applikation, die es Dir ermöglicht, das Dock-Icon ein oder auszublenden hat "LSUIElement" immer auf "true".
Die Begründung liegt darin, dass Du während der Laufzeit eines "Dienstes" (Programms mit der angesprochenen Option), dieses in den Programmmodus versetzen kannst.
Andersrum ist dies aber nicht möglich.

D.h. z.B:

- Programm startet immer mit nicht sichtbarem Dock-Icon
- Möchte der Anwender das Dock-Icon sehen? (Einstellung wird ausgewertet)
- Wenn ja, dann wechsle in den Programmmodus
- Wenn nein, mache nichts

So ist der Ablauf.
Ein Programmpaket darf während der Laufzeit auch nicht verändert werden.

Ich mutmaße, dass halt im Code der Entwickler etwas nicht 10.6 konform ist.

Viele Grüße