L'application ne peut pas être ouvert car son exécutable est manquant

J'ai une application que j'ai été en développement pendant un certain temps maintenant. Récemment, le lancement de l'application via un double-clic affiche une boîte de dialogue qui dit "Vous ne pouvez pas ouvrir l'application RepoWatch, car il peut être endommagé ou incomplet."

Le lancement de l'application via l'ouvrir ./RepoWatch.application me donne "L'application ne peut pas être ouvert car son exécutable est manquant."

J'ai l'habitude de lancer l'application via ./RepoWatch.app/Contents/MacOS/RepoWatch simplement par habitude (qui fonctionne), donc je ne suis pas sûr combien de temps il a été passe, ou de ce changement s'est passé juste avant la main. Les plus susceptibles de changer, c'est que j'ai mis cp Info.plist ./RepoWatch.app/Contents/ dans mon fichier de créer pour des informations de version.plist sans versioning tout dans le .app bundle.

J'ai regardé les Infos.plist de nombreuses fois et ne peut pas trouver quelque chose de mal avec elle. Le fichier s'ouvre avec la Liste des propriétés de l'Éditeur, sans erreurs. Sauver de la Liste des propriétés de l'Éditeur de ne pas rendre le fichier "travail" (si c'est à blâmer en premier lieu).

Les autorisations d'aussi loin que je peux dire, aussi regarder sane:

$ ls -l
./RepoWatch.app/Contents/Info.plist
-rw-rw-r--@ 1 dgrace  staff  789 Feb  1 23:20 ./RepoWatch.app/Contents/Info.plist
$ ls -l
/Applications/Adium.app/Contents/Info.plist
-rw-rw-r--  1 dgrace  staff 5750 Aug 21 15:41 /Applications/Adium.app/Contents/Info.plist

Je suis à une perte quant à ce qu'à essayer la prochaine.

Et voici le contenu de l'Info.plist (Même si rien n'a vraiment changé depuis un certain temps):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleExecutable</key>
    <string>RepoWatch</string>
    <key>CFBundleIdentifier</key>
    <string>com.doomstick.RepoWatch</string>
    <key>CFBundleName</key>
    <string>RepoWatch</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0.0</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.6</string>
    <key>CFBundleVersion</key>
    <string>Beta26</string>
    <key>NSMainNibFile</key>
    <string>MainMenu</string>
    <key>NSPrincipalClass</key>
    <string>NSApplication</string>
</dict>
</plist>
  • Avez-vous oublié d'inclure la sortie de ls -l /Applications/Adium.app/Contents/Info.plist, ou n'avez-vous pas dire à inclure la commande en premier lieu?
  • J'ai eu des problèmes avec la mise en forme de ce bloc et il a été supprimé en quelque sorte. Il a été ajouté dans. J'ai également supprimé les attributs étendus d'un fichier et qui n'a fait aucune différence.
  • “... Je ne suis pas sûr combien de temps il a été passe, ou de ce changement s'est passé juste avant la main.” Si votre système de contrôle de version a un coupent commande, maintenant serait le moment de l'utiliser. (Si vous n'utilisez pas de contrôle de version, c'est une belle démonstration de l'une des raisons de le faire).
  • Je n'ai pas l' .app ou quoi que ce soit sous sous contrôle de version. C'est la raison pour laquelle j'ai déménagé Info.plist, il pourrait effectivement être sous contrôle de version. Traversent, n'a pas aidé. Tous étaient "mauvais", comme c'est quelque chose en dehors du contrôle de version, il me semble. La solution la plus simple est probablement de la corbeille .app et de le recréer. Mais je suis très curieux de savoir ce que le problème sous-jacent est.
  • Je vais avoir ce même problème. Le .app fonctionne, mais quand je l'ai copier (à partir de cette question, il ressemble à quelque chose change avec Info.plist) à l'aide de Ant il s'arrête de lancement, mais si je l'ai copier manuellement, il fonctionne toujours.
InformationsquelleAutor Daniel Grace | 2010-02-02