MacOS Sierra vs icona del mio installatore DMG

0

Sto distribuendo la mia app (pesantemente modificata nell'immagine qui sotto) tramite un programma di installazione DMG di sola lettura. Sia l'app che il DMG sono firmati e passano la convalida del gateway. La mia macchina di compilazione è un El Capitan 10.11.6 .

On Sierra (10.12) solo , dopo aver montato il DMG, questo è ciò che Finder mi mostra (eccetto il popup a sinistra che, ovviamente, si attiva successivamente):

Comepuoivedere:

  • l'iconaApplicationsnonèquellachecisiaspetterebbe;
  • right-click->GetInfomostral'iconaprevistaperl'alias(sianellapartesuperiorecheinPreview).

ChiusuraforzatadiFinderrettificheràquestasituazione.

HoscaricatounkitSkypeforMac,sapendocheutilizzalostessomeccanismodidistribuzione.Èinteressantenotarechel'iconaApplicationsvienevisualizzatacorrettamentedalget-go.

UnaltroaspettointeressanteèchequandosicolpisceGetInfosull'aliasApplicationsdelmioDMGverràvisualizzata(nellaparteinferioredellafinestra)lasezioneSharing&Permissions,mentreSkypenonlosarà.

Dettaglichepossonoessererilevanti:ilmioDMGècreatousandouno"modello", che sto modificando, quindi clonando e rendendo il clone di sola lettura. L'alias posto sull'immagine del template è un alias che ho creato sul mio sistema e semplicemente lo ho copiato lì.

Gradirei qualsiasi idea su ciò che sto facendo male. Grazie. [La domanda è stata aggiornata di seguito, ha lasciato questo a fini di coerenza.]

[UPDATE] Trovato questo thread SOV , che sembra suggerire che non sto facendo nulla di sbagliato per se. C'è qualche soluzione, ad es. riavviare il Finder a livello di codice dopo aver aperto la finestra ( AppleScript )? O qualcosa di ancora meno brutto? Non scommetterei il mio $ su Apple risolvendolo in qualsiasi momento presto, come Finder che "scarica" le app "in fretta" e mostra il cerchio attraverso la loro icona come se fossero rotte, mentre in realtà non erano, era un problema di lunga data.

    
posta elder elder 26.10.2016 - 22:37
fonte

1 risposta

2

Il mio commento originale: sembra che tu stia utilizzando un alias del Finder per le applicazioni, piuttosto che un link simbolico in stile unix. Gli alias memorizzano molte informazioni sull'elemento originale sul computer su cui è stato creato, che a volte confondono le cose quando vengono spostate su un altro computer. Prova invece a creare un link simbolico, con qualcosa come ln -s /Applications /Volumes/QST-6.5-devel-setup/Applications , che potrebbe essere più adatto.

Ecco un confronto più dettagliato tra i due:

LafinestraInformazionidelFinderlielencaentrambicome"Tipo: Alias", ma solo il vero alias ha un pulsante "Seleziona nuovo originale". Inoltre, il collegamento simbolico è molto più piccolo, poiché i veri alias includono tutti i tipi di informazioni sull'elemento originale (il numero ID del file (inode) e il nome, l'ID del file e il percorso della cartella in cui si trovava, informazioni su quale volume era acceso, se il volume era un'immagine disco o un volume di rete, avrà informazioni su come rimontare il volume, ...). Il mio alias di esempio, con 612 byte, è molto più piccolo del tuo, probabilmente perché è stato realizzato con Sierra, e penso che Sierra potrebbe aver cambiato un po 'il formato. Il collegamento simbolico, al confronto, è solo di 13 byte: in realtà è solo il testo "/ Applicazioni" (che è composto da 13 caratteri).

La differenza nella quantità di informazioni che hanno ha implicazioni importanti su come funzionano. I veri alias sono molto più robusti: puoi rinominare un file o spostarlo in una cartella diversa e l'alias può ancora trovarlo per ID file; d'altra parte, se elimini & sostituirlo, troverà la sostituzione per nome & cartella. Un link simbolico, d'altra parte, è più fragile: se sposti o rinomina il file originale, il link simbolico non ha alcuna informazione che possa aiutarti a individuarlo.

Ma per la portabilità, la mancanza di informazioni aggiuntive in un link simbolico è in realtà un vero vantaggio: su un altro computer, il tutto avrà un ID di file diverso, le informazioni sul volume saranno ovviamente diverse, ecc. Peggio, qualche altro file potrebbe avere lo stesso ID dell'originale sul tuo computer e l'alias potrebbe (*) risolverlo! Tutte queste informazioni extra creano solo opportunità di confusione. Ma la cartella Applicazioni sarà sempre presente in "/ Applicazioni", quindi il link simbolico si risolverà sempre su di esso, senza possibilità di confusione.

(*) [Modifica:] Molto tempo fa, se un alias si risolveva in un file per ID file e un file diverso per cartella e nome, la corrispondenza ID avrebbe la precedenza. Apple ha cambiato la priorità un po 'di tempo fa - o in una versione precedente di OS X o forse anche in una versione successiva di Mac OS 9, non ricordo - quindi ora l'ID del file dovrebbe solo causare problemi se non esiste nulla nella "destra" " sentiero. Ma se crei un vero alias per, ad esempio, / Library / Application Support / YourApp, e che non esiste su altri computer, potrebbe risolversi in qualsiasi altro file o cartella che abbia lo stesso ID file.

C'è un'altra differenza che ho dimenticato di menzionare: tutte le API di accesso ai file in OS X sanno come risolvere i collegamenti simbolici, quindi funzionano perfettamente con entrambe le applicazioni GUI e gli strumenti unix con riga di comando e portati. I veri alias, d'altra parte, sono compresi solo dalle API Cocoa e Carbon (fondamentalmente, gli ambienti di programmazione GUI proprietari di Apple), quindi gli strumenti da riga di comando (che utilizzano API POSIX semplici) li vedono semplicemente come file e non hanno indovina come risolverli sull'oggetto originale. Questo non è rilevante nella tua situazione, ma ho pensato che dovrei aggiungerlo per completezza.

    
risposta data 27.10.2016 - 22:10
fonte

Leggi altre domande sui tag