2009-11-30 3 views
0

J'ai créé cette application qui contient plusieurs fichiers binaires (disons X, Y et Z). J'ai un fichier .plist qui spécifie que l'application devrait lancer X lorsqu'il est ouvert. Tout fonctionne bien 99,9% du temps mais parfois, il lance un autre binaire (Y ou Z).Pourquoi Mac OS lance-t-il parfois un mauvais fichier binaire lorsque je clique sur un fichier .app

Cela arrive généralement après que quelque chose s'est écrasé dans mon application, donc je suppose qu'il s'agit d'un mécanisme Mac OS qui détecte que quelque chose s'est mal passé avec un binaire et en essaie un autre.

Ceci est très mauvais pour moi car mon application devient inutilisable jusqu'à ce que je le désinstalle et le réinstalle.

Répondre

0

Je l'ai fait seulement un peu à Cocoa, donc pardonner mon manque de connaissances, mais voici mes 2 cents:

Vous avez un problème intéressant. De toute évidence, vous avez plusieurs architectures ou quelque chose au travail ici qui nécessite plusieurs versions de la même application. C'est demander des ennuis. Si l'architecture du processeur est la principale préoccupation, utilisez simplement un binaire universel. Si votre préoccupation est plus liée aux problèmes de condition d'application, pourquoi ne pas effectuer une telle logique dans un seul binaire? Si la technologie n'est pas fiable, ne l'utilisez pas. Vos clients vous remercieront. PS: Mac OS X a des problèmes de dépannage étranges, surtout avec les listes de propriétés. Évitez de laisser l'OS relancer l'application pour vous, puis voir si cela fonctionne. Il y a toujours une dernière option: clic droit (ctl) sur l'application et dire "Afficher le contenu du paquet". Ensuite, double-cliquez sur le bon binaire. Il n'y a pas de place pour l'erreur de cette façon.

Bonne chance.

+0

Merci de votre participation. J'ai plusieurs binaires parce que j'ai beaucoup de code et de différents modules spécialisés dans différentes tâches. J'ai un binaire (que j'appelle le lanceur) qui est en charge de démarrer tous les binaires utiles. Je sais que je devrais changer l'architecture pour avoir seulement un binaire et des bibliothèques mais à ce stade, c'est trop de travail. Après un crash, double-cliquer sur le fichier .app lancera toujours le mauvais binaire (même si la valeur du .plist est toujours correcte). Si j'utilise "Afficher le contenu du paquet", cela fonctionne mais ce n'est pas une solution acceptable pour mes clients. – Boris

2

Si ces fichiers binaires supplémentaires sont simplement lancés pour effectuer certaines tâches dans votre application, il n'y a aucune raison de les stocker dans le même dossier que le fichier binaire principal de votre ensemble d'applications. Si vous ne les stockez pas déjà dans le dossier Ressources de l'ensemble de l'application, vous pouvez essayer de les placer à la place du dossier MacOS dans lequel se trouve le fichier binaire principal. Je pense que cela les cacherait suffisamment de tout mécanisme qui lance un binaire différent au lieu du principal.

+0

Merci Brian, je vais essayer ça. Si quelqu'un a plus d'informations sur ce qui se passe, n'hésitez pas à répondre. – Boris

Questions connexes