Was ist die sauberste Möglichkeit zum festlegen der Umgebungsvariablen DYLD_FRAMEWORK_PATH für einen release build?

Habe ich custom-frameworks in meinem app-bundle für WebKit, WebCore und JavaScriptCore. Ich würde, wie alle anderen frameworks, die abhängig von der system-Versionen von WebKit, WebCore, oder JavaScriptCore, um meine angepassten Versionen auch. Zum Beispiel meine eigene version von Webkit Lasten privater-system-frameworks, die wiederum davon abhängen, ob das system die version von WebKit. Dies bedeutet, dass sowohl meine WebKit und das system-WebKit geladen, und in der Regel ein Absturz passiert kurz nach.

Dem Weg, ich verstehe, dies sollte gemacht werden, ist die Einstellung der DYLD_FRAMEWORK_PATH Umwelt-Variablen, bevor Sie Ihre app-bundle mit der Ausführung beginnt (Such-Reihenfolge für das laden von frameworks kann hier gefunden werden: http://code.google.com/p/macdependency/wiki/SearchPaths). Sie können festlegen, Umwelt-Variablen, die im code mit setenv, aber es wird keinen Effekt für den aktuell Laufenden Prozess. Ich hätte zu re-starten Sie den Vorgang erneut, um wirksam zu werden. Ich möchte vermeiden diese zu.

Also meine Frage ist was ist der beste Weg, um die DYLD_FRAMEWORK_PATH vor der Ausführung der meine app-bundle? Diese arbeiten, die in einem release app-bundle zu. Gibt es eine Möglichkeit, ein Skript zu starten, wenn jemand auf meine app-bundle, bevor die ausführbare Datei gestartet. Oder gibt es andere Vorschläge gibt?

Vielen Dank im Voraus.

  • Was meinst du mit "alle anderen frameworks'? Wenn es nur Ihre privaten Rahmen, kannst du nicht einfach bauen Sie Links zu Ihrer privaten WebKit und Verwandte frameworks?
  • Wohl irgendwo in dem Berg der code, der meine benutzerdefinierte Webkit, DataDectors.framework geladen wird, wenn du mit der rechten Maustaste auf ein Fenster (Nur auf OSX Lion) und DataDectors ist ein privates system-framework (nicht von mir). Wenn dies geschieht DataDectors hängt von der system-Versionen von WebKit und JavaScriptCore, so dass, sobald dies passiert, gibt es jetzt 2 Kopien von WebKit geladen, meine und die der Systeme. Dies zu unerwarteten Ergebnissen führen und einen Absturz.
  • Haben Sie jemals zu verwalten, um diese arbeiten? Ich bin auf der Suche, etwas ähnliches zu tun, und bin nicht viel Glück mit einem der vorgeschlagenen Ansätze.
  • Ich landete in code-Einstellung der Umgebungsvariablen während der Ausführung und dann starten Sie eine zweite version von meinem Prozess aus dem ersten Prozess. Der erste Prozess dann abgeschlossen ist, verlassen die 2. Prozess der Ausführung in einer Umgebung mit der DYLD_FRAMEWORK_PATH gesetzt. FYI manchmal der debugger hatte Probleme bei der Befestigung an den zweiten Prozess richtig, normalerweise musste ich bereits eine Pause im main zu fangen, der 2. Prozess.
Schreibe einen Kommentar