web-dev-qa-db-fra.com

Échec de la mise en place d'une application MacOS intégrée à Xcode

J'ai construit une application en mode Xcode en mode de sortie. Est signé avec certificat d'identifiant de développeur valide. Et l'application se lance bien sur certains MacBooks. Mais sur un autre lancement échoue avec une erreur

L'application% nom% ne peut pas être ouverte.

Ensuite, j'essaie de le lancer à partir du terminal avec open commandement dit

LSOPENURLSWITHROLE () Échec de l'erreur -54 pour les déjeuners File/Applications/Gaetano.app.

Et ensuite j'essaie de lancer directement le fichier binaire du contenu de l'emballage, il est indiqué.

-Pash:/Applications/Gaetano déjeuners.appr/Contents/macos/gaetano Déjeuner: opération non autorisée

Sur toutes les installations de l'application MacBooks de n'importe où est autorisée. SPCTL-MASTER est désactivé. Les autorisations pour les fichiers sont correctes. Mais l'application ne peut pas être lancée.

10
Denis Óbukhov

Je ne sais pas comment vous construisez votre application, mais si LSOpenURLsWithRole retourne permError = -54, cela signifie que vous avez une erreur d'autorisation lors de l'ouverture d'un fichier. Cela peut signifier beaucoup de choses, mais créer une application en mode de libération n'est plus ce que Apple vous recommande de faire. Apple préfère que vous utilisez - Archive Et puis vous exportez l'application dans l'organisateur pour être utilisé par vos utilisateurs. En utilisant ce flux de travaux, vous pouvez normalement tout faire en utilisant les valeurs par défaut Xcode pour la construction d'une application. Si vous ne le faites pas, alors vous Besoin de faire plus attention aux paramètres que vous choisissez pour la construction en mode de sortie.

Pour une approche rapide et sale, j'essaierais ce qui suit:

1) Ouvrez le terminal

2) Type: chmod +x "/Applications/Gaetano Lunches.app/Contents/MacOS/Gaetano Lunches"

3) Essayez de lancer votre application et voyez si cela aide. Si cela aide, il y a quelque chose de mal géré avec vos paramètres de construction, ce qui ne modifie pas les autorisations de fichier quelque part pour votre exécutable pour que les droitiers puissent être lancées.

Une autre chose que vous pourriez essayer est de voir si votre application a été blacklistée par Gatekeeper, car une manière d'une manière ou d'une autre, votre application fait des choses suspectes sur votre propre système. Si tel est le cas, vous pouvez essayer ceci pour voir ce que le portier évalue:

spctl -a "/Applications/Gaetano Lunches.app"

Si, pour une raison quelconque, votre application est en train d'être noué par Gatekeeper, vous pouvez toujours ajouter votre application manuellement et whitelist pour Gatekeeper:

spctl --add "/Applications/Gaetano Lunches.app"

Si tout échoue, vous pouvez essayer de réinitialiser toute la base de données, mais vous aurez besoin d'un accès super utilisateur:

Sudo spctl --reset-default

Cependant, je pense que ce ne sont que des corrections rapides et si vous continuez à y avoir besoin de cela, vos paramètres de construction en XCode doivent être ajustés. Plus d'informations sur cela, si l'une de ces solutions fonctionne. Faites-moi savoir à ce sujet.

1
jvarela