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
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
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:)).
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.
Tags und Links command-line cocoa sandbox