Come creare un .app per Mac OS X con uno script di shell?


12

Ho provato a seguire alcuni tutorial, ma ottengo questo: Errore PowerPC

Come posso risolvere questo problema? Ho aggiunto un info.plist (ho appena copiato e incollato il file di un'altra app e ho cambiato alcune cose.)

Inoltre, chmod +x myApprendevo eseguibile lo script.

PS Sto usando El Capitan


Non possiamo indovinare cosa hai fatto prima di ricevere il messaggio di errore. Quali tutorial hai seguito, dopo quale passaggio ti sei bloccato?
Nohillside

1
Ho creato una cartella denominata myApp.app, quindi una sottocartella denominata Contenuti, quindi MacOS, quindi uno script shell myApp che contiene #!/bin/bash ; say "Hi" ; exit 0(Con ciascuno dei comandi su righe diverse e senza punto e virgola).
Flare Cat,

1
Uno script bash che ha eseguito il set di bit non deve necessariamente essere inserito in un bundle per essere eseguito, basta fare doppio clic su di esso solo nel Finder o eseguirlo dal Terminale. Se vuoi davvero un pacchetto di applicazioni, crealo utilizzando AppleScript o Automator, quest'ultimo è facile. Aggiungi un'azione Esegui script shell e inserisci il codice.
user3439894,

@ user3439894 Ho provato automater nel metodo che hai descritto prima di pubblicarlo, ma l'app non funzionava sul computer di destinazione.
Flare Cat,

@ user3439894 Bene, per qualche motivo non riesco a modificare il mio commento precedente. L'errore era simile a "Questo tipo di applicazione non è supportato su questo computer".
Flare Cat,

Risposte:


21

Bene, sono anni che uso questo semplice trucco per avere script bash nell'applicazione (e davvero non capisco perché tutte le persone provino soluzioni così complicate come creare cartelle "Contenuti", info.plist o usare Automator o Platypus o così ... . ????): crea una cartella denominata "YourApplication.app". Metti il ​​tuo file di script bash direttamente in questa cartella nel modo che preferisci (Finder, terminale ecc.). Lo script bash deve essere ovviamente eseguibile (usare chmod + x se necessario). Non sono necessarie altre cartelle o file (fino a quando non è necessario chiamare altri script o file eseguibili direttamente dallo script) Il trucco è quello di nominare lo script esattamente con lo stesso nome della cartella dell'applicazione ma senza estensione. Nel caso descritto qui, il file di script deve essere denominato "YourApplication". È tutto ! Funziona su Mac OS X da Snow Leopard a Mavericks. Se qualcuno può provare versioni più recenti del sistema operativo e dimmelo.

Nota: lo script deve avere una dimensione di almeno 28 byte, altrimenti non verrà eseguito. Può essere imbottito con righe vuote per raggiungere le dimensioni minime. Inoltre, la prima riga della sceneggiatura deve essere una shebang; es . #!/bin/basho #!/bin/perl.


Prova ad aggiungere altre righe, ti dà il messaggio che hai ricevuto se non ci sono abbastanza righe nel tuo script.
Pierre Lagarde,

Ho modificato la tua risposta per includere le informazioni critiche mancanti e le ho votate.
user3439894,

OK grazie per la correzione e l'upgrade ... Lo sto usando da troppo tempo e mi sono dimenticato della necessità di 28 byte ... Non ho una sceneggiatura così piccola ovviamente: D
Pierre Lagarde,

1
Ho appena provato questo su macOS Sierra e funziona anche lì.
user3439894,

1
@FlareCat In effetti, ho appena controllato e immagino che qualsiasi shebang con un interprete esistente lo farà (provato con Perl). Se hai provato altre lingue, basta dire;).
Pierre Lagarde,

7

Se si tratta di un semplice script di shell, non è necessario racchiuderlo in un pacchetto di applicazioni; puoi fare doppio clic sullo script stesso. Tuttavia, non avrai la possibilità di avere un'icona personalizzata o altre cose del genere.

Penso che ci siano alcuni aiutanti là fuori che possono avvolgere semplici script, ma l'unico con cui ho esperienza è Platypus che ti permette di far funzionare gli script shell / python / perl / ruby ​​/ etc come normali applicazioni con icone, I / O reindirizzamenti, ecc.


L'ornitorinco sembra buono, ma sarebbe bello sapere come farlo manualmente.
Flare Cat,

1
Testato Platypus, funziona esattamente come volevo! Grazie per il suggerimento
Flare Cat,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.