web-dev-qa-db-fra.com

macOS Catalina: essayer d'installer du contenu sur le volume système

J'ai des applications que je distribue en tant que .pkg fichiers créés à l'aide de pkgbuild et productbuild. Avec macOS Catalina, cela ne fonctionne plus. Le programme d'installation se plaint que j'essaie d'installer du contenu sur le volume système.

J'ai posté il y a trois semaines en pensant que l'erreur était liée au regroupement d'un runtime Java. Il s'avère que cela n'a rien à voir avec Java.

Pour le tester, j'ai le plus petit projet possible appelé Hello avec une fenêtre principale et un bouton à cliquer. Dans XCode, je fais Product -> Archive, puis Distribute App et Copy App. Cela crée un répertoire Hello 2019-12-18 15-01-07 avec contenu Hello.app. L'application fonctionne bien. J'ai alors pkgbuild --root *7 Hello.pkg qui crée Hello.pkg.

Lorsque je double-clique sur Hello.pkg dans le Finder, le programme d'installation me présente des écrans pour l'introduction, la sélection de destination (une seule option est proposée) et le type d'installation ("Installation standard sur Macintosh HD"), puis me demande mon mot de passe. Il indique ensuite: "Ce package est incompatible avec cette version de macOS. Le package tente d'installer du contenu sur le volume système. Contactez le fabricant du logiciel pour obtenir de l'aide."

Cela ne fait aucune différence si je code et notaire. Productbuild ajoute seulement une couche de plus au processus défaillant.

Qu'est-ce que je rate?

2
Jerry Agin

Nous avions rencontré un problème similaire. Nous pourrions résoudre le problème en utilisant l'option - install-location du pkgbuild commande. Si l'option - install-location n'est pas utilisée, pkgbuild utilise "/" comme emplacement d'installation par défaut dans de nombreux cas. Dans macOS Catalina, seuls certains dossiers sont accessibles en écriture. Reportez-vous à cette lien pour plus de détails. Dans notre cas, l'installation du package a réussi uniquement lorsque nous avons spécifié l'un des dossiers accessibles en écriture tels que/usr/local,/opt ou/Applications, etc. comme emplacement d'installation par défaut.

2
Anand Navale