Le foto mancanti da iPhoto si sincronizzano su iTunes con iPhone

2

iTunes non riconosce il numero corretto di foto in alcuni dei miei eventi iPhoto. Alcuni eventi mostrano che ci sono 0 foto, altri mostrano molto meno foto di quanti l'evento abbia effettivamente.

Dopo alcuni scavi ho trovato un pattern: il problema riguarda solo eventi "referenziati", cioè eventi in cui le copie master delle foto sono contenute in cartelle esterne alla libreria iPhoto. Nel mio caso si tratta principalmente di eventi meno recenti per i quali avevo già delle cartelle prima di iniziare a utilizzare iPhoto. Per questi eventi, iPhoto mantiene un alias nella libreria sul file originale. I file originali sono tutti lì, disponibili e modificabili in iPhoto.

Se modifico una foto in uno degli eventi interessati, essa appare disponibile per la sincronizzazione in iTunes, presumibilmente perché una volta modificata, la foto modificata è memorizzata nella Libreria iPhoto.

Per riassumere, iTunes non riconosce le foto di iPhoto che sono memorizzate al di fuori della cartella Libreria iPhoto (di riferimento), a meno che quella foto non sia stata modificata in iPhoto.

Uso Lion 10.7.2 e le ultime versioni di iPhoto e iTunes, sincronizzando con un iPhone 4 con iOS 5.0.1.

    
posta mluisbrown 22.12.2011 - 17:37
fonte

1 risposta

2

Ho risolto il problema e non è stato bello.

Inizia con iPhoto 8 ('09) sul mio iMac. Questa libreria conteneva una serie di foto "referenziate", ovvero foto in cui i file di immagine erano esterni alla cartella Libreria iPhoto. In iPhoto 8 questo è stato gestito creando un file alias OS X nella cartella Originals all'interno della cartella Libreria iPhoto.

Poi ho voluto spostare la mia libreria sul mio nuovo MacBook Air con Lion e iPhoto 9 ('11). Dimenticando di aver fatto riferimento ai file nella mia libreria ho appena copiato la cartella iPhoto Library dal mio iMac al mio MacBook Air come dicono i documenti di supporto Apple (non menzionano nulla sui file di riferimento). Naturalmente i file di riferimento non sono stati copiati sul MacBook, ma tutto sembrava essere OK.

Avvia iPhoto 9 sul mio MacBook e aggiorna la libreria. Non è possibile trovare le immagini di riferimento, ovviamente, ma non c'è alcun avviso o altro. iPhoto 9 ha una struttura di cartelle e database completamente diversa. Tutte le informazioni necessarie su dove trovare un'immagine sono ora nel file di database SQlite Library.apdb in Libreria iPhoto / Database / apdb /. In questo db c'è una tabella chiamata RKMaster che memorizza le informazioni su ogni foto. RKMaster ha una colonna chiamata imagePath che è il luogo in cui dovrebbe andare il percorso completo del file di immagine originale. Tuttavia, poiché le mie immagini di riferimento non erano disponibili durante l'aggiornamento della libreria iPhoto, basta impostare tutto su Masters/<image file name> e memorizzare le informazioni sull'alias dal database iPhoto 8 in una colonna BLOB chiamata fileAliasData. Quando ho capito che mancavano i file di riferimento, li ho copiati sul mio MacBook e l'iPhoto è stato miracolosamente in grado di trovarli di nuovo a causa delle informazioni nella colonna fileAliasData nel database.

Tuttavia, iTunes e altre app che si collegano alla libreria iPhoto non accedono direttamente al database della libreria iPhoto. Usano un file chiamato AlbumData.xml nella cartella Libreria iPhoto. iPhoto 9 ricrea questo file ogni volta che chiudi iPhoto. Sfortunatamente, ciò che viene utilizzato per creare il percorso completo dell'immagine per inserire il file XML è ciò che è memorizzato nella colonna imagePath nel database, che ormai è fondamentalmente spazzatura. iPhoto può vedere tutti i file OK, ma nient'altro può.

L'unica soluzione era quella di correggere scrupolosamente i record RKMaster per tutti i miei file di riferimento in modo che indicassero la posizione corretta. Ho colto l'occasione per copiare i file nella cartella Libreria iPhoto nel processo in modo che ora tutte le mie immagini si trovino nella cartella Libreria iPhoto. Questa impostazione implicita fileIsReferenced = 0 e fileAliasData = null anche per quei record.

Ora finalmente tutto funziona di nuovo, ma è stato un processo molto lungo e noioso che può essere fatto solo con una certa conoscenza dei database SQL. Apple dovrebbe davvero mettere in guardia le persone su questo potenziale problema quando consigliando come spostare la libreria iPhoto.

    
risposta data 29.12.2011 - 11:56
fonte

Leggi altre domande sui tag