2009-10-10 14 views
0

J'ai une bibliothèque que j'ai faite, et maintenant je veux l'utiliser dans une application. Je crois que j'ai correctement lié à la bibliothèque. Voici toutes les choses que j'ai fait:iPhone: utilisation de la bibliothèque statique dans une application plante le périphérique mais pas le simulateur iphone

  • Définir le chemin de recherche d'en-tête
  • Set autres drapeaux de l'éditeur de liens pour « -ObjC »
  • Ajouté le projet statique bibliothèque Xcode
  • Veillé la lib. a été inscrit comme objectif-cadre
  • Ajout de la bibliothèque en tant que dépendance directe

comme je l'ai dit dans le titre, je l'ai exécuté avec succès l'application avec la li statique broyer dans le simulateur. Une fois que j'essaie de tester l'application en utilisant l'appareil, il bloque la seconde, il doit utiliser une fonction de la bibliothèque:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSDate firstOfCurrentMonth]: unrecognized selector sent to class 0x3841bb44' 
2009-10-10 12:45:31.159 Basement[2372:207] Stack: 

Répondre

2

Cela est dû à un bogue dans l'éditeur de liens en cours SDK. Voir this post pour plus d'informations sur le problème et les solutions de contournement possibles. (Voir aussi this post.)

Mise à jour:

Une autre chose que vous pouvez faire est de supprimer la bibliothèque statique et inclure les fichiers sources de la bibliothèque directement dans le projet de l'application. Je faisais face à un problème de lien de bibliothèque statique similaire et c'est ce que j'ai fini par retomber pour le faire fonctionner correctement. Si cela fonctionne (même si cela peut être une solution de contournement), il s'agit certainement d'un problème lié à l'éditeur de liens.

+0

J'ai essayé ça, ça ne semble pas aider ... J'ai ajouté cela à l'application puis à la librairie. – devinross

+1

Comme indiqué dans le deuxième lien, vous devrez peut-être ajouter l'option "-all_load" aux autres indicateurs de liaison dans vos paramètres de construction pour que les catégories de votre bibliothèque statique soient correctement liées. Ceci est un problème connu avec le SDK iPhone OS 3.0. –

0

J'ai récemment rencontré ce problème. Je n'ai pas réussi à faire fonctionner -all_load, quand j'ai remarqué qu'une autre catégorie que j'avais travaillée. J'étais fainéant pour cette catégorie et je l'ai inclus dans un autre fichier.

J'ai finalement créé une classe factice (pas de méthodes, variables d'instance) et inclus l'implémentation de mes catégories dans le fichier .m pour cette classe fictive. Après cela, mes catégories ont commencé à fonctionner même après avoir supprimé l'indicateur -all_load.

Ceci était sur iPhone OS 3.1.3.

Ce n'est certainement pas la bonne façon de le réparer, mais cela a semblé fonctionner.

L'exemple complet de code est sur mon blog pour mes (trivial) catégories.