Sandboxed OSX App mit COMMAND LINE-Hilfsprogramm gibt 'unable to root path' ab

9

Ich baue eine Mac App, die mit dem Befehlstool 'unrar' gebündelt ist, um einige Dateien zu entpacken. Die App ist Sandkasten.

In xcode kopiere ich das unrar-Befehlstool in den Resourse-Ordner der App (mit einem Unterpfad namens "exec"):

Dateien kopieren: Ziel: Ressourcen - Unterpfad: Exec

Nach der Kopierphase führe ich ein Run Script aus, um die Berechtigungen und Code Signing wie folgt zu setzen:

Skript ausführen: Shell: / bin / sh

%Vor%

In der App selbst verwende ich eine NSTask, um den unrar-Befehl auszuführen:

%Vor%

Das unrar.entitlements enthält:

%Vor%

Beim Ausführen der App funktioniert alles einwandfrei und die Dateien werden extrahiert.

Aber ... dann, wenn ich das Systemlog überprüfe, sehe ich die folgende Nachricht:

secinitd [332]: unrar [94747]: Der Root-Pfad für das Paket der Hauptprogrammdatei konnte nicht abgerufen werden: /Applications/App.app/Contents/Resources/exec/unrar

Die Meldung verschwindet, wenn ich das obige Ausführungsskript nicht ausführe, aber die Berechtigungen für das Befehlsruftool 'unrar' nicht festgelegt sind und Sandboxing fehlschlägt.

Ich ziehe mein Gehör für drei Tage heraus, was diese Botschaft bedeutet und wie ich sie lösen kann, aber ich habe keine Ideen mehr.

Die Suche nach google oder stackoverflow hilft auch nicht.

Kann mir bitte jemand helfen, das zu lösen?

Danke, Andre.

(Sorry für den gesamten Text, aber ich darf noch keine Bilder posten.)

    
Eddie 26.03.2015, 15:40
quelle

1 Antwort

0

Ich glaube, die ausführbare Unrar-Datei muss sich in

befinden %Vor%

Der Ordner Resources ist auf nicht ausführbaren Inhalt beschränkt.

    
C0C0AL0C0 11.06.2017 10:08
quelle