2014-06-24 2 views
0


fichier iOS Plist et bibliothèque + libPhoneNumber iOS

Nous construisons trois applications iOS, ces trois applications sont presque les mêmes, nous avons donc décidé de créer et d'utiliser une bibliothèque pour le noyau de ces applications. Nous utilisons également CocoaPods pour les dépendances. Tout fonctionne correctement, sauf pour libPhoneNumber-iOS.

J'ai ajouté libPhoneNumber-iOS en tant que dépendance dans notre projet (avec CocoaPods), les ressources et la bibliothèque sont construites, mais le problème est que l'utilisation du fichier plist par libPhoneNumber n'est pas chargée. Donc, à chaque fois, le dictionnaire est nul.

J'ai trouvé une solution en ajoutant ce fichier plist au sous-projet et cela fonctionne. Mais je ne veux pas faire ça pour chaque application. Savez-vous quel pourrait être le problème?

Merci.

Répondre

0

Je ne sais pas pourquoi (donc je vais supprimer ce fichier plist avenir) Mais j'ai une solution, voir ci-dessous.

[SOLUTION? 1] HI même je suis confronté au même problème. J'ai suivi le flux de travail vers NSKeyedUnarchiver unarchiveObjectWithData: fileData] et j'ai vérifié la valeur du fichier fileData c'est presque .4mb afin que le fichier et ses données de contenu y arrivent définitivement.

Apparemment NSKeyedUnarchiver unarchiveObjectWithData: a des bogues.

NSKeyedUnarchiver unarchiveObjectWithFile: returns nil in init: method

par suds89 (https://github.com/suds89)

[SOLUTION? 2] J'ai aussi lutté avec ce problème pendant un moment, et je me suis dit que le désarchivage fonctionnait correctement sur l'émulateur, mais pas sur l'appareil. J'ai remarqué que la taille de l'octet de la fileData différait: 180085 sur l'appareil et 496050 sur l'émulateur, donc tout en ayant des données incomplètes, le désarchivage ne peut évidemment pas fonctionner correctement.

La solution consiste à placer NBPhoneNumberMetadata.plist non seulement dans le dossier Resources, mais en fait dans le dossier Supporting Files, puis de nettoyer le projet, de le reconstruire et de l'exécuter. Fonctionne comme un charme! :-)

par irinutze (https://github.com/irinutze)