2010-08-09 14 views
1

Je reçois l'erreur suivante en incluant les bibliothèques statiques:Comment faire pour que Xcode 3.2.3 construise une architecture spécifique?

manquant nécessaire architecture i386 dans le fichier

Cela a fonctionné 30 secondes auparavant, et seulement échoué lorsque je suis passé à Xcode 3.2.3 . J'ai utilisé la commande "file" pour vérifier - et, oui, XCode construit complètement la mauvaise architecture (armv6 + armv7 au lieu de i386).

Cela semble être un bug majeur dans la dernière Xcode, où Apple a réécrit les paramètres build/compile/link. Il y a une note dans les notes de mise à jour disant très vaguement qu'ils l'ont "changé" parce que c'était "confus". Ce n'est pas utile.

Les paramètres de construction de la bibliothèque très disent clairement:

« architectures valides: i386 »

Il n'y a pas de confusion ici - Xcode construit autre chose que ce que la cible indique qu'il devrait.

La question est: comment décomprimez-vous cela? Comment forcez-vous Xcode à faire ce qu'il est censé faire? J'ai réinstallé Xcode à partir de zéro, tout nettoyé et inspecté manuellement les fichiers de construction. Il n'y a rien de mal (et, bien sûr, cela a fonctionné parfaitement dans Xcode 3.2.2)

Répondre

3

Après de nombreuses recherches, je crois que la réponse est:

« ceci est maintenant impossible - Apple a délibérément XCode codé en dur pour ignorer les paramètres construire »

Cependant, je suis venu avec un script Cela crée automatiquement toutes les plates-formes d'un projet (ce que vous devez faire avec les bibliothèques statiques - vous n'avez pas beaucoup de choix maintenant, car Apple a désactivé les cibles), et le script pourrait facilement être modifié pour toutes les cibles. :

Build fat static library (device + simulator) using Xcode and SDK 4+

+0

Avez-vous déposé un bug avec apple? –

+0

Etant donné qu'ils ont fait ce changement * délibérément * (cf les notes de version qui donnent une vague justification à la main), je doute qu'ils se soucient d'un rapport de bug :(. – Adam

1

Faites un clic droit sur votre application cible sous cibles et assurez-vous que le kit de développement de base est réglé sur iOS.

+0

Je suppose que vous voulez dire "iPhone Device 4.0" ou "iPhone Simulator 4.0", puisque ce que vous décrivez n'existe pas, autant que je sache - si oui, oui, il l'est déjà. – Adam