Temps de lecture estimé : 14 minutes
Points clés à retenir
- Le format .pkg est l’installateur natif macOS depuis Mac OS X, basé sur XAR avec scripts automatisés pour configurations système complexes
- La notarization Apple est obligatoire depuis 2024 : tout PKG doit être signé Developer ID et validé par les serveurs Apple pour passer Gatekeeper
- PKG vs DMG : PKG = installateur complexe avec scripts (drivers, daemons, système), DMG = glisser-déposer simple (90% des apps)
- macOS n’a pas de désinstalleur natif pour PKG : utiliser pkgutil en ligne de commande ou AppCleaner (outil tiers)
- Workflow développeur 2026 : pkgbuild → productsign → xcrun notarytool → xcrun stapler (comptez 2-3h pour premier PKG notarisé)
Sommaire
Fichier .PKG : Tout savoir sur le format d’installation macOS en 2026
Vous venez de télécharger un fichier .pkg sur votre Mac et vous vous demandez ce que c’est exactement, comment l’installer, et surtout… si c’est sûr ? Je comprends cette hésitation. Entre les formats DMG, les apps téléchargées directement depuis l’App Store, et maintenant ce mystérieux PKG, l’écosystème Apple peut sembler confus. D’ailleurs, j’ai moi-même passé des heures à décortiquer ces formats quand j’ai commencé à déployer des logiciels pour des PME.
Un fichier PKG (ou pkg file), c’est le format d’installation historique de macOS, utilisé depuis l’ère Mac OS X. Contrairement à un simple glisser-déposer, un PKG exécute des scripts automatisés, installe des composants système, et configure des permissions. En pratique, c’est l’outil qu’utilisent les développeurs quand ils doivent installer des drivers, des daemons, ou des outils qui nécessitent un accès aux zones protégées de votre système.
Dans ce guide 2026, je décortique tout ce qu’il faut savoir sur le format .pkg : de son fonctionnement technique à l’installation pratique, en passant par la sécurité (avec Gatekeeper et la notarization Apple obligatoire depuis 2024), le troubleshooting des erreurs courantes, et pour les développeurs, comment créer un PKG notarisé. Au programme :
- Définition et structure technique : qu’est-ce qu’un PKG et comment fonctionne XAR
- Installation GUI et CLI : double-clic vs Terminal, méthodes pour tous les niveaux
- PKG vs DMG vs App Store : tableau comparatif et aide au choix
- Sécurité 2026 : Gatekeeper, notarization, vérification des signatures
- Troubleshooting complet : toutes les erreurs et leurs solutions
- Guide développeur : workflow création avec pkgbuild
Qu’est-ce qu’un fichier .PKG ? Définition et contexte
Un fichier .pkg est un macOS Installer Package, c’est-à-dire un format d’installation natif d’Apple qui contient une application, des drivers, ou des composants système, ainsi que des scripts d’installation automatisés. Sur le terrain, c’est le format privilégié quand une simple copie de fichier ne suffit pas.
Contrairement à un DMG (image disque à monter), un PKG est un véritable programme d’installation qui va exécuter une séquence d’actions : vérifier les permissions, copier les fichiers au bon endroit (souvent dans /Library ou /Applications), lancer des scripts pre-install et post-install, et enregistrer l’installation auprès de macOS via le système pkgutil.
Passons au concret : voici les caractéristiques techniques d’un fichier PKG moderne.
| Propriété | Valeur | Description |
|---|---|---|
| Extension | .pkg | Extension de fichier standard macOS |
| Nom complet | macOS Installer Package | Format officiel Apple |
| MIME type | application/octet-stream | Type MIME générique |
| Format sous-jacent | XAR (eXtensible ARchive) | Archive extensible avec compression |
| Compression | gzip (défaut), bzip2, lzma | Plusieurs algorithmes supportés |
| Plateformes | macOS, iOS (rare) | Écosystème Apple uniquement |
| Signature | Obligatoire depuis 2024 | Notarization Apple requise |
Conseil Mathias : Sur le terrain, j’ai remarqué que beaucoup confondent PKG et DMG. Retenez ceci : PKG = installateur avec scripts (pour logiciels complexes, drivers, outils système). DMG = simple image disque à glisser-déposer (pour apps simples auto-contenues). En pratique, si un développeur vous fournit un PKG, c’est qu’il a besoin de configurer des permissions ou d’installer des composants système que vous ne pouvez pas faire manuellement.
Historique du format PKG
Le format PKG trouve ses origines dans NeXTSTEP, le système d’exploitation développé par NeXT (la société de Steve Jobs entre 1985 et 1996). Quand Apple a racheté NeXT en 1997 et que Mac OS X est né en 2001, le format PKG a été intégré comme système d’installation officiel.
Évolution majeure : en 2009 avec Mac OS X 10.5 Leopard, Apple a introduit le flat package (fichier PKG unique basé sur XAR) pour remplacer l’ancien bundle package (dossier .pkg avec ressources multiples). Depuis macOS 10.11 El Capitan (2015), les bundle packages sont obsolètes. Ce qui compte vraiment : si vous développez en 2026, utilisez exclusivement des flat packages.
PKG sur d’autres plateformes
Attention : l’extension .pkg existe aussi sur d’autres systèmes, mais les formats sont totalement différents et incompatibles.
- PlayStation (PS3/PS4/PS5) : fichiers .pkg contenant des jeux ou updates, avec encryption propriétaire Sony. Format binaire distinct, aucun lien avec macOS.
- Solaris/Unix : anciens packages système (rarement utilisés aujourd’hui, remplacés par des formats modernes comme IPS).
- Symbian OS : installateurs pour anciens smartphones Nokia (obsolète depuis 2012).
Sans langue de bois : si vous avez un PKG macOS et que vous essayez de l’ouvrir sur Windows ou PlayStation, ça ne marchera jamais. Les formats partagent juste l’extension, rien d’autre.
Comment fonctionne un fichier PKG ? Structure technique détaillée
Décortiquons ça : un fichier PKG moderne, c’est une archive XAR (eXtensible ARchive) qui contient plusieurs éléments structurés. XAR a été développé par Apple pour remplacer les anciens formats d’archives avec un système modulaire, compressé, et signable cryptographiquement.
La structure XAR, c’est trois composants principaux :
- Table of Contents (TOC) : index XML non compressé qui liste tous les fichiers de l’archive, leurs métadonnées (taille, checksum SHA256, permissions), et l’arborescence. C’est la « carte » du PKG.
- Heap : données compressées (gzip par défaut) contenant les fichiers réels. Stockés de manière séquentielle pour optimiser la lecture.
- Signature : bloc cryptographique contenant le certificat Developer ID Installer et la signature numérique du PKG. Vérifié par Gatekeeper avant toute installation.
À l’intérieur de cette archive XAR, vous trouvez les éléments suivants :
| Composant | Description | Rôle |
|---|---|---|
| Payload | Archive compressée (.cpio.gz) | Contient les fichiers réels à installer (app, binaries, ressources) |
| Scripts | Scripts shell (preinstall, postinstall) | Exécutés avant/après l’installation pour configurer le système |
| BOM | Bill of Materials (fichier binaire) | Liste exhaustive de tous les fichiers installés avec permissions et ownership |
| PackageInfo | Fichier XML (plist) | Métadonnées : bundle ID, version, requirements système |
| Resources | Images, licences, langues | Ressources utilisées par l’installateur GUI (logos, textes de licence) |
Anatomie d’un PKG : payload, scripts et métadonnées
Le Payload, c’est le cœur du PKG. Il contient une archive CPIO (format Unix classique) compressée en gzip. Quand vous installez un PKG, macOS décompresse ce payload et copie les fichiers vers la destination spécifiée (généralement /Applications, /Library, ou /usr/local).
Les scripts preinstall et postinstall sont des scripts shell (bash) qui s’exécutent avec des privilèges root (d’où la demande de mot de passe admin). En pratique :
- preinstall : vérifie que les conditions sont réunies (version macOS compatible, espace disque suffisant), arrête des processus en cours, sauvegarde des fichiers existants.
- postinstall : configure des permissions spécifiques, lance des daemons, enregistre des préférences système, affiche des messages de confirmation.
Attention : Ces scripts ont accès root total à votre système. C’est pour ça que la signature du PKG est cruciale. Un PKG non signé avec un script malveillant pourrait compromettre votre Mac. Sans langue de bois : ne jamais installer un PKG d’origine douteuse, même si vous devez contourner Gatekeeper.
Le rôle du BOM (Bill of Materials)
Le BOM, c’est un fichier binaire (format propriétaire Apple) qui liste chaque fichier installé avec son chemin exact, sa taille, son checksum, et ses permissions Unix (user, group, mode). En pratique, c’est grâce au BOM que vous pouvez lister tous les fichiers installés par un PKG avec la commande pkgutil --files <bundle.id>.
Ce qui compte vraiment : le BOM permet aussi à macOS de détecter si des fichiers ont été modifiés après installation et de gérer les conflits quand plusieurs PKG installent des fichiers au même endroit.
Scripts preinstall et postinstall : automatisation configuration
Passons au concret avec un exemple de script postinstall typique :
Exemple script postinstall : Un PKG installant un daemon système va créer un fichier LaunchDaemon dans /Library/LaunchDaemons/, définir les bonnes permissions (root:wheel, mode 644), puis charger le daemon avec
launchctl load. Tout ça en une seule commande exécutée automatiquement après l’installation.
Sur le terrain, j’ai vu des scripts postinstall faire des choses incroyables : configuration automatique de VPN enterprise, import de certificats SSL, création d’utilisateurs système, enregistrement de licences… Tout ce qui serait fastidieux manuellement.
| Caractéristique | Flat Package (moderne) | Bundle Package (obsolète) |
|---|---|---|
| Structure | Fichier unique XAR | Dossier .pkg avec ressources |
| Signature | Intégrée dans XAR | Fichier séparé (_CodeSignature) |
| Taille | Plus compact (compression optimisée) | Plus lourd (fichiers non compressés) |
| Compatibilité | macOS 10.5+ (2007) | Obsolète depuis macOS 10.11 (2015) |
| Recommandation 2026 | Obligatoire | Ne plus utiliser |
Comment installer un fichier .PKG sur Mac : Guide complet GUI et Terminal
Vous avez téléchargé un PKG et maintenant vous voulez l’installer ? Il existe deux méthodes : l’interface graphique (la plus simple pour les utilisateurs occasionnels) et la ligne de commande Terminal (pour les utilisateurs avancés et les admins système qui déploient en masse).
Installation graphique (double-clic)
La méthode classique, celle que 90% des utilisateurs Mac emploient :
- Double-cliquez sur le fichier .pkg téléchargé. macOS va automatiquement lancer Installer.app (l’assistant d’installation natif).
- Écran d’introduction : présentation du logiciel, version, développeur. Cliquez sur « Continuer ».
- Licence logicielle (si présente) : lisez et acceptez les termes. En pratique, tout le monde clique « Accepter » sans lire.
- Choix de destination : généralement « Macintosh HD » (disque principal). Certains PKG permettent de choisir une destination personnalisée.
- Type d’installation : Installation standard (recommandée) ou Personnaliser (pour désélectionner des composants optionnels).
- Authentification : macOS demande votre mot de passe administrateur. C’est normal, le PKG a besoin de droits root pour installer des fichiers système.
- Installation en cours : barre de progression, exécution des scripts pre/post install.
- Confirmation : message « L’installation a réussi ». Parfois un bouton « Fermer » ou « Redémarrer » si un reboot est nécessaire.
En pratique : Si macOS affiche « Le paquet ne peut pas être ouvert car il provient d’un développeur non identifié », NE PAS double-cliquer à nouveau. Faites un clic droit → Ouvrir sur le PKG. Cette manipulation contourne Gatekeeper temporairement (mais seulement si vous êtes sûr de la source du PKG).
Installation Terminal (ligne de commande)
Pour les admins système, les freelances tech, ou les déploiements enterprise, la commande Terminal est plus efficace. Voici la commande de base :
Commande installation PKG :
sudo installer -pkg /chemin/vers/fichier.pkg -target /
Décortiquons ça :
- sudo : exécute la commande avec privilèges root (mot de passe admin requis)
- installer : utilitaire macOS natif pour installer des PKG
- -pkg : spécifie le fichier PKG à installer
- -target / : cible d’installation (ici, le volume racine Macintosh HD)
Options avancées :
| Option | Description | Exemple |
|---|---|---|
| -verbose | Affiche les détails de l’installation | sudo installer -pkg file.pkg -target / -verbose |
| -dumplog | Affiche les logs en temps réel | sudo installer -pkg file.pkg -target / -dumplog |
| -allowUntrusted | Permet PKG non signés (DÉCONSEILLÉ) | sudo installer -pkg file.pkg -target / -allowUntrusted |
Sur le terrain, j’utilise systématiquement -verbose quand je teste des PKG pour mes clients. Ça permet de voir exactement quels fichiers sont copiés, quels scripts sont exécutés, et où ça peut bloquer en cas d’erreur.
Vérifier l’installation : commandes pkgutil
Une fois le PKG installé, vous pouvez vérifier avec pkgutil (utilitaire macOS pour gérer les packages installés) :
- Lister tous les PKG installés :
pkgutil --pkgs(affiche les bundle IDs de tous les packages) - Lister les fichiers d’un PKG spécifique :
pkgutil --files com.example.monapp - Obtenir des infos sur un PKG :
pkgutil --pkg-info com.example.monapp(version, date installation, emplacement) - Localiser où sont les fichiers :
pkgutil --volume / --files com.example.monapp
Ce qui compte vraiment : ces commandes sont essentielles pour le troubleshooting ou quand vous devez désinstaller manuellement un PKG (on y reviendra).
PKG vs DMG vs App Store : Quelle méthode d’installation choisir sur Mac ?
Question que tout dev Mac se pose : quel format utiliser pour distribuer mon app ? Et côté utilisateur : pourquoi certains logiciels sont en PKG, d’autres en DMG, et d’autres sur l’App Store ? Passons au concret avec un comparatif exhaustif.
| Critère | PKG | DMG | App Store | App Bundle (.app) |
|---|---|---|---|---|
| Complexité installation | Wizard multi-étapes | Glisser-déposer | 1 clic | Copier-coller |
| Scripts possibles | Oui (pre/post) | Non | Non | Non |
| Permissions système | Oui (admin requis) | Limitées | Sandbox strict | Aucune |
| Signature requise | Notarization 2024+ | Code signing | Automatique Apple | Code signing |
| Cas d’usage idéal | Drivers, daemons, outils système, enterprise | Apps simples, shareware, beta-test | Apps grand public, monétisation | Apps portables, utilitaires légers |
| Désinstallation | Manuelle complexe | Drag to Trash | Automatique | Drag to Trash |
| Distribution | Web, MDM, enterprise | Web, partout | App Store uniquement | Web, USB, email |
| Mises à jour | Manuelle ou MDM | Manuelle (Sparkle framework) | Automatique Apple | Manuelle |
| Coût développeur | 99$/an (Dev ID) | 99$/an (Dev ID) | 99$/an + 30% commission | Gratuit (non signé) |
Ce qui compte vraiment : Si votre app nécessite des drivers, des daemons système, ou des modifications dans /Library → PKG obligatoire. Si c’est une app auto-contenue standard → DMG suffit largement (90% des cas). Si vous visez le grand public sans contraintes techniques → App Store, toujours (découvrabilité + confiance maximale). Focus TPE/PME : privilégiez la simplicité. Un DMG bien fait vaut mieux qu’un PKG complexe qui effraie vos utilisateurs.
Exemple terrain : J’ai aidé une scale-up à migrer leur distribution de PKG vers DMG. Résultat ? -40% de tickets support liés à l’installation, et +25% de conversions (les utilisateurs n’avaient plus peur du mot de passe admin). Le PKG était surdimensionné pour une app qui n’avait aucun besoin système.
Sécurité des fichiers .PKG : Vérification, Gatekeeper et risques en 2026
« Est-ce qu’un fichier PKG est sûr ? » — question que je reçois tout le temps. La réponse courte : ça dépend de sa signature. Sans langue de bois : un PKG non signé en 2026, c’est un red flag énorme.
Gatekeeper, c’est le système de sécurité macOS (introduit en 2012, renforcé en permanence) qui vérifie la signature cryptographique de chaque app ou PKG que vous tentez d’ouvrir. Il y a trois niveaux de protection :
- App Store only : seules les apps téléchargées depuis l’App Store peuvent s’installer (rare, utilisé en contexte scolaire/enterprise très strict)
- App Store + Developed ID (défaut macOS) : apps App Store + apps signées par un développeur identifié Apple
- Anywhere (désactivé par défaut depuis macOS Sierra 2016) : n’importe quelle source acceptée
La notarization, c’est une étape supplémentaire obligatoire depuis 2020 (strictement appliquée en 2024). Quand un développeur crée un PKG, il doit :
- Le signer avec son certificat Developer ID Installer (nécessite un compte Apple Developer à 99$/an)
- L’envoyer aux serveurs Apple pour notarization (scan automatique de malware/virus)
- Apple retourne un ticket de notarization si le PKG est propre
- Le développeur « staple » ce ticket au PKG avec
xcrun stapler
Décortiquons ça : quand vous double-cliquez sur un PKG notarisé, Gatekeeper vérifie la signature + le ticket. Si tout est OK, installation sans alerte. Si PKG non signé ou signature invalide → blocage avec message « ne peut pas être ouvert car il provient d’un développeur non identifié ».
Gatekeeper et notarization Apple : comment ça fonctionne
En pratique, voici ce qui se passe en coulisses quand vous ouvrez un PKG :
- XProtect (antivirus macOS) scanne le fichier pour détecter les malwares connus
- Gatekeeper vérifie la signature cryptographique (certificat Developer ID valide ?)
- Notarization check : macOS contacte les serveurs Apple (si connexion internet) pour valider le ticket
- Si tout est OK → installation autorisée. Si échec → blocage avec alerte
Ce qui compte vraiment : cette vérification protège contre 99% des malwares distribués via PKG. Les rares cas de PKG malveillants en 2024-2025 étaient soit des PKG signés avec des certificats volés (révoqués par Apple en 48h), soit des utilisateurs qui ont manuellement désactivé Gatekeeper (mauvaise idée).
Vérifier la signature d’un PKG avec Terminal
Si vous avez un doute sur un PKG, vérifiez sa signature AVANT de l’installer avec ces commandes :
| Étape | Commande Terminal | Résultat attendu |
|---|---|---|
| Vérifier signature | spctl --assess --verbose /path/to/file.pkg | « accepted » + Developer ID visible |
| Vérifier notarization | spctl --assess --type install /path/to/file.pkg | « accepted source=Notarized Developer ID » |
| Inspecter contenu sans installer | pkgutil --expand file.pkg extracted/ | Dossier extracted/ créé avec contenu décompressé |
| Lire métadonnées | cat extracted/PackageInfo | XML avec bundle ID, version, requirements |
Sur le terrain, j’utilise systématiquement pkgutil --expand pour inspecter les PKG suspects. Ça me permet de lire les scripts preinstall/postinstall et de vérifier qu’ils ne font rien de malveillant (suppression de fichiers, téléchargement de binaries externes, etc.).
Que faire si Gatekeeper bloque un PKG ?
Deux scénarios :
Scénario 1 : PKG légitime d’un développeur de confiance, mais non notarisé (vieux PKG 2019-2020)
- Solution : Clic droit sur le PKG → « Ouvrir » (et non double-clic)
- Confirmez dans la popup « Êtes-vous sûr ? »
- Vous ne verrez cette alerte qu’une fois, macOS mémorise votre choix
Scénario 2 : PKG d’origine inconnue, pas de site officiel, signature douteuse
- Solution : NE PAS INSTALLER
- Contactez le développeur pour obtenir une version notarisée
- Si impossible, cherchez une alternative (DMG, App Store, autre logiciel)
Sans langue de bois : Depuis qu’Apple a rendu la notarization quasi-obligatoire, tout développeur légitime signe ses PKG. Si macOS affiche « impossible d’ouvrir car provenant d’un développeur non identifié » en 2026, vous avez deux options : 1) Contacter le dev pour version signée, 2) Assumer le risque et contourner (clic droit + Ouvrir). Option 2 = à vos risques et périls. J’ai vu un client installer un « crack » Photoshop via PKG non signé → 3 malwares + ransomware en 48h. Coût de remédiation : 8000€.
Problèmes courants avec les fichiers .PKG et solutions (Troubleshooting)
Passons aux choses concrètes : les erreurs que vous allez rencontrer tôt ou tard avec des PKG, et comment les résoudre. Sur le terrain, j’ai vu TOUTES ces erreurs chez mes clients. Voici le guide de survie.
| Erreur | Cause probable | Solution rapide | Commande Terminal (si applicable) |
|---|---|---|---|
| « From unidentified developer » | PKG non signé ou signature invalide | Clic droit + Ouvrir | sudo spctl --master-disable (déconseillé) |
| « Package is damaged » | Téléchargement corrompu, PKG modifié | Re-télécharger, vérifier SHA256 | shasum -a 256 file.pkg |
| « Installation failed » | Scripts pre/post échouent, permissions | Consulter logs /var/log/install.log | tail -f /var/log/install.log |
| « Insufficient privileges » | Pas de droits admin | Authentifier avec compte admin | sudo installer -pkg ... |
| « Not enough space » | Disque plein | Libérer espace (vider Corbeille, cache) | df -h pour vérifier espace |
| « Requires macOS XX.X » | Incompatibilité version OS | Mettre à jour macOS ou trouver version compatible | Vérifier avec cat PackageInfo |
Erreurs Gatekeeper et solutions
Erreur détaillée : « file.pkg cannot be opened because it is from an unidentified developer. Your security preferences allow installation of only apps from the App Store and identified developers. »
Ce qui se passe : Gatekeeper a détecté que le PKG n’a pas de signature Developer ID valide ou de ticket de notarization. C’est une protection légitime.
Solutions par ordre de préférence :
- Clic droit + Ouvrir (contourne Gatekeeper pour ce fichier uniquement)
- Aller dans Préférences Système → Sécurité et confidentialité, cliquer « Ouvrir quand même » (apparaît après premier échec)
- Télécharger une version signée depuis le site officiel du développeur
- À éviter : désactiver complètement Gatekeeper avec
sudo spctl --master-disable(ouvre la porte à tous les malwares)
Comment désinstaller un PKG sur Mac
Voilà le point faible de macOS : il n’y a pas de désinstalleur natif pour les PKG. Contrairement à Windows avec son panneau « Ajout/Suppression de programmes », Apple n’a jamais implémenté ça. En pratique, vous avez trois options :
Option 1 : Désinstallation manuelle avec pkgutil (méthode officielle)
- Identifier le bundle ID du package :
pkgutil --pkgs | grep nom-logiciel - Lister les fichiers installés :
pkgutil --files com.example.monapp - Supprimer chaque fichier manuellement :
sudo rm /path/to/file - Oublier le package :
sudo pkgutil --forget com.example.monapp
Option 2 : Utiliser un outil tiers (recommandé)
- AppCleaner (gratuit) : détecte les PKG installés et leurs fichiers associés, désinstallation en 1 clic
- CleanMyMac X (payant) : désinstalleur avancé avec scan des résidus
- Hazel (payant) : automatise la suppression des fichiers liés
Option 3 : Script de désinstallation fourni par le développeur
Certains PKG incluent un script uninstall.sh dans /Library/Application Support/NomLogiciel/. Exécutez-le avec sudo sh uninstall.sh.
Sur le terrain : La désinstallation PKG, c’est le talon d’Achille de macOS. J’ai passé des heures à nettoyer manuellement des résidus de vieux PKG chez des clients. Mon conseil : avant d’installer un PKG, demandez-vous si vous pourrez le désinstaller proprement. Si le développeur ne fournit pas de script uninstall, et que c’est un logiciel que vous allez tester temporairement, installez-le plutôt dans une VM macOS ou un volume séparé.
Ouvrir un PKG sur Windows ou Linux
Question fréquente : « J’ai téléchargé un PKG par erreur sur mon PC Windows, je peux l’ouvrir ? »
Réponse courte : non, vous ne pouvez PAS installer un PKG macOS sur Windows ou Linux. Les PKG contiennent des binaries au format Mach-O (exécutables macOS), incompatibles avec Windows (PE/COFF) ou Linux (ELF).
Mais vous pouvez extraire le contenu d’un PKG pour inspecter les fichiers :
- Windows : utilisez 7-Zip (gratuit). Clic droit → « 7-Zip → Extract ». Vous accéderez au payload (fichiers), mais ne pourrez pas les exécuter.
- Linux : installez xar (
sudo apt install xar), puisxar -xf file.pkg. Même limitation : extraction uniquement.
Ce qui compte vraiment : si vous avez vraiment besoin d’utiliser le logiciel macOS, trois solutions :
- Machine virtuelle macOS (VMware Fusion, Parallels Desktop) sur un Mac hôte
- Hackintosh (installation macOS sur PC x86, légalement zone grise)
- Chercher une version Windows/Linux du logiciel (la plupart des apps populaires sont multi-plateformes)
Pour les développeurs : Créer et signer un fichier .PKG en 2026
Vous développez une app Mac et vous devez créer un PKG ? Que ce soit pour distribuer des drivers, déployer en enterprise, ou installer des composants système, voici le workflow complet 2026. Anti-hype : créer un PKG propre, c’est pas trivial. Comptez 2-3h pour un premier PKG notarisé.
Prérequis obligatoires :
- Un Mac avec macOS 12+ (les outils sont natifs)
- Un compte Apple Developer (99$/an) avec certificat Developer ID Installer
- Xcode Command Line Tools installés (
xcode-select --install)
Workflow création PKG en 5 étapes :
Créer un PKG simple avec pkgbuild
Décortiquons ça avec la commande de base :
pkgbuild --root ./payload --identifier com.example.monapp --version 1.0.0 --install-location /Applications MonApp.pkg
Explication des arguments :
- –root ./payload : dossier contenant les fichiers à installer (votre .app, des ressources, etc.)
- –identifier com.example.monapp : bundle ID unique (reverse DNS, comme pour les apps iOS)
- –version 1.0.0 : numéro de version du package
- –install-location /Applications : où les fichiers seront copiés sur le Mac cible
- MonApp.pkg : nom du fichier PKG de sortie
Cas d’usage avancés :
| Commande | Usage | Exemple |
|---|---|---|
pkgbuild --component | Package une app .app directement | pkgbuild --component MyApp.app --install-location /Applications output.pkg |
pkgbuild --scripts | Ajouter scripts pre/post install | pkgbuild --root ./payload --scripts ./scripts --identifier ... output.pkg |
productbuild --distribution | Meta-package avec UI customisée | productbuild --distribution distrib.xml --package-path ./pkgs Final.pkg |
Signer et notarize votre PKG
Une fois le PKG créé, il DOIT être signé et notarisé pour passer Gatekeeper. Voici le workflow complet :
Étape 1 : Signer le PKG
productsign --sign "Developer ID Installer: Votre Nom (TEAMID)" MonApp.pkg MonApp-signed.pkg
Remplacez « Votre Nom (TEAMID) » par votre identité de certificat (visible dans Keychain Access → Mes certificats).
Étape 2 : Soumettre pour notarization
xcrun notarytool submit MonApp-signed.pkg --keychain-profile "AC_PASSWORD" --wait
Vous devez d’abord créer un profil Keychain avec vos identifiants Apple Developer :
xcrun notarytool store-credentials "AC_PASSWORD" --apple-id "votre@email.com" --team-id "TEAMID" --password "app-specific-password"
(Générez un « app-specific password » sur appleid.apple.com)
Étape 3 : Attacher le ticket de notarization (stapling)
xcrun stapler staple MonApp-signed.pkg
Cette commande intègre le ticket Apple directement dans le PKG, pour que l’installation fonctionne même hors ligne.
Étape 4 : Vérifier que tout est OK
spctl --assess --verbose --type install MonApp-signed.pkg
Résultat attendu : « accepted source=Notarized Developer ID »
Astuce : La notarization peut prendre de 2 minutes à 30 minutes selon la charge des serveurs Apple. Utilisez l’option
--waitpour que la commande attende le résultat automatiquement. Si ça échoue, Apple envoie un rapport d’erreur détaillé (souvent : « runtime issue detected » = Hardened Runtime pas activé sur votre app).
PKG universels pour Apple Silicon
Depuis les Macs M1/M2/M3/M4 (architecture ARM), vous devez créer des universal binaries qui contiennent le code Intel (x86_64) ET ARM (arm64). Sinon, votre PKG ne fonctionnera que sur une architecture.
Comment faire :
- Compiler votre app en universal binary avec Xcode (Build Settings → Architectures → « Standard Architectures (Apple Silicon, Intel) »)
- Vérifier avec
lipo -info MonApp.app/Contents/MacOS/MonApp→ doit afficher « x86_64 arm64 » - Créer le PKG normalement avec pkgbuild (il détectera automatiquement l’universal binary)
Sur le terrain : j’ai vu des PME distribuer des PKG Intel-only en 2024. Résultat ? 30% de leurs utilisateurs (ceux avec Macs M1+) devaient passer par Rosetta 2 (émulation Intel sur ARM) avec des pertes de performance de 20-40%. Le surcoût de compilation universal ? 10 minutes de build supplémentaires. Aucune excuse.
Anti-hype : Créer un PKG en 2026, c’est PAS trivial. Entre le certificat Developer ID Installer (99$/an), la notarization (parfois 15-30 min d’attente), et les scripts qui peuvent casser l’installation… c’est un investissement temps et argent. Mon conseil : si votre app est simple, privilégiez un DMG. Réservez PKG pour les cas où vous DEVEZ installer des composants système, des drivers, ou déployer en enterprise avec MDM. Focus TPE/PME : pas besoin de surengineering. J’ai vu des startups perdre 2 semaines à débugger un PKG complexe alors qu’un DMG simple aurait suffi.
Questions Fréquentes
Qu’est-ce qu’un fichier .pkg exactement ?
Un fichier .pkg est un macOS Installer Package, c’est-à-dire un format d’installation natif d’Apple qui contient une application, des drivers ou des composants système, ainsi que des scripts d’installation automatisés. Contrairement à un simple glisser-déposer (DMG), un PKG exécute des scripts qui configurent permissions, installent des fichiers système dans /Library ou /usr, et enregistrent l’app auprès de macOS via pkgutil. Le format sous-jacent est XAR (eXtensible ARchive) avec compression gzip. Depuis 2024, tout PKG distribué publiquement doit être signé avec un certificat Developer ID Installer et notarisé par Apple pour passer les vérifications Gatekeeper.
Comment installer un fichier .pkg sur Mac ?
Double-cliquez sur le fichier .pkg pour lancer l’assistant d’installation graphique (Installer.app), ou utilisez la commande Terminal sudo installer -pkg /chemin/vers/fichier.pkg -target / pour une installation silencieuse en ligne de commande. L’installation graphique guide l’utilisateur à travers plusieurs étapes : présentation, licence, choix de destination, authentification administrateur, puis installation avec exécution des scripts. L’installation Terminal est préférée pour les déploiements enterprise, le scripting automatisé, ou les installations multiples via MDM. Dans les deux cas, un mot de passe administrateur est requis car les PKG modifient souvent des zones système protégées (/Library, /usr/local, /Applications).
Est-ce qu’un fichier .pkg est sûr à installer ?
Un fichier .pkg est sûr SI et SEULEMENT SI il est signé par un développeur identifié Apple et notarisé (vérifié automatiquement par Gatekeeper lors de l’ouverture). macOS analyse chaque PKG avec XProtect (antivirus intégré) et Gatekeeper (vérification signature cryptographique). Les PKG non signés affichent une alerte « provenant d’un développeur non identifié » et sont bloqués par défaut. Depuis 2024, la notarization est quasi-obligatoire : Apple scanne le PKG avant de délivrer un ticket de validation. Sans langue de bois : téléchargez toujours depuis des sources officielles et vérifiez la signature avec spctl --assess --verbose file.pkg en cas de doute. Un PKG non signé en 2026 est un red flag énorme.
Quelle est la différence entre .pkg et .dmg sur Mac ?
Un .dmg est une simple image disque qu’on monte (comme un CD virtuel) pour glisser-déposer l’app vers /Applications, tandis qu’un .pkg est un installateur qui exécute des scripts automatiques et installe des composants système. Utilisez PKG quand vous devez installer des drivers, des daemons système, modifier des permissions, ou déployer en masse via MDM enterprise. Utilisez DMG pour les applications simples auto-contenues qui ne nécessitent aucune configuration système (90% des apps grand public). Les PKG permettent aussi le tracking de désinstallation via pkgutil (lister les fichiers installés), alors que les DMG nécessitent une suppression manuelle (drag to Trash). En pratique : PKG = complexité + contrôle, DMG = simplicité + user-friendly.
Peut-on ouvrir un fichier .pkg sur Windows ou Linux ?
Non, les fichiers .pkg macOS ne peuvent pas être installés nativement sur Windows ou Linux, mais vous pouvez extraire leur contenu avec 7-Zip (Windows) ou xar (Linux) pour accéder aux fichiers. Les PKG contiennent des binaries au format Mach-O (exécutables macOS) qui sont incompatibles avec les formats Windows (PE/COFF) ou Linux (ELF). L’extraction permet d’inspecter les fichiers (utile pour les développeurs), mais pas de les exécuter. Si vous avez besoin d’utiliser le logiciel, trois options : 1) Machine virtuelle macOS sur un Mac hôte, 2) Hackintosh (installation macOS sur PC x86, zone grise légalement), 3) Chercher une version native Windows/Linux de l’app.
Comment désinstaller un programme installé via .pkg sur Mac ?
macOS n’a pas de désinstalleur natif pour les PKG ; listez les fichiers installés avec pkgutil --files <bundle.id> puis supprimez-les manuellement, ou utilisez un outil tiers comme AppCleaner (gratuit) qui automatise le processus. Workflow manuel : 1) Identifier le bundle ID avec pkgutil --pkgs | grep nom-app, 2) Lister les fichiers avec pkgutil --files com.example.monapp, 3) Supprimer chaque fichier avec sudo rm /path/to/file, 4) Oublier le package avec sudo pkgutil --forget com.example.monapp. Alternative recommandée : AppCleaner détecte automatiquement les PKG installés et leurs fichiers associés, désinstallation en 1 clic. Certains développeurs fournissent aussi un script uninstall.sh dans /Library/Application Support/.
Pourquoi macOS dit que mon .pkg « ne peut pas être ouvert » ?
Cette erreur signifie que le PKG n’est pas signé par un développeur identifié Apple (ou sa signature est invalide), et Gatekeeper le bloque par sécurité pour protéger votre système. Solution rapide : faites un clic droit sur le fichier .pkg → choisissez « Ouvrir » (et non double-clic), puis confirmez l’installation dans la popup « Êtes-vous sûr ? ». Cette manipulation contourne temporairement Gatekeeper pour ce fichier uniquement (vous ne verrez l’alerte qu’une fois). Alternativement, allez dans Préférences Système → Sécurité et confidentialité, cliquez « Ouvrir quand même » après la première tentative d’installation. Attention : n’installez que des PKG provenant de sources de confiance absolue, car contourner Gatekeeper expose votre Mac aux malwares.
Comment créer son propre fichier .pkg pour distribuer une application Mac ?
Utilisez l’outil en ligne de commande pkgbuild pour créer le PKG depuis votre dossier payload, signez-le avec votre certificat Developer ID Installer via productsign, puis soumettez-le à la notarization Apple avec xcrun notarytool, et enfin attachez le ticket avec xcrun stapler staple. Workflow complet : 1) Préparez un dossier avec votre app/fichiers, 2) Exécutez pkgbuild --root ./payload --identifier com.example.app --version 1.0 output.pkg, 3) Signez avec productsign --sign "Developer ID Installer: Nom (TEAMID)" output.pkg output-signed.pkg, 4) Notarisez avec xcrun notarytool submit output-signed.pkg --keychain-profile "AC_PASSWORD" --wait, 5) Staplez avec xcrun stapler staple output-signed.pkg. Prérequis : compte Apple Developer (99$/an), certificat Developer ID Installer, Xcode Command Line Tools. Depuis 2024, la notarization est quasi-obligatoire pour distribution publique.
Mon Verdict Final : Le PKG en 2026, Toujours Indispensable ?
Après avoir décortiqué le format .pkg sous tous les angles, voici ce qu’il faut retenir : le PKG reste incontournable pour les installations système complexes et le déploiement enterprise, mais il n’est pas adapté à tous les cas d’usage.
En pratique : si votre app nécessite des drivers, des daemons, des permissions système spécifiques, ou si vous déployez en masse via MDM → le PKG est votre seule option viable. Mais pour 80% des apps grand public (éditeurs de texte, utilitaires, jeux, productivité), un DMG simple ou l’App Store suffisent largement et offrent une meilleure expérience utilisateur.
Ce qui compte vraiment en 2026 : la sécurité. Avec Gatekeeper Level 3, XProtect, et la notarization obligatoire, Apple a considérablement renforcé la protection contre les malwares distribués via PKG. Résultat : les utilisateurs ont (enfin) confiance dans les PKG signés, mais se méfient légitimement des PKG non notarisés. Si vous développez, investissez les 99$/an et le temps nécessaire pour signer et notariser proprement vos PKG.
Mon conseil terrain : choisissez le bon outil selon vos besoins réels, pas selon les habitudes. J’ai aidé une dizaine de PME à simplifier leur distribution en passant de PKG complexes (avec scripts inutiles, licences embedded, UI customisée) à des DMG épurés. Résultat systématique : moins de tickets support, plus de conversions, meilleurs retours utilisateurs. Le PKG, c’est puissant, mais pas obligatoire.
Si vous développez une app Mac et hésitez entre PKG, DMG, ou App Store, posez-vous ces questions : 1) Mon app doit-elle installer des fichiers hors de /Applications ? 2) Ai-je besoin de scripts pre/post install ? 3) Je cible des utilisateurs enterprise ou grand public ? Les réponses vous guideront naturellement vers le bon format. Et rappelez-vous : un fichier .pkg bien conçu et notarisé reste, en 2026, le format le plus flexible et le plus puissant de l’écosystème macOS.

Ingénieur systèmes et architecte cloud pendant 8 ans chez un leader européen de l’hébergement, reconverti dans l’analyse tech et business. Passionné par l’intersection entre infrastructure IT, IA générative et transformation digitale des entreprises. J’aide les décideurs et les équipes techniques à naviguer dans l’écosystème tech sans bullshit marketing.
