2012-01-11 4 views
5

Quindi abbiamo recentemente inviato un'applicazione basata su documenti con una svista spiacevole: l'UTI per il nostro tipo di documento principale è stato lasciato vuoto. Avevamo un nome per questo, ma l'identificatore era vuoto.Tipo di file miseria - Cocoa

Tutto ha funzionato benissimo, ma poi siamo andati ad aggiungere un altro tipo di file al mix. Il nuovo tipo di file è semplicemente xml (conforme a public.xml). Lo abbiamo impostato e inserito nel documento. Questo è quando abbiamo preso la nostra supervisione sulla UTI del primo documento.

Ora, se siamo così tanto come touch questo tipo di documento, BOOM. L'applicazione non può leggere alcun file che ha creato di quel tipo. Vogliamo davvero ripulirlo, quindi qual è il modo migliore per farlo?

La mia domanda è in sostanza: Come si esegue la migrazione del tipo di documento principale in un'applicazione basata su documenti?

risposta

1

Innanzitutto, è molto difficile eseguire il debug di questo tipo di problema sulla macchina che si sta utilizzando per tagliare le build. Il sistema UTI dinamico si confonde su quale app possegga i file. Per risolvere questo problema, è possibile eseguire un comando nel terminale su clear out the file associations on your system.

Successivamente, abbiamo affrontato i tipi di documento effettivi della nostra applicazione. In definitiva, vogliamo supportare solo due tipi di documento, il nostro tipo personalizzato e il tipo xml. Tuttavia, abbiamo dovuto mantenere quell'UTI vuoto generato dinamicamente che è stato spedito. In "Tipi di documento" ne abbiamo tre: i due che vogliamo effettivamente supportare e quello precedente che non vogliamo più. Per i primi due, la nostra applicazione è un "Editor". Per quello precedente, lo abbiamo cambiato in "Reader".

Un'altra cosa che ha davvero aiutato il nostro sistema è l'utilizzo di UTI importate esportate. Abbiamo detto al sistema che la nostra applicazione importa il tipo XML ed esporta gli altri due.

Abbiamo eseguito alcuni test piuttosto significativi, compresa la distribuzione, e questa configurazione funziona come un incantesimo.