Cosa fa effettivamente un file .app?


12

Sono nuovo di zecca per Mac OS X (proveniente da Windows) e sto cercando di capire i file .app. In Windows, avevamo eseguibili (file .exe). Se ne aprissi uno, il programma verrebbe eseguito e tutti gli altri file necessari si troverebbero altrove. In Mac OS X, a quanto ho capito, questi "file" .app sono in realtà più simili a cartelle che contengono non solo l'eseguibile, ma anche altri file di cui l'app potrebbe avere bisogno.

La mia domanda è: cosa fanno esattamente questi file .app? In che modo è diverso dal perforarli ed eseguire l'eseguibile effettivo?

Recentemente stavo cercando di far funzionare un'app su OS X. Alla fine l'ho fatta funzionare (sembra che JAVA_HOME debba essere impostato). Tuttavia, funziona solo quando eseguo il drill nella cartella .app ed eseguo lo script della shell che avvia l'app. Se faccio doppio clic sul file / cartella .app, l'app rimbalza nel dock per un po ', alla fine si ferma e non succede nulla (tranne i fan che girano come matti). Quindi chiaramente il sistema operativo sta facendo qualcosa di diverso quando tenta di eseguire l'app dal file .app anziché direttamente dall'eseguibile all'interno.

Mi piacerebbe capire esattamente cosa sta facendo l'app .app che impedisce a questa app di funzionare in modo da poter lavorare per risolvere il problema. Cordiali saluti, l'app è lo sviluppatore SQL di Oracle.


2
.app è solo un'estensione e non è obbligatoria su OSX perché una cartella si comporti come un'app. Hai fatto clic con il tasto destro sul file in questione e ne hai rivelato il contenuto? Potrebbe aiutarti a individuare il layout e perfezionare l'errore che stai riscontrando.
bmike

L'estensione .app trasforma una normale directory nel cosiddetto "bundle di applicazioni", che include il file eseguibile dell'applicazione e le relative risorse (icone, grafici, file delle proprietà, localizzazioni, ecc.). Dai un'occhiata a en.m.wikipedia.org/wiki/ Articolo Application_bundle o documentazione per sviluppatori Apple.
Alex Popov,

Risposte:


12

Le "app" sono "Pacchetti di pacchetti" è il gergo di Apple e sono trattate appositamente dal sistema operativo. Come accennato in precedenza, si tratta in realtà di directory Unix, in un formato speciale. Il file eseguibile Unix effettivo si trova in una sottodirectory denominata MacOS, che è possibile visualizzare utilizzando il menu "Mostra contenuto pacchetto" nel Finder.

L '"app" è analoga alla directory creata durante l'installazione di un programma Windows. Puoi davvero navigare nell'app ed eseguire il file eseguibile Unix.

Questo non risolve il tuo problema, ma senza sapere di più sull'app non sarà risolto manipolando il pacchetto. Dovrai contattare lo sviluppatore.

Puoi anche guardare l'app Console, che ti permetterà di esaminare qualsiasi errore o messaggio di avviso.


Grazie per le informazioni. Viene fuori che l'app si è affidata a una variabile di ambiente impostata nella shell ma non a livello globale (per l'utilizzo da parte delle app GUI avviate da Finder o Spotlight, ad esempio). Ecco perché stavo vedendo un comportamento diverso quando l'ho eseguito dalla shell rispetto all'icona nel dock. Da allora ho risolto il problema impostando quella variabile a livello globale.
user1015721
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.