Ich versuche herauszufinden, wie ich ein in Ruby ( Sass ) geschriebenes Paket zu einem Cocoa bündeln könnte Anwendung (Objective-C, nicht Ruby Cocoa) für mich auszuführen (über NSTask ist in Ordnung, es sei denn, es gibt eine einfache Möglichkeit, ObjC & lt; - & gt; Cocoa zu überbrücken, die mir nicht bekannt ist).
Das Sass-Paket muss mit "gem install" oder "rake install" installiert werden. Dabei werden ton Dateien in mein Verzeichnis ~ / .gem gelegt. Da ich möchte, dass jeder, der meine Cocoa-basierte Anwendung installiert hat, in der Lage ist, dieses Tool in meiner App auszuführen, möchte ich nicht, dass der Benutzer etwas Zusätzliches installieren muss, also hoffe ich es tun zu können um alles, was ich brauche, in das Resources-Verzeichnis meines App-Pakets einzubetten.
Aber ich bin nicht so vertraut mit den Interna und der Struktur von Ruby (Sorry, ich habe Probleme, ObjC / Cocoa in meinem Kopf zu behalten!) , Es ist mir nicht klar, welcher die 1.444 Dateien, die im Verzeichnis ~ / .gem installiert wurden (Ja, ich habe gezählt) Ich muss in die Anwendung einbetten und was ich tun muss, damit die Verzeichnisverweise usw. richtig funktionieren .
Wenn jemand Erfahrung mit der Einbettung eines Ruby-Tools in eine Cocoa-Anwendung hat, würde ich Ihre Eingabe sehr schätzen. Ich habe nicht erwartet, dass dies so schwer ist, wenn man bedenkt, dass Ruby auf Mac OS X installiert ist ... aber offensichtlich ist dieses Paket (typischerweise? Atypisch?) Mehr als nur eine einzige Skriptdatei. ..
Sie können Edelsteine an einem bestimmten Ort installieren:
%Vor%Kopieren Sie dann den Ordner als Teil Ihres Build-Prozesses in Ihre Ressourcen. Wenn du sass laufen willst, finde deinen Edelsteinordner. Nennen Sie Ruby wie folgt:
%Vor%(In GitHub eingegeben, kann dumme Fehler haben)
Beachten Sie, dass Sie möglicherweise auch Ruby (vielleicht macruby) bündeln möchten, um Kompatibilitätsprobleme zu vermeiden. Wenn nicht, stellen Sie sicher, dass Sie alle von Ihnen unterstützten Versionen von OS X testen, insbesondere 10.9, da ruby auf 2.0 aktualisiert wurde.
Vielen Dank an @Jacob Lukas , ich habe festgestellt, dass GEM_HOME auf gem install <gem>
nicht korrekt gesetzt wurde Hängen Sie die Abhängigkeiten an. Also für meinen Fall - wo ich nur ein Skript ausführen muss, das ich in einem Xcode-Plugin erzeuge - endete ich mit:
gem install -i ~/xCodeProjects/PluginOne/gems xcodeproj --verbose
um die Edelsteine zu erhalten Abhängigkeiten. Dann habe ich verwendet:
%Vor%Tags und Links ruby objective-c cocoa sass