Wie Sandbox ein Befehlszeilenprogramm?

8

Ich habe ein einfaches Unix-Tool von mir, das die Haupt-Kakao-App von einer Shell startet.

Ich muss es sandboxieren, aber wenn ich es ausführe, stürzt es mit dem Fehler "Illegal instruction: 4" ab, auf console.app kann ich die folgende Fehlermeldung sehen

  

Sandbox-Erstellung fehlgeschlagen: Initialisierung des Containerobjekts fehlgeschlagen: NIL   Container Info Objekt ohne Fehlerbeschreibung für visdiff

Die Datei ist korrekt mit einem Codesign signiert.

Ich habe die Post Mac OS App, Sandbox mit Befehl gelesen Linienwerkzeug? aber es hilft nicht

    
dafi 18.10.2012, 17:04
quelle

3 Antworten

5

Ich hatte genau dieses Problem und es ging weg, als ich eine eingebettete Info.plist hinzufügte.

Probieren Sie diese Markierungsflags aus (vorausgesetzt, Sie haben info.plist im Build-Verzeichnis):

-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __info_plist -Xlinker info.plist

    
Nick Moore 03.05.2013, 16:12
quelle
4

Wird die Konsolenanwendung direkt von der Konsole aus gestartet oder wird sie von einer Sandbox-Hauptanwendung aufgerufen? Ich habe einen ähnlichen Fehler erhalten, als ich versucht habe, einige Binärdateien in Sandbox zu schreiben, und ich konnte nur mit den folgenden Berechtigungen arbeiten:

%Vor%

Natürlich können Sie danach die Binärdatei nur von einem übergeordneten Prozess aufrufen, der bereits Sandboxed ist (deshalb fragte ich, wie Ihre Binärdatei aufgerufen wurde:)).

    
ryotakatsuki 19.10.2012 17:00
quelle
0

Es scheint, wenn Sie eine ausführbare Datei mit com.apple.security.inherit signieren, kann sie nur von einer anderen Anwendung aufgerufen werden, die bereits in der Sandbox ist. Sie können es also nicht mehr von cmdline aus aufrufen, nachdem Sie das Codesign ausgeführt haben.

    
rednoah 31.07.2014 05:27
quelle

Tags und Links