2 votes

Notoriser l'application .app avec un script shell exécutable principal

According to la documentation d'Apple sur "Que faut-il signer", les scripts shell ne sont pas du "code", et sont donc une ressource. Il continue en disant à propos des scripts shell "Bien qu'il soit possible de signer de tels exécutables et de les stocker dans Contents/MacOS, cela n'est pas recommandé".

Ma question est, que dois-je faire si l'exécutable principal de mon application EST un script shell? J'ai essayé de mettre mon script dans /Resources et ajouté un lien symbolique dans MacOS, mais j'ai eu l'erreur le fichier exécutable principal ou Info.plist doit être un fichier ordinaire (pas de liens symboliques, etc.). Dois-je faire quelque chose de radical comme transposer l'ensemble du script shell en C?

0voto

Tout d'abord, vous devez considérer pourquoi vous voulez authentifier votre script. L'authentification est une vérification côté serveur d'Apple, indiquant que vous êtes un développeur certifié avec un certain nom, et que c'est vraiment vous qui avez signé un ensemble de fichiers.

Cela est nécessaire uniquement si vous souhaitez distribuer votre application à d'autres utilisateurs, et je dirais que dans votre cas, ce n'est approprié que si vous voulez la distribuer sur l'App Store, car sinon vous pourriez simplement publier un script et demander à vos utilisateurs de le télécharger et de l'exécuter.

Si vous êtes certain que vous en avez besoin et que vous souhaitez distribuer le script en tant qu'application, essayez cette réponse

En résumé : placez le script nommé sans aucune extension dans MyBundle.app/Contents/MacOS et ajoutez dans Info.plist la clé CFBundleExecutable avec le nom du script comme valeur.

Après cela, la signature de code et l'authentification devraient être les mêmes que pour tout autre ensemble de fichiers.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X