XCode 4.5.2 Changements déroutants
John Barbier
Membre
[font=arial,helvetica,sans-serif]Bonjour,[/font]
[font=arial,helvetica,sans-serif]Je n'ai pas eu l'occasion de lancer xCode depuis le mois d'Aout dernier.[/font]
[font=arial,helvetica,sans-serif]et ayant besoin de faire une nouvelle version de plusieurs de mes applications, j'ai mis à jour mon XCode, suis maintenant en 4.5.2[/font]
[font=arial,helvetica,sans-serif]Suis un peu dérouté par certains choix d'Apple, et je sollicite une confirmation de ce que je crois qu'il faut faire, ou une réponse à mes questions.[/font]
[font=arial,helvetica,sans-serif]Merci d'avance.[/font]
[font=arial,helvetica,sans-serif]1/[/font]
[font=arial,helvetica,sans-serif]Xcode demande maintenant un "Default-568h@2x.png"[/font]
[font=arial,helvetica,sans-serif]et demande si il peut le générer pour nous.[/font]
[font=arial,helvetica,sans-serif]Une fois que j'ai dis "OUI",[/font]
[font=arial,helvetica,sans-serif]je ne vois pas cet icône dans la liste des icône de mon MonAppli-Info.plist[/font]
[font=arial, helvetica, sans-serif]On doit le référencer dans le .plist ?[/font]
[font=arial, helvetica, sans-serif]Le .png généré est tout noir à la racine du projet, est-ce normal ?[/font]
[font=arial, helvetica, sans-serif]Pour info, j'ai pas d'iPhone 5, je test sur mon 4 qui a la dernière version iOS[/font]
[font=arial, helvetica, sans-serif]Ce fichier correspond à l'image lancée au début de l'application pour les iPhone 5 non ?[/font]
[font=arial, helvetica, sans-serif]Il est alors utilisé en lieu et place du [/font]Default@2x.png non ?
Si j'ai localisé le Default@2x.png je dois donc localiser le [font=arial, helvetica, sans-serif]Default-568h@2x.png non ?[/font]
[font=arial, helvetica, sans-serif]2/[/font]
[font=arial, helvetica, sans-serif]La compilation sort une ligne "Application windows are expected to have a root view controller at the end of application launch"[/font]
[font=arial, helvetica, sans-serif]Je suppose qu'avant Apple trouvait suffisant de lancer le premier UIViewControler à partir de AppDelegate.m[/font]
[font=arial, helvetica, sans-serif]Mais maintenant les nouvelles applis peuvent rentrer directement sur le UIViewControler déclaré comme root dans Projet/Summary/Main Interface non ?[/font]
[font=arial, helvetica, sans-serif]Peut-on peut laisser le wanning ? si on laisse le warning la Review passe quand même ?[/font]
[font=arial, helvetica, sans-serif]3 / Le Background de certaines Table View est passé en gris et n'affiche plus le fond de l'écran[/font]
[font=arial, helvetica, sans-serif]Je suppose que c'est par ce que la prise en compte par defaut a changé, il faut explicitement dire Clear Color non ?[/font]
[font=arial, helvetica, sans-serif]Faut que je repasse sur les XIB[/font][font=arial, helvetica, sans-serif] qui était sur BackGround à "Défaut" et mettre BackGround à "Clear Color" non ?[/font]
[font="arial, helvetica, sans-serif"]4 / Certains de mes écrans sont bourrés de Bouton ou de Text Field collés les uns au autres ... Les applications nouvellement générées (sur le même iPhone 4 qu'avant) ne positionnent pas exactement les boutons comme avant (à 2 ou 3 pixels près), ce qui n'est pas gênant la plus part du temps sauf quand les items sont nombreux et collés.[/font]
[font=arial, helvetica, sans-serif]Est ce un problème de compatibilité ascendante ? Faut il créer un XIB en fonction de la version iOS ou la version de l'iPhone ? ou faut régénérer dans XCode 4.5.2 et les iOS et iPhone s'adapteront à ce qui est nouvellement généré ?[/font]
[font=arial, helvetica, sans-serif]Dommage que la nouvelle version ne génère un XIB à compatibilité ascendante ? Que faudrait-il faire pour s'adapter à ce contexte.[/font]
[font=arial, helvetica, sans-serif]Je me suis permis faire ce nouveau sujet car je dois attendre Janvier pour avoir aussi un iPhone 5, et tester par moi même la compatibilité ascendante.[/font]
[font=arial, helvetica, sans-serif]Merci par avance de vos réponses[/font]
[font=arial,helvetica,sans-serif]Je n'ai pas eu l'occasion de lancer xCode depuis le mois d'Aout dernier.[/font]
[font=arial,helvetica,sans-serif]et ayant besoin de faire une nouvelle version de plusieurs de mes applications, j'ai mis à jour mon XCode, suis maintenant en 4.5.2[/font]
[font=arial,helvetica,sans-serif]Suis un peu dérouté par certains choix d'Apple, et je sollicite une confirmation de ce que je crois qu'il faut faire, ou une réponse à mes questions.[/font]
[font=arial,helvetica,sans-serif]Merci d'avance.[/font]
[font=arial,helvetica,sans-serif]1/[/font]
[font=arial,helvetica,sans-serif]Xcode demande maintenant un "Default-568h@2x.png"[/font]
[font=arial,helvetica,sans-serif]et demande si il peut le générer pour nous.[/font]
[font=arial,helvetica,sans-serif]Une fois que j'ai dis "OUI",[/font]
[font=arial,helvetica,sans-serif]je ne vois pas cet icône dans la liste des icône de mon MonAppli-Info.plist[/font]
[font=arial, helvetica, sans-serif]On doit le référencer dans le .plist ?[/font]
[font=arial, helvetica, sans-serif]Le .png généré est tout noir à la racine du projet, est-ce normal ?[/font]
[font=arial, helvetica, sans-serif]Pour info, j'ai pas d'iPhone 5, je test sur mon 4 qui a la dernière version iOS[/font]
[font=arial, helvetica, sans-serif]Ce fichier correspond à l'image lancée au début de l'application pour les iPhone 5 non ?[/font]
[font=arial, helvetica, sans-serif]Il est alors utilisé en lieu et place du [/font]Default@2x.png non ?
Si j'ai localisé le Default@2x.png je dois donc localiser le [font=arial, helvetica, sans-serif]Default-568h@2x.png non ?[/font]
[font=arial, helvetica, sans-serif]2/[/font]
[font=arial, helvetica, sans-serif]La compilation sort une ligne "Application windows are expected to have a root view controller at the end of application launch"[/font]
[font=arial, helvetica, sans-serif]Je suppose qu'avant Apple trouvait suffisant de lancer le premier UIViewControler à partir de AppDelegate.m[/font]
[font=arial, helvetica, sans-serif]Mais maintenant les nouvelles applis peuvent rentrer directement sur le UIViewControler déclaré comme root dans Projet/Summary/Main Interface non ?[/font]
[font=arial, helvetica, sans-serif]Peut-on peut laisser le wanning ? si on laisse le warning la Review passe quand même ?[/font]
[font=arial, helvetica, sans-serif]3 / Le Background de certaines Table View est passé en gris et n'affiche plus le fond de l'écran[/font]
[font=arial, helvetica, sans-serif]Je suppose que c'est par ce que la prise en compte par defaut a changé, il faut explicitement dire Clear Color non ?[/font]
[font=arial, helvetica, sans-serif]Faut que je repasse sur les XIB[/font][font=arial, helvetica, sans-serif] qui était sur BackGround à "Défaut" et mettre BackGround à "Clear Color" non ?[/font]
[font="arial, helvetica, sans-serif"]4 / Certains de mes écrans sont bourrés de Bouton ou de Text Field collés les uns au autres ... Les applications nouvellement générées (sur le même iPhone 4 qu'avant) ne positionnent pas exactement les boutons comme avant (à 2 ou 3 pixels près), ce qui n'est pas gênant la plus part du temps sauf quand les items sont nombreux et collés.[/font]
[font=arial, helvetica, sans-serif]Est ce un problème de compatibilité ascendante ? Faut il créer un XIB en fonction de la version iOS ou la version de l'iPhone ? ou faut régénérer dans XCode 4.5.2 et les iOS et iPhone s'adapteront à ce qui est nouvellement généré ?[/font]
[font=arial, helvetica, sans-serif]Dommage que la nouvelle version ne génère un XIB à compatibilité ascendante ? Que faudrait-il faire pour s'adapter à ce contexte.[/font]
[font=arial, helvetica, sans-serif]Je me suis permis faire ce nouveau sujet car je dois attendre Janvier pour avoir aussi un iPhone 5, et tester par moi même la compatibilité ascendante.[/font]
[font=arial, helvetica, sans-serif]Merci par avance de vos réponses[/font]
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour le 3 :
J'ai eu pas mal de problème avec le background des tableview donc je le met en "clear color" dans le code et ça fonctionne.
Pour le 4 :
Ca viens de l'autolayout. Ca permet d'avoir un affichage cohérent entre in iPhone 3,5" et 4". Il faut faire attention aux contraintes de layout ( je sais pas si ça y était avant). C'est de ça que viennent les decalages.
http://developer.app...Autolayout.html
Pour le 2, oui, il faut faire un
window.rootViewController=/huh.gif' class='bbc_emoticon' alt='???' />;
Dans ton applicationDidFinishLaunching.
Pour le 1, c'est obligatoire pour que ton appli se redimensionne à la taille de l'iphone5. C'est le default.png de l'iPhone5 quoi.
+
Sortie de l'iPhone 5, sortie d'AutoLayout, sortie d'iOS6 et de ses nouvelles fonctionnalités, l'utilisation du rootViewController (qui a été introduite depuis un bail mais n'était pas obligatoire avant, et l'est maintenant avec le nouveau système de rotation d'iOS6 plus cohérent)... Toutes ces choses ont été introduites au fur et à mesure de la sortie des produits concernés et des mises à jour du SDK, donc Apple les a introduites et expliquées au fur et à mesure, mais c'est sûr que si tu en étais resté à Xcode 3 ou aux premières versions tu as un beau retard à rattraper avec toutes les petites nouveautés du SDK et des derniers produits Apple sortis !
Tu en étais resté à Xcode3 ?! (Xcode4 est sorti depuis 2 ans quand même...)
Voici ce que je déduis :
1/
Faut que je localise le Default-568h@2x.png et qu'il ait la même représentation graphique que mes Default@2x.png sinon les iPhone 5 auront au lancement un écran noir temporairement.
2/
C'est le point le plus compliqué pour moi, j'ai conçu plusieurs applications qui me sont fort utiles, en m'étant formé de manière autodidacte sur la base des exemples que j'ai trouvé et des sites comme cocoacafe.fr (par contre avec une forte base de connaissance du C++ et des langages de script.
Je dois avoué que l'enchainement des main.m, AppDelegate (.h et .m) et de ma première me semblait un peu obscure, mais ca marchait /smile.png' class='bbc_emoticon' alt=':)' /> tant que XCode ne présentait pas de warning sur le lancement des applications je ne modifiais rien des exemples et les Review se sont passées.
En ce moment, le main contient :
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
le AppDelegate contient :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)
lequel init l'application proprement dite et fait le pushViewController de ma première fenêtre (.h .m .xib)
Ce que je comprends c'est que le UIApplication a son 3ieme paramètre à "nil" donc le "Main nib file base name" du Info.plist est utilisé.
Dans mon cas, le Info.plist n'est pas renseigné, et ainsi provoque le warning
Faut-il que :
- Je mette à jour le .plist (à partir de l'onglet Sommary/Main interface) avec mon FirstViewController.xib (qui est la ressource de ma première fenêtre)
ou
je change le paramètre à "nil" par la NString * de ma première UIViewController
Une des 2 options effectuées, y a-t-il autre chose à faire déduite du fait d'avoir retirer le paramètre "nil" ? existe-t-il un sample que je comprenne bien ce qu'il faut faire.
3/
Je passe explicitement tous les Background des Table View qui doivent laisser afficher le fond d'écran, à "Clear Color"
4/
J'ai pas vraiment encore compris les finesses des contraintes du layout.
Concrètement, j'ai réajusté le positionnement de tous les boutons qui posaient un problème de positionnement car collés les uns à cotè des autres. Ces nouvelles versions de .XIB s'affichent bien dans tous les simulateurs et sur mon iPhone 4. J'espère que c'est OK sur iPhone 5. Je verrais physiquement dès que j'en aurai un.
Encore merci pour vos réponses.
Le seul point qui reste un peu en suspend c'est le root view controller.
Bien cordialement à vous.