Che cosa rende un "pacchetto" macOS come pacchetto?

3

Un pacchetto è solo una directory, apparentemente, ma in qualche modo Finder e Path Finder sanno che è un pacchetto.

Come è indicato nel file system? Ho provato alcune modifiche in una directory per renderlo un pacchetto ma senza risultati.

    
posta Dan Rosenstark 10.04.2017 - 19:06
fonte

2 risposte

5

Risposta breve

Per registrare un documento come un pacchetto, lo sviluppatore di DayOne avrebbe dovuto modificare le informazioni sul tipo di documento nel file lista delle informazioni delle informazioni (Info.plist) dell'app DayOne.

Risposta lunga

Un pacchetto è una directory del file system utilizzata da macOS e iOS. È fondamentalmente una directory che apparirà come un singolo file, ma che in effetti potrebbe contenere uno stato conservato di file e cartelle. Quindi, una cartella potrebbe avere un numero di sottocartelle e molti file, ma come pacchetto verrà visualizzata agli utenti come un singolo file. Ad esempio, in macOS, il Finder vedrà un pacchetto come un singolo file per evitare che gli utenti facciano i conti con i contenuti effettivi. Tuttavia, gli utenti possono visualizzare i contenuti tramite vari metodi, ad esempio facendo clic con il pulsante destro del mouse sul pacchetto e selezionando Mostra contenuto pacchetto dal menu di scelta rapida.

La Guida alla programmazione dei pacchetti di Apple, disponibile sul sito degli sviluppatori, ha un'intera sezione sui pacchetti di documenti. Di seguito sono riportate alcune citazioni pertinenti:

To register a document as a package, you must modify the document type information in your application’s information property list (Info.plist) file. The CFBundleDocumentTypes key stores information about the document types your application supports. For each document package type, include the LSTypeIsPackage key with an appropriate value. The presence of this key tells the Finder and Launch Services to treat directories with the given file extension as a package. For more information about Info.plist keys, see Information Property List Key Reference.

Document packages should always have an extension to identify them—even though that extension may be hidden by the user. The extension allows the Finder to identify your document directory and treat it as a package. You should never associate a document package with a MIME type or 4-byte OS type.

Fonte: Guida alla programmazione del pacchetto

Se non riesci ad accedere al documento, fammelo sapere e includerò alcune citazioni aggiuntive dalla pagina.

    
risposta data 11.04.2017 - 04:13
fonte
3

Come ho creato un'applicazione basata su documenti per macOS, posso aiutarti a capire un po '. Anche se la risposta di @ Monomeeth è giusta, ma trattare con la GUI è molto meglio di Info.plist . La gente di solito usa un altro percorso. Loro sottoclasse NSDocment , che fornisce la base per il salvataggio e il caricamento di file / pacchetti. Quindi, le persone passano a Xcode e nella scheda "Generale", definiscono un tipo di documento, quindi passano a "UTI esportate" ed esportano un UTI conforme a com.apple.package . Leggono con la classe NSFileWrapper . In questo modo, le persone non dovranno fare un lavoro noioso con cose come NSData .

Se vuoi creare un pacchetto, controlla questa risposta . È sufficiente creare un'app macOS vuota e modificare le sezioni "UTI esportate".

    
risposta data 11.04.2017 - 04:57
fonte

Leggi altre domande sui tag