2012-01-04 4 views
2

XCode n'inclut pas les options de désinstallation de leur conditionneur. En général, les utilisateurs font simplement glisser l'application vers la corbeille s'ils veulent la désinstaller - la plupart des applications sont contenues dans le package de l'application.Programme de désinstallation graphique de l'extension du noyau OS X

Cependant, j'ai une extension de noyau qui doit être désinstallée en utilisant quelques lignes de commandes simples. Il y a un script qui fonctionne, mais je suis tenu de fournir un programme de désinstallation graphique.

Je ne pense pas qu'il existe un exemple de code plug-n-play qui offre un moyen d'exécuter le script tout en affichant une barre de progression, mais j'espère que quelqu'un s'en occupera ou proposera quelques indications Comment accomplir ceci rapidement et facilement

Le script est seulement deux lignes sans retour, donc nous pouvons exécuter les commandes dans l'application, aussi longtemps que nous pouvons facilement demander et utiliser les permissions root de manière sécurisée (ie, laissez OS X gérer les permissions - nous demandons simplement à OS X de nous les donner, ce qui devrait amener l'utilisateur à demander à l'utilisateur comment cela se passe avec l'installateur du paquet) dans l'application.

Répondre

1

Il y a une approche assez bonne en utilisant un projet Cocoa-AppleScript dans Xcode pour exécuter un script shell ici:

http://www.mactech.com/articles/mactech/Vol.22/22.08/GUI-upyourScript/index.html

Il couvre l'aide d'une barre de progression, la gestion des erreurs et obtenir les permissions root correctes exécutez le script shell.

Malheureusement, il est un peu long pour couper et coller ici, mais les étapes générales sont:

  1. Créer un nouveau projet Xcode de type application Cocoa-AppleScript
  2. Créer et tester le script shell prévu, ajoutez à votre projet
  3. Modifier le MainMenu.nib pour ajouter et nommer un bouton (theObject) et barre de progression (pMainProgress), puis modifier le titre et d'autres aspects du goût uipour
  4. Attachez le bouton à AppleScript dans le projet (dans l'inspecteur avec le bouton sélectionné chec k la boîte action et mettre en myprojectname.applescript)
  5. Modifier le AppleScript à quelque chose de semblable à ce qui suit:
 
on clicked theObject 
    -- setup 
    set myPath to POSIX path of (path to me) as string 
    -- Start progress bar 
    set uses threaded animation of progress indicator "pMainProgress" of window "wMain" to true 
    tell progress indicator "pMainProgress" of window "wMain" to start 

    -- Do it! 
    try 
     do shell script quoted form of myPath & "Contents/Resources/backup.sh" with administrator privileges 
    on error number 255 
     display dialog "Sorry, an error occurred. I can't make the copy." 
    end try 
    -- Stop progress bar 
    tell progress indicator "pMainProgress" of window "wMain" to stop 
    set uses threaded animation of progress indicator "pMainProgress" of window "wMain" to false 

end clicked 

Vous pouvez personnaliser l'application (nom, par exemple) et d'ajouter des zones de texte à la fenêtre pour alerter l'utilisateur de ce qui se passe si vous exécutez plusieurs scripts (mettez set the contents of text field "efStatus" of window "wMain" to "Copying files..." dans votre script après avoir ajouté un champ de texte à l'interface utilisateur avec le nom "efStatus")

Questions connexes