Wie erstelle ich eine Mac OS X .app mit einem Shell-Skript?

12

Ich habe versucht, ein paar Tutorials zu befolgen, aber ich verstehe Folgendes: PowerPC-Fehler

Wie kann ich das beheben? Ich habe eine info.plist hinzugefügt (ich habe gerade die Datei einer anderen App kopiert und eingefügt und ein paar Dinge geändert.)

Außerdem habe ich chmod +x myAppdas Skript ausführbar gemacht.

PS Ich benutze El Capitan

Flare Cat
quelle
Wir können nicht erraten, was Sie getan haben, bevor Sie die Fehlermeldung erhalten haben. Welchen Tutorials haben Sie gefolgt, nach welchem ​​Schritt sind Sie festgefahren?
Nohillside
1
Ich habe einen Ordner namens myApp.app erstellt, dann einen Unterordner namens Contents, dann MacOS, dann ein myApp-Shell-Skript, das enthält #!/bin/bash ; say "Hi" ; exit 0(mit jedem der Befehle in verschiedenen Zeilen und ohne Semikolon).
Flare Cat
1
Ein Bash-Skript, bei dem das Bit ausgeführt wird, muss nicht unbedingt in einem Bundle abgelegt werden, um ausgeführt zu werden. Doppelklicken Sie einfach darauf, wenn Sie es nur im Finder haben, oder führen Sie es über das Terminal aus. Wenn Sie wirklich ein Anwendungspaket möchten, erstellen Sie es mit AppleScript oder Automator. Letzteres ist einfach. Fügen Sie eine Aktion "Shell-Skript ausführen" hinzu und platzieren Sie Ihren Code darin.
user3439894
@ user3439894 Ich habe Automater in der von Ihnen beschriebenen Methode ausprobiert, bevor ich dies veröffentlichte, aber die App wurde nicht auf dem Zielcomputer ausgeführt.
Flare Cat
@ user3439894 Aus irgendeinem Grund kann ich meinen vorherigen Kommentar nicht bearbeiten. Der Fehler war etwa "Diese Art von Anwendung wird auf diesem Computer nicht unterstützt."
Flare Cat

Antworten:

21

Nun, es ist Jahre her, dass ich diesen einfachen Trick verwende, um Bash-Skripte in der Anwendung zu haben (und wirklich nicht wirklich verstehe, warum alle Leute so komplizierte Lösungen ausprobieren, wie das Erstellen von "Inhalts" -Ordnern, info.plist oder Automator oder Platypus oder so .. . ????): Erstellen Sie einen Ordner mit dem Namen "YourApplication.app". Legen Sie Ihre Bash-Skriptdatei direkt in diesen Ordner, so wie es Ihnen am besten passt (Finder, Terminal usw.). Das Bash-Skript muss natürlich ausführbar sein (verwenden Sie bei Bedarf chmod + x). Keine Notwendigkeit für andere Ordner oder Dateien (bis Sie natürlich andere Skripte oder ausführbare Dateien aus Ihrem Skript heraus aufrufen müssen) Der Trick besteht darin, Ihr Skript mit genau demselben Namen wie der Anwendungsordner zu benennen, jedoch ohne Erweiterung. In dem hier beschriebenen Fall muss die Skriptdatei "YourApplication" heißen. Das ist alles ! Es funktioniert auf Mac OS X seit Snow Leopard to Mavericks. Wenn jemand neuere Betriebssystemversionen anprobieren und es mir sagen kann.

Hinweis: Das Skript muss mindestens 28 Byte groß sein, sonst wird es nicht ausgeführt. Es kann mit Leerzeilen aufgefüllt werden, um eine Mindestgröße zu erreichen. Außerdem muss die erste Zeile des Skripts ein Schebang sein. zB #!/bin/bashoder #!/bin/perl.

Pierre Lagarde
quelle
Versuchen Sie, weitere Zeilen hinzuzufügen. Sie erhalten die Meldung, die Sie erhalten haben, wenn Ihr Skript nicht genügend Zeilen enthält.
Pierre Lagarde
Ich habe Ihre Antwort so bearbeitet, dass sie die kritisch fehlenden Informationen enthält, und sie hochgestimmt.
user3439894
OK, danke für die Korrektur und das Upvoting ... Ich benutze dies seit zu langer Zeit und habe die Notwendigkeit von 28 Bytes vergessen ... Ich habe natürlich kein so kleines Skript: D
Pierre Lagarde
1
Ich habe das gerade unter macOS Sierra getestet und es funktioniert auch dort.
user3439894
1
@FlareCat Tatsächlich habe ich gerade nachgesehen und ich denke, jeder Schebang mit einem vorhandenen Interpreter reicht aus (versucht mit Perl). Wenn Sie andere Sprachen ausprobiert haben, sagen Sie es einfach;).
Pierre Lagarde
7

Wenn es sich um ein einfaches Shell-Skript handelt, müssen Sie es nicht in ein Anwendungspaket einbinden. Sie können auf das Skript selbst doppelklicken. Sie können jedoch kein benutzerdefiniertes Symbol oder ähnliches verwenden.

Ich denke, es gibt einige Helfer, die einfache Skripte verpacken können, aber das einzige, mit dem ich Erfahrung habe, ist Platypus , mit dem Sie Shell / Python / Perl / Ruby / etc-Skripte wie normale Anwendungen mit Symbolen ausführen lassen können. O Weiterleitungen usw.

bjb
quelle
Platypus sieht gut aus, aber es wäre toll zu wissen, wie man es manuell macht.
Flare Cat
1
Platypus getestet, funktioniert genau so, wie ich es wollte! Danke für den Vorschlag.
Flare Cat