nib compacté?

Pour des problèmes de Localisation, je cherche à dé-compacter les "nib" qui sont dit "Compilés".
J'ai essayé différentes choses, et récemment j'ai posé un "nib compacté" sur le Property List Editor. Oh surprise! l'application ouvre le fichier (totalement ou non, je ne sais pas). Les nib compactés me paraissent être des "Binary Property List".
Pour ceux qui sont interessés par cela, essayez la manipulation avec un nib compilé pas trop touffu et dites-moi si vous pensez que l'on pourrait remonter à quelque chose d'editable sous IB?
J'ai essayé différentes choses, et récemment j'ai posé un "nib compacté" sur le Property List Editor. Oh surprise! l'application ouvre le fichier (totalement ou non, je ne sais pas). Les nib compactés me paraissent être des "Binary Property List".
Pour ceux qui sont interessés par cela, essayez la manipulation avec un nib compilé pas trop touffu et dites-moi si vous pensez que l'on pourrait remonter à quelque chose d'editable sous IB?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Les "XIB" sont la même chose que ces NIB, mais en version XML (pour être compatible avec les SCM comme SVN ou GIT ou autre), et contenant en plus ont des informations purement... informatives pour l'édition du XIB dans IB (comme le nom des objets que tu peux mettre dans IB, qui n'ont aucun autre intérêt que de t'aider à mieux t'y retrouver, ou la position des fenêtres dans IB, ou le chemin du xcodeproj auquel le XIB est lié pour que IB puisse retrouver les .h du projet et ainsi te proposer les outlets, etc. etc.).
Quand le XIB est compilé, il est en fait recomposé en une NSArchive plus compacte car épurée des informations utiles uniquement à l'édition (un peu comme quand on "strip" les symboles de debug d'un programme compilé si tu veux) et surtout converti au format binaire des NSArchives (qui ne sont que des plist mais suivant une structure particulière pour pouvoir contenir un peu tout et n'importe quel type d'objet <NSCoding>)
Si c'est connu, certains ont dû tenter de remonter à quelque chose d'editable et je ne trouve rien nulpart sur le web!
Aurais-tu un lien ?
C'est aussi connu de quelquepart sur le net que une fois un fichier XIB compilé en NIB, on ne peut plus le réouvrir dans IB car il a "strippé" les informations qui sont utiles uniquement à l'édition, je ne sais plus où j'avais lu ça, mais c'est à une époque où j'avais voulu modifier un NIB (compilé) d'une application donc j'avais voulu l'ouvrir sur IB et que j'avais pas réussi et avait un peu cherché sur le net avant d'abandonner l'idée (après j'avais p'tet pas assez creusé)... mais ça date et je n'ai plus de lien en tête.
J'ai un logiciel d'aide à la Localisation à faire essayer. Si j'arrive à extraire les strings depuis un xib compacté, j'ajouterai la possibilité dans mon programme.
http://maclocal.free.fr/files/ouvrir_editer_fichiers_nibs_compiles_snow_leopard.html
Et ça marche parfaitement. Un peu rébarbatif mais ça marche. S'il existe un script, un soft...
........ A suivre.
J'ai pris quatre nibs "au hazard"! Les nibs d'Aperçu, du carnet d'adresse, de DVDxDVPro et de DVDTheque version 2.9.5. Mon programme applique la transformation et extrait les strings avec ibtool. Pas de problème avec Aperçu et le carnet d'adresse. L'extraction des strings est bonne.
Avec DVDxDVPro j'obtiens l'erreur: Avec DVDTheque j'obtiens l'erreur: Si j'exécute manuellement l'opération et que j'essaie d'ouvrir les nibs reconstruits avec IB, j'obtiens les mêmes erreurs. Mais si je lance ces applications, elles fonctionnent parfaitement!
NSMovieView est une classe obsolète et supprimée d'IBCocoaFramework. Donc il est normal qu'IB ne puisse ouvrir le nib de DVDTheque. Par contre, NSQuickDrawView n'est pas obsolète. Mon explication serait qu'il doit manquer des références d'objets dans le nib utilisé comme modèle. Donc je pense que le "nib modèle", le "nib compacté" et l'IBCocoaFramework doivent être compatibles pour que la méthode marche.
D'autre part, j'ai constaté que la structure interne des nibs à changé sous IB 3.2.x: Les fichiers classes.nib et info.nib sont remplacés par le fichier designable.nib.
Mon analyse vaut ce qu'elle vaut, mais elle m'incite à abandonner l'implémentation de cette mèthode.
Deprecated depuis Tiger !