IPB

Bienvenue invité ( Connexion | Inscription )

> Plantage d'appli NSTask, Sierra - Obj-C NSTask
Options
Nono95400
posté 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
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
teddy7545
posté 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
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 26th April 2024 - 17:05