[Résolu]Settings bundle / Build phase et run script
Salut tout le monde,
J'ai un petit soucis. Je cherche à ajouter une section Licences à mon appli dans les réglages d'iOS. J'utilise pour ça le settings.bundle. J'ai ajouter un item de type Child Pane avec un titre et un filename qui est celui généré par un script PERL que j'ai trouvé sur le net.
Voilà le lien (bien détaillé d'ailleurs) :
Le soucis est au niveau de l'exécution du script. J'ai bien ajouté un nouveau Build Phase de type Run script, je ne mets rien dans le champs "shell" et j'ai dans les lignes en dessous :
cd /Users/amadeh/MyProject/MyProject
./LicencesScript.pl
Mon problème est que j'obtiens l'erreur suivante :
/bin/sh: /Users/amadeh/Library/Developer/Xcode/DerivedData/MyProject-atcbtrobsabsibbmvwxzrhpfjlnd/Build/Intermediates/MyProject.build/Debug-iphonesimulator/MyProject.build/Script-372A39EE198C9B8E004AA5CA.sh: (null): bad interpreter: No such file or directory
Savez-vous d'où ça vient ?
Réponses
Le mieux est de mettre le chemin de l'interpréteur perl (/usr/bin/perl) dans le champ "shell".
Tu dois pouvoir aussi le mettre en toute première ligne de ton script précédé de "#!" (C'est ce qu'on appelle le shebang) " comme l'a fait l'auteur de la réponse sur SO " mais dans ce cas il te faut quand même mettre un interpréteur pour ton script dans le champ "shell" " comme par exemple "/bin/sh" (qui sait interpréter le shebang au début d'un fichier de script et lancer le sous-interpréteur correspondant) " et pas laisser ce champ vide.
D'ailleurs les instructions dans le message sur SO n'ont jamais dit de supprimer la valeur dans le champ "shell" ^^ donc tu aurais dû laisser la valeur "/bin/sh" par défaut et ça aurait marché directement ;-)
Effectivement t'as raison mais bon, c'est bien, ça permet aussi de prendre un peu de vos nouvelles
Merci Aligator.
Petite recommandation au passage, place ton script dans ton dossier de projet et utilise des variables d'environnement comme SRCROOT pour rendre ta phase de script portable.
En l'état, si tu partage avec quelqu'un d'autre ça ne marchera pas du fait des chemins codé en dur.
Recommandation 2 : si tu passe sur des variables d'environnement pour les chemin, attentions aux espaces dans les nom. Toujours protéger ses path par des guillemets.
Merci Yoann pour la variable SRCROOT, j'avais apporté des modifications au script perl qui permettait de faire quelque chose d'équivalent. OK aussi pour les paths.