2010-05-21 1 views
0

Je faisais un projet en tant que binaire universel pour iPhone/iPad. J'ai créé le côté de l'application iPhone et je faisais pour compléter l'iPad aussi. J'ai remarqué une chose, sur les classes iPad j'utilise la classe UIPopoverController, cela signifie que quand je construis maintenant pour 3.2 dans le simulateur, il fonctionne un iPad et ça fonctionne bien, MAIS si je veux voir l'application version iPhone, 3.1. 3, Il me donne une erreur de cadre manquant dans les classes iPad.Problème de construction universel iPhone/iPad avec la version du firmware

Je n'ai aucune idée de comment résoudre ce problème car je ne peux plus voir la version iPhone de l'application et apporter des modifications. Je peux seulement enlever toutes les classes d'iPad et après réimporter encore.

merci les gars!

Répondre

2

Avec le SDK 3.2, le simulateur fonctionnera uniquement en tant qu'iPad.

Si vous voulez tester votre côté iPhone, vous devrez envelopper le code spécifique 3.2 dans les conditions du préprocesseur pour le compiler avec 3.1.3. Si vous possédez un périphérique, vous devriez pouvoir compiler à la fois la version iPad et la version iPhone à l'aide du SDK 3.2 en définissant le paramètre "Cible de déploiement" dans les paramètres de construction de votre cible. Réglez-le sur la version la plus basse de l'iPhone OS que vous souhaitez prendre en charge, par exemple, 3.1.3 et compilez en utilisant 3.2. Vous aurez également besoin de "lien faible" contre les nouveaux frameworks 3.2, tels que Core Text. Enfin, si vous ne l'êtes pas déjà, vous devriez utiliser des vérifications à l'exécution pour vous assurer que votre version iPhone n'essaie pas d'utiliser des fonctionnalités 3.2, telles que les popovers. De cette façon, vous n'aurez pas à supprimer vos références popover et vous devriez pouvoir compiler. Cependant, comme je l'ai dit, cela ne sera utile que si vous avez un appareil physique à tester.

Si vous voulez utiliser le simulateur, vous devrez suivre la méthode des conditions du préprocesseur.

+0

les gars, merci pour les réponses. Le hting est que j'ai déjà le Target Dep comme 3.1.3, je compile pour le 3.2 et l'iPhone ne charge pas la classe PopOver. Je ne peux pas utiliser la "vérification de classe" parce que j'ai mon instance de la popover dans l'interface .h de l'appdelegate. Je vais essayer de compiler pour l'appareil et voir ce qui se passe. – DigitalVanilla

+0

Okkei, J'ai réussi à exécuter: essentiellement si vous instanciez TOUT nouveau UIKit dans le fichier .h, vous devez utiliser la distribution "id" à la place. Très générique. Puis dans le .m sur n'importe quel appel, vous devez vérifier la classe, qui est à la fin un gâchis. Créer une application universelle prend 3 fois plus pour vérifier je suppose. Mais ça marche maintenant :) – DigitalVanilla

0

Vous ne pouvez construire qu'avec le SDK 3.2 Base et la cible de déploiement iPhone OS 3.1.3 (ou antérieure). Lorsque vous faites cela, le simulateur fonctionnera uniquement sous 3.2/iPad. C'est juste comme ça.

Vous devrez donc déboguer sur un appareil réel pour les tests de l'iPhone.

Questions connexes