Ist es möglich, zwei Kopien der Mac-Anwendung mit verschiedenen plist-Dateien auszuführen?

368
Jason

Ich versuche, zwei Versionen der MessagesApp unter OSX mit zwei verschiedenen Benutzerkonten auszuführen. Ich kann die .appDatei problemlos kopieren / einfügen und die App als zwei verschiedene Prozesse ausführen. Da sie jedoch dieselbe plist und Datenbank verwenden, verfügen sie über dieselben Konten / Daten (hier ist eine gute Liste der von ihr erstellten Dateien: https: // apple. stackexchange.com/a/107120/62420 )

Ist es möglich, den Speicherort einer oder mehrerer Apps zu ändern? Kann ich die App so ausführen, dass ich den Dateispeicherort der angeforderten Datei ändern kann, wenn sie den Dateizugriff anfordert? Wenn es beispielsweise angefordert wird, ~/Library/Preferences/com.apple.imservice.iMessage.plistkann ich das zur ~/Library/Preferences/com.apple.imservice.iMessage2.plistVerwendung des Prozessnamens oder der ID umleiten ?

3
Ich habe es nie mit einer Apple-App ausprobiert, aber im Allgemeinen können Sie diese Art von Tricks nur vor dem Kompilieren ausführen. Tetsujin vor 6 Jahren 1
chroot jail sollte für Sie arbeiten ssnobody vor 6 Jahren 0

2 Antworten auf die Frage

1
Samuel Tulach

Ich denke, dass es nicht möglich ist, den Prozess über seine ID oder etwas in eine andere Datei umzuleiten. Wenn Sie jedoch mehr Konten gleichzeitig haben möchten, können Sie einen neuen Benutzer erstellen und ihm eine andere Apple-ID zuordnen und dann zwischen den Konten wechseln.

Apple empfiehlt , getrennte Computerkonten zu führen, um mehrere Benutzer auf einem einzigen Computer zu verwalten.

Sie können natürlich ein zusätzliches Benutzerkonto für sie einrichten, sodass sich ihre iMessage-Kontoeinstellungen von Ihren unterscheiden.


1
bbaassssiiee

Nein, dies ist nicht möglich, da in OSX Codesigning eingeführt wurde, um Manipulationen an Apps zu verhindern. Die plist ist Teil des Bundles, also Teil der Unterzeichnung durch den Entwickler.

Code-Signatur in der Tiefe

Die Info.plist im App-Bundle definiert die Konfiguration, die nicht in die Binärdatei eingebettet ist, siehe Bundle-Struktur . Die Bundle-ID bezieht sich auf die Präferenzdateien, die geschrieben werden können. Da die Bundle-ID Teil der App ist und daher signiert ist, können Sie keine alternative Voreinstellungsdatei erstellen.

Sie könnten durch Reifen springen und versuchen, andere Dateisysteme zu mounten und zu symbolisieren, um diese Datei zwischen dem Starten von zwei Instanzen der App auszutauschen. Ich bezweifle jedoch, dass Sie die Risiken täglich eingehen würden.

Dies ist ein Kommentar, keine Antwort, auch wenn in der Antwort ein Kopfgeld von +100 enthalten ist. JakeGould vor 6 Jahren 0
Wird ein Nein nicht als Antwort akzeptiert? bbaassssiiee vor 6 Jahren 0
Diese Dateien befinden sich nicht im Paket, sondern in Ihrem Home-Verzeichnis Jason vor 6 Jahren 0
Die Info-Liste, die dem Betriebssystem mitteilt, was die App ist, befindet sich im Paket. ein öffnen und sehen. Wenn Sie keine Änderungen speichern, brechen Sie die Signatur nicht. Andernfalls können Sie [Ich bin kein Entwickler, aber ich habe mich schon mit diesem Zeug herumgespielt ... & ist fehlgeschlagen, selbst wenn ich meine eigenen kompilierte Version & Interne Änderungen - Ich könnte die App dazu bringen, eine unabhängige Ordner- / Prefs-Struktur zu bilden, aber ich kann sie nicht lesen / schreiben. Tetsujin vor 6 Jahren 0