Plantage d'appli NSTask, Sierra - Obj-C NSTask |
Bienvenue invité ( Connexion | Inscription )
Plantage d'appli NSTask, Sierra - Obj-C NSTask |
20 Aug 2017, 11:03
Message
#1
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 710 Inscrit : 16 Oct 2004 Membre no 25 318 |
Bonjour,
Voilà maintenant quelques années que je n'ai pas touché à Xcode ou bien pour de minimes retouches sur des projets perso. Et venant d'installer Sierra sur mon ordi, j'ai pu constaté que l'appel à un exécutable unix depuis une application via NSTask, faisait planter immédiatement l'app. J'ai donc réécrit une classe dans mon application pour me passer de cet exécutable. Mais j'en ai un autre pour lequel je n'ai pas la moindre idée de la façon dont il procède et je ne peux donc pas m'en passer. Comment faire pour intégrer un exécutable unix dans un projet Xcode sous Mac OS 10.12 pour pouvoir l'appeler depuis l'application avec NSTask ? Y-aurait-il un système de signature ou bien de niveau d'autorisation nécessaire pour l'application pour exécuter d'autres programmes ? Merci PS : l'exécutable appelé depuis le Terminal avec exactement les mêmes arguments... fonctionne très bien. Ce message a été modifié par Nono95400 - 20 Aug 2017, 11:04. -------------------- MacBook Pro 13" M1 2020 - 16Go de RAM - SSD 256Go
Mac Pro early '09 Quad-Core Intel Xeon 2,93 GHz - 8Go de RAM - ATI HD5870 1Go - SSD Vortex 2 128Go - HD 1To, 2To, 3To. MacBook Air 13" i7 1,8Ghz - 4Go de RAM - SSD 256Go |
|
|
24 Aug 2017, 22:24
Message
#2
|
|
Macbidouilleur de vermeil ! Groupe : Membres Messages : 879 Inscrit : 4 Apr 2004 Lieu : Lorraine - 54 Membre no 17 184 |
Bonsoir Nono
Tu ne précises pas grand chose sur ton code et un extrait pourrait être utile pour t'aider davantage. Ou as tu placé ton script ? comment l'appelles tu ? es tu certain des droits d'exécution de ton script (la version qui est exécutée) ? Je viens de faire un essai avec Xcode sous Sierra et l'appel à NSTask fonctionne parfaitement (sous réserve d'avoir bien donné les droits d'execution à ton script). Par ailleurs, en utilisant un bloc try comme ci-dessous, ton application ne devrait pas planter et pourra te donner la raison du blocage. Code @try { NSTask *t = [[NSTask alloc] init]; ... } @catch (NSException *e) { NSLog(@"Expection occurred %@", [e reason]); } De grandes chances que si le chemin n'est pas correct ou si les droits d'exécution ne sont pas attribués tu trouves le défaut : launch path not accessible. Ce message a été modifié par teddy7545 - 24 Aug 2017, 23:51. -------------------- MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz |
|
|
Nous sommes le : 26th April 2024 - 17:05 |