iPhone SDK 3/4 application ne fonctionnera pas sur un périphérique 2.x iPhone, même avec l'objectif de déploiement fixé à 2,0

StackOverflow https://stackoverflow.com/questions/3009498

Question

Je sais que la différence entre la base / actifs et SDKs la cible de déploiement. J'ai mon SDK set de base à 4,0 et la cible de déploiement fixé à 2.0. Je n'utilise une 2.x post API, conditionnelle ou autre. Puisque je ne peux pas déboguer sur un dispositif 2.x, après la construction, j'utiliser l'utilitaire de configuration iPhone pour installer l'application sur l'appareil, ce qu'il fait très bien. Le problème est, il ne fonctionne pas! Je viens d'obtenir un écran vide. La fenêtre principale n'y est jamais!

Maintenant, avant de vous demander ...

  1. J'ai eu ce même problème avec l'iPhone SDK 3.x. J'ai mis à l'4.x en espérant qu'il serait résolu. Il n'a pas été.

  2. Oui, le profil de configuration est installé. (Impossible d'installer l'application si ce n'était pas.)

  3. Cette même application compilée fonctionne très bien sur les appareils 3.x. Même avec les appareils 4.x. Tout simplement pas les périphériques 2.x.

  4. Encore une fois, non, je n'utilise aucun SDKs post-2.x. Pour prouver que j'ai créé une toute nouvelle application basée fenêtre de dialogue « Nouveau projet » et les seuls changements que j'ai fait était la couleur de fond de la fenêtre (pour prouver l'XIB chargé) et je mis la cible de déploiement à 2,0 ( il est toujours compilé avec le SDK 4.x bien.) encore une fois, il fonctionne très bien sur les appareils 3.x ou 4.x, mais juste un écran noir, blanc sur les appareils 2.x.

J'ai essayé cela sur trois dispositifs 2.x séparés inclus un fraîchement restauré. Je l'ai utilisé trois machines de dev séparés (MacBook Pro avec le SDK 3.x, MacBook Pro avec le SDK 4.x et un Mac Pro avec le SDK 3.x.) Même résultat à chaque fois.

Je suis perplexe.

Le fait que même un projet non modifié ne me fonctionne pas a vraiment confus. Se pourrait-il être le fichier XIB? Ont-ils changé le format de 2.x à quelque chose de nouveau dans le SDK 3.x? Si oui, comment puis-je le retourner à 2.x. (Encore une fois, cela est juste une supposition complète.) Mais je suis vraiment perplexe!

Était-ce utile?

La solution 3

Turns out Apple a fait faire un changement de rupture (ou plus exactement, un changement « de fixation ») qu'ils ne commentent. Plus précisément, notre application n'a pas été définissant explicitement la fenêtre principale visible soit par code ou via l'option « Afficher au lancement » dans IB. MAIS ... dans une version du SDK, le moteur d'exécution, ne voyant rien défini, mais avoir besoin d'afficher quelque chose, il a montré implicitement la fenêtre dans le fichier principal XIB. Cependant, les nouveaux (et plus) (SDKs runtimes en fait) n'a pas eu ce comportement implicite donc quand notre code ne montre pas explicitement la fenêtre, nous avons juste obtenu un écran vide.

Nous avons donc vérifié simplement l'option « Afficher au lancement » dans IB et cela a fonctionné. Fait et fait!

Autres conseils

Avez-vous vérifié les applicationDidFinishLaunching: Options: appel à votre délégué app

?

Les options:. Paramètre a été ajouté dans la version 3.0 et est présent dans aucun de mon code pré-3.0, bien que la forme antérieure fonctionne toujours

Le dictionnaire sur les options:. Est utilisé pour transmettre des informations à votre application, comme « ai-je commencé avec une URL de safari » etc

Si vous prévoyez d'exécuter sur 2.0, vous devriez probablement changer ce retour à l'original « applicationDidFinishLaunching: ».

2.x est complètement dépréciée pour la publication sur l'App Store. Vous devriez pouvoir l'installer sur un appareil à l'aide d'une version antérieure de Xcode, mais c'est à ce sujet. Plus d'information dans mon wiki communautaire ici:

Installer Xcode 3.2.3 w / iPhone SDK 4, get "SDK de base manquant", ne peut pas voir d'autres SDKs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top