0 votes

MacOS Sierra et l'icône de mon DMG d'installation

Je distribue mon application (fortement modifiée dans l'image ci-dessous) via un DMG d'installation en lecture seule. L'application et le DMG sont tous deux signés et passent la validation de la passerelle. Ma machine de construction est un El Capitan 10.11.6 .

Sur Sierra (10.12) sólo Après avoir monté le DMG, voici ce que le Finder me montre (à l'exception de la fenêtre popup à gauche que, bien sûr, je déclenche ensuite) :

screen capture

Comme vous pouvez le voir :

  • le site Applications n'est pas ce à quoi on pourrait s'attendre ;
  • right-click -> Get Info montre l'icône attendue pour l'alias (en haut et en bas). Preview ).

Démission forcée Finder permettra de rectifier cette situation.

J'ai téléchargé un Skype for Mac kit, sachant qu'il utilise le même mécanisme de déploiement. Il est intéressant de noter que le Applications est correctement affiché dès le départ.

Un autre aspect intéressant est que le fait de frapper Get Info sur mes DMG Applications affichera (en bas de la fenêtre) l'alias Sharing & Permissions tandis que la section Skype on ne le fera pas.

Détails qui peuvent être pertinents : mon DMG est créé en utilisant un "modèle", que je modifie, puis clone et rend le clone en lecture seule. L'alias placé sur l'image modèle est un alias que j'ai créé sur mon système et que j'ai simplement copié ici.

J'apprécierais toute idée sur ce que je fais mal. Merci. [Question mise à jour ci-dessous, j'ai laissé celle-ci pour des raisons de cohérence].

[UPDATE] Trouvé ce fil de discussion SOV ce qui semble indiquer que je ne fais rien de mal en soi. Existe-t-il une solution de contournement, par exemple en relançant le Finder de manière programmatique après l'ouverture de la fenêtre ( AppleScript ) ? Ou quelque chose d'encore moins laid ? Je ne parierais pas mes dollars sur le fait qu'Apple corrige ce problème de sitôt, car le Finder "récupère" les applications "à la hâte" et affiche le cercle barré sur leur icône comme si elles étaient cassées, alors qu'elles ne le sont pas, est un problème de longue date.

2 votes

Même si c'est possible, relancer le Finder sur l'ordinateur de l'utilisateur sans autorisation explicite semble être une Bad Idea™.

0 votes

@tubedogg : Je peux penser à pas mal de situations où cela serait au moins déroutant. Si je rate quelque chose de vraiment dangereux, c'est parce que je suis loin d'être un power-user sur le Mac ; je suis le gars du "portage de ce truc sur Mac", vraiment. Si vous pouviez fournir quelques raisons, je vous en serais reconnaissant.

2 votes

Il semble que vous utilisiez un alias du Finder vers les applications, plutôt qu'un lien symbolique de type unix. Les alias stockent beaucoup d'informations sur l'élément original. sur l'ordinateur sur lequel il a été créé ce qui peut entraîner une confusion lorsqu'ils sont déplacés sur un autre ordinateur. Essayez de créer un lien symbolique à la place, avec quelque chose comme ln -s /Applications /Volumes/QST-6.5-devel-setup/Applications -- qui pourraient être mieux gérés.

1voto

Gordon Davisson Points 30215

Mon commentaire original : Il semble que vous utilisiez un alias Finder vers les applications, plutôt qu'un lien symbolique de type unix. Les alias stockent beaucoup d'informations sur l'élément d'origine sur l'ordinateur sur lequel ils ont été créés, ce qui peut parfois être source de confusion lorsqu'ils sont déplacés sur un autre ordinateur. Essayez de créer un lien symbolique à la place, avec quelque chose comme ln -s /Applications /Volumes/QST-6.5-devel-setup/Applications -- qui pourraient être mieux élevés.

Voici une comparaison plus détaillée des deux :

enter image description here

La fenêtre Info du Finder les répertorie tous les deux comme "Kind : Alias", mais seul le véritable alias possède un bouton "Select New Original". De plus, le lien symbolique est beaucoup plus petit, car les vrais alias incluent toutes sortes d'informations sur l'élément original (le numéro d'identification du fichier (inode) et son nom, l'ID du fichier et le chemin du dossier dans lequel il se trouvait, des informations sur le volume sur lequel il se trouvait, si le volume était une image disque ou un volume réseau, il y aura des informations sur la façon de remonter le volume, ...). Mon exemple d'alias, avec 612 octets, est beaucoup plus petit que le vôtre, probablement parce qu'il a été fait sous Sierra, et je pense que Sierra a pu changer un peu le format. Le lien symbolique, par comparaison, ne fait que 13 octets -- c'est vraiment juste le texte "/Applications" (qui fait 13 caractères).

La différence dans la quantité d'informations dont ils disposent a des conséquences importantes sur leur fonctionnement. Les vrais alias sont beaucoup plus robustes : vous pouvez renommer un fichier, ou le déplacer dans un autre dossier, et l'alias peut toujours le trouver par l'ID du fichier ; d'un autre côté, si vous le supprimez et le remplacez, il trouvera le remplacement par le nom et le dossier. Un lien symbolique, par contre, est plus fragile : si vous déplacez ou renommez le fichier original, le lien symbolique n'a aucune information qui puisse aider à le localiser.

Mais pour la portabilité, l'absence d'informations supplémentaires dans un lien symbolique est en fait un réel avantage : sur un autre ordinateur, tout aura un ID de fichier différent, les informations sur le volume seront évidemment différentes, etc. Pire encore, un fichier complètement différent pourrait avoir le même ID que l'original sur votre ordinateur, et l'alias pourrait(*) se résoudre à lui ! Toutes ces informations supplémentaires ne font que créer des opportunités de confusion. Mais le dossier Applications toujours se trouve à "/Applications", de sorte que le lien symbolique sera toujours résolu à cet endroit, sans possibilité de confusion.

(*) [Edit :] Il y a longtemps, si un alias se résolvait en un fichier par l'ID du fichier et un autre fichier par le nom et le dossier, la correspondance de l'ID était prioritaire. Apple a changé la priorité il y a quelque temps -- soit dans une version antérieure d'OS X ou peut-être même une version postérieure de Mac OS 9, je ne me souviens plus -- donc maintenant l'ID du fichier ne devrait vraiment causer des problèmes que si rien n'existe au "bon" chemin. Mais si vous créez un véritable alias vers, disons, /Library/Application Support/YourApp, et qu'il n'existe pas sur un autre ordinateur, il peut se résoudre à tout autre fichier ou dossier qui se trouve avoir le même ID de fichier.

Il y a une autre différence que j'ai oublié de mentionner : toutes les API d'accès aux fichiers dans OS X savent comment résoudre les liens symboliques, donc elles fonctionnent très bien avec les applications GUI et les outils Unix portés et en ligne de commande. Les vrais alias, d'un autre côté, ne sont compris que par les API Cocoa et Carbon (en gros, les environnements de programmation GUI propriétaires d'Apple), donc les outils en ligne de commande (qui utilisent les API POSIX) les voient simplement comme des fichiers, et n'ont aucune idée de comment les résoudre vers l'élément original. Ce n'est pas pertinent dans votre situation, mais j'ai pensé que je devais l'ajouter pour être complet.

0 votes

L'excellente explication approfondie ajoutée à la réponse originale est très appréciée. J'étais curieux de savoir pourquoi l'option "Sélectionner un nouvel original..." ne me faisait pas gratter la rétine (sans jeu de mots). Il s'avère qu'étant sur une GDM en lecture seule, c'était grisé... (je ne vais pas voir un ophtalmologiste de sitôt, pas encore).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X