iOS 5 beta 2 – toute l'actualité apportée par Apple

iOS bêta 5 2 il a été libéré hier soir par Apple pour les développeurs d'applications iOS et avec lui a été publié un changelog très volumineux dans lequel sont mentionnées toutes les modifications apportées au système d'exploitation. La liste est très longue, comme vous pouvez le constater, signe qu'Apple a travaillé dur pour améliorer le système d'exploitation que nous utiliserons. Il y a quelques changements notables dont je parlerai dans des articles séparés, mais vous avez ici la liste complète des changements.

Si Apple continue d'améliorer le système de cette manière jusqu'à la version finale, nous aurons alors un iOS 5 très bien développé.

carnet d'adresses

  • CORRIGÉ : l'ajout d'un compte CardDAV de quelque nature que ce soit (Yahoo, serveur de carnet d'adresses, etc.), puis la suppression du compte entraîneront la perte du bouton de l'interface utilisateur permettant d'ajouter un nouveau contact. Le bouton n'apparaîtra pas sous l'application Contacts ni le bouton Contacts sous l'application Téléphone.
  • CORRIGÉ : La modification des champs d'un contact iCloud à partir d'un appareil iOS qui n'était pas la source d'origine du contact entraînait la disparition de la photo du contact sur les autres appareils iOS. L'image est toujours là mais elle n'est pas récupérée correctement.

AirPlay

  • À partir d'iOS 5.0, le contenu vidéo des applications et des sites Web est compatible AirPlay par défaut.
  • iOS 5.0 prend en charge AirPlay de vidéo via AV Foundation.
  • L'économiseur d'écran de l'Apple TV peut dégrader les performances de mise en miroir sur AirPlay. L'économiseur d'écran peut être désactivé dans les paramètres de l'Apple TV.

apple TV

  • La version bêta du logiciel Apple TV permet aux utilisateurs de refléter le contenu d'un iPad 2 sur une Apple TV (2e génération) à l'aide d'AirPlay. Ce logiciel bêta active également Photo Stream sur Apple TV afin que les utilisateurs puissent accéder aux photos stockées dans iCloud. La version bêta du logiciel Apple TV est fournie pour tester la dernière fonctionnalité AirPlay avec vos applications et sites Web iOS 5. Si vous souhaitez installer la version bêta du logiciel Apple TV sur votre appareil, vous devez d'abord enregistrer l'UDID de votre appareil sur le portail du programme pour développeurs iOS.

Assistante gérante

  • Lorsque vous vous connectez avec un compte Classic MobileMe via l'assistant de configuration iOS 5.0, il propose une sauvegarde iCloud.

Audio

  • L'utilisation du chat vocal dans iOS 5 nécessite de définir le mode kAudioSessionMode_VoiceChat sur la session audio ou de définir le mode AVAudioSessionModeVoiceChat sur l'objet AVAudioSession.
  • Dans iOS 5 beta1, le chat vocal ne fonctionne actuellement pas sur les appareils iPhone 3GS et iPod Touch de 3e génération.

Bluetooth

  • CORRIGÉ : lors de la connexion à Personal Hot Spot via Bluetooth, la connexion Internet pour la navigation Web échoue.

ChevalDav

  • CORRIGÉ : malgré la désactivation de la synchronisation des rappels avec un compte iCloud, la modification dans l'application de rappels affiche la possibilité de créer une nouvelle liste de rappels sous iCloud. Ce faisant, la liste et les éléments à faire sous la liste seront synchronisés avec d'autres appareils.
  • NOUVEAU : après avoir créé un événement récurrent localement sur l'appareil, celui-ci arrête la synchronisation après avoir rencontré une erreur lors de la fusion. Supprimer et rajouter le compte constitue une solution de contournement à ce problème.

Calendrier

  • CORRIGÉ : lorsque vous apportez une modification à la synchronisation du calendrier, comme avoir plus d'un compte sur l'appareil et activer ou désactiver la synchronisation du calendrier de l'un des comptes, les modifications peuvent ne pas apparaître sur l'interface utilisateur du calendrier. Pour résoudre ce problème, supprimez l'application de calendrier via le sélecteur d'application et relancez-la.
  • NOUVEAU : tous les calendriers MobileMe ont été dupliqués après avoir désactivé puis réactivé la synchronisation du calendrier.
  • NOUVEAU : Si vous lancez ou actualisez manuellement les calendriers sur un iPad, vos calendriers peuvent disparaître et vous devrez appuyer sur « Afficher tous les calendriers » pour les afficher à nouveau.

Kit de jeu

  • CORRIGÉ : Dans les jeux prenant en charge les « matchs au tour par tour », un joueur ne peut pas terminer un match à moins que tous les joueurs ne terminent le match.
  • Les données de match pour les matchs au tour par tour sont actuellement limitées à 4 Ko de données.
  • Dans iOS 5.0, les notifications pour Game Center sont désactivées par défaut. Pour activer les notifications, accédez à Paramètres->Notifications->Game Center-> et modifiez le style d'alerte de Aucun à Bannières ou Alertes.
  • CORRIGÉ : tenter de présenter un objet GKPeerPickerController entraînait une atténuation de l'iPhone 4 et devenait « modal », mais le sélecteur de pairs n'apparaissait jamais.

Graphiques

  • NOUVEAU : Dans iOS 5 bêta 2, le type de données de la propriété center de GLKSkyboxEffect du framework GLKit a été modifié de GLfloat * à GLKVector3.
  • CORRIGÉ : Dans la version bêta d'iOS 5, la propriété envColor et la propriété colorMaterialEnabled de la classe GLKEffectPropertyTexture (dans le framework GLKit) ne sont pas opérationnelles.
  • CORRIGÉ : Dans la version bêta d'iOS 5, la propriété constantColor de la classe GLKBaseEffect (dans le framework GLKit) ne signale pas la valeur correcte dans gdb.
  • CORRIGÉ : Dans la version bêta d'iOS 5, la classe GLKReflectionMapEffect (dans le framework GLKit) nécessite soit la propriété texture2d0, soit la propriété texture2d1, ou les deux configurées avec un nom de texture valide (par exemple, texture2d0.glName = myTextureName) pour fonctionner correctement. . Si l'une de ces propriétés n'est pas configurée, vous n'obtiendrez aucun rendu de carte de réflexion et une erreur de compilation du shader.
  • Si vous n'avez pas de texture2d que vous avez l'intention d'utiliser avec la classe GLKReflectionMapEffect, le code suivant peut être ajouté comme solution de contournement pour augmenter l'effet de carte de réflexion avec une texture de base : [code rédigé]
  • CORRIGÉ : Dans la version bêta d'iOS 5, la désactivation de l'un des trois paramètres d'éclairage (light0, light1 ou light2) de GLKBaseEffect ne fonctionne pas.
  • Puisque la classe GLKReflectionMapEffect hérite de GLKBaseEffect, le même comportement est observé pour les lumières utilisées avec GLKReflectionMapEffect.

iBooks

  • iBooks 1.2.2 peut ne pas afficher certains textes ou images dans les livres. Veuillez mettre à jour vers iBooks 1.3 dans l'App Store.
  • CORRIGÉ : les PDF les plus récents ajoutés à iBooks ne seront pas ajoutés aux sauvegardes ultérieures.

iCloud sauvegarde

  • Comme il s'agit d'un logiciel bêta, il est recommandé de ne pas utiliser les services iCloud pour stocker des données ou des informations critiques. Si vous activez iCloud Backup, la sauvegarde automatique avec iTunes lors de la synchronisation sera désactivée. Nous vous suggérons également de sauvegarder manuellement votre appareil avec iTunes.
  • Dans la version bêta d'iOS 5, la prise en charge de la protection des données dans iCloud Backup n'est pas disponible. En conséquence, les applications qui ont des fichiers protégés ne verront aucune de leurs données ou métadonnées sauvegardées.
  • NOUVEAU : Après la restauration, vous ne pourrez peut-être pas effectuer de nouvelle sauvegarde car l'appareil pense toujours qu'il est en cours de restauration. Pour contourner ce problème, essayez de synchroniser les applications ou les médias manquants sur iTunes ou essayez de supprimer votre compte iCloud et de le rajouter.
  • NOUVEAU : Si vous supprimez votre sauvegarde, la fonctionnalité sera désactivée mais les paramètres peuvent toujours indiquer qu'elle est activée et vous devrez activer le commutateur Sauvegarde vers le cloud dans Paramètres.

iCloud Storage

  • Pendant la période bêta d'iOS 5.0, tous les documents stockés sur les serveurs peuvent être purgés périodiquement avant GM. Par conséquent, il est fortement recommandé de ne stocker aucun document ou information critique sur les serveurs.
  • Si votre application utilise la classe NSMetadataQuery, vous devez définir un prédicat, même si le prédicat lui-même est ignoré.
  • Le framework Foundation n’inclut pas l’ID d’équipe lors de la recherche du conteneur de documents mobiles d’une application. L’ID d’équipe doit être inclus au début de la chaîne d’identifiant transmise à la méthode URLForUbiquityContainerIdentifier:.
  • NOUVEAU : dans cette version bêta, la méthode setSortDescriptors : de NSMetadataQuery n'est pas prise en charge.
  • NOUVEAU : dans cette version bêta, si vous souhaitez utiliser iCloud, vous devez spécifier manuellement divers identifiants de conteneur (l'ensemble d'affichage de votre application) dans un fichier de droits pour vos projets Mac OS X et iOS.
  • NOUVEAU : Il existe des problèmes lors de l'utilisation de l'API de document Cloud Storage en conjonction avec des données protégées, qui peuvent entraîner une corruption des données.
  • NOUVEAU : Dans cette version bêta, les applications basées sur des documents ne peuvent pas toujours détecter lorsque des fichiers sont modifiés, déplacés ou supprimés sous eux.
  • NOUVEAU : Dans cette bêta, les présentateurs de fichiers (objets qui adoptent le protocole NSFilePresenter) ne reçoivent pas certains des messages qu'ils sont censés recevoir, notamment :
  • présentéItemDidChange
  • présentéSubitemDidAppearAtURL :
  • présentéSubitemDidChangeAtURL :
  • Vous pouvez contourner ce problème en implémentant la méthode relinquishPresentedItemToWriter: et en vérifiant si l'auteur a réellement écrit lors de la réacquisition de votre présentateur de fichiers. Vous pouvez également utiliser FSEvents pour observer les modifications du système de fichiers
  • NOUVEAU : dans cette version bêta, les messages concernant les modifications apportées aux fichiers d'un répertoire ne sont pas transmis aux objets qui adoptent le protocole NSFilePresenter.
  • Lorsque vous signalez un bug lié aux interfaces de stockage iCloud, veuillez inclure les journaux collectés lors de votre session de débogage. Pour générer ces journaux, vous devez installer un profil de débogage spécial sur votre appareil.
  • Le profil de débogage peut être obtenu sur http://connect.apple.com. Ce profil permet la génération de journaux de débogage nécessaires pour diagnostiquer tout problème utilisant le stockage iCloud. Les instructions pour collecter les journaux sont :
  • Installez le profil. (Le moyen le plus simple de procéder est de vous l'envoyer par courrier électronique et d'ouvrir la pièce jointe sur son appareil.)
  • Reproduisez le bug.
  • Synchronisez avec iTunes pour extraire les journaux de votre appareil.
  • Joignez les journaux à votre rapport de bug. Vous pouvez trouver les journaux dans ~/Library/Logs/CrashReporter/MobileDevice/DeviceName/DiagnosticLogs.
  • Ces journaux peuvent croître rapidement, vous devez donc supprimer le profil après avoir reproduit le problème et extrait les journaux pour le rapport de bogue.

iMessage

  • NOUVEAU : iMessage seed 2 ne pourra pas communiquer avec les utilisateurs d'iMessage sur seed 1.
  • CORRIGÉ : faire glisser le commutateur marche/arrêt d'iMessage et le commutateur marche/arrêt de la messagerie MMS dans Paramètres le faisait planter. Le simple fait d'appuyer ou de basculer ne fait pas planter les paramètres.
  • CORRIGÉ : dans une conversation iMessage, les pièces jointes vidéo/audio ne peuvent pas être visualisées dans la transcription des deux côtés de la conversation.

iTunes

  • La version d'iTunes fournie avec la version bêta 2 ne peut pas synchroniser les appareils sur lesquels le logiciel bêta 1 est installé. Pour éviter ce problème, procédez comme suit :
  • Synchronisez tous les appareils sur lesquels la version bêta 1 est installée avec la version d'iTunes fournie avec la version bêta 1.
  • Mettez à niveau iTunes vers la version fournie avec la version bêta 2.
  • Connectez l'appareil et installez le logiciel bêta 2. (Comprenez que vous pouvez voir une erreur d'échec de synchronisation lorsque vous connectez l'appareil pour la première fois.)
  • Après avoir installé le logiciel bêta 2, restaurez depuis votre sauvegarde la sauvegarde que vous avez effectuée à l'étape 1.

MMS

  • NOUVEAU : L'envoi d'un MMS de vidéos volumineuses ne fonctionne pas.

Ajustements de photos

  • Si vous appliquez des réglages pour les yeux rouges dans iOS et importez votre image dans la version de base d'iPhoto, les réglages pour les yeux rouges n'apparaîtront pas sur cette image dans iPhoto. Par conséquent, la synchronisation ultérieure de votre image sur l'appareil iOS à partir d'iPhoto n'affichera pas les réglages des yeux rouges.

Rappels

  • NOUVEAU : L'application Rappels n'envoie pas de notifications pour les rappels basés sur l'entrée (et/ou la sortie) d'un emplacement si aucune date n'est associée au rappel.

Paramètres

  • NOUVEAU : Le bouton "Sauvegarder maintenant" est activé sans que la classe de données de sauvegarde soit activée pour le compte.
  • NOUVEAU : Si vous affichez le clavier des termes dans Paramètres->Général->Mise à jour du logiciel, vous ne pouvez pas le ignorer. Vous devez forcer la fermeture des paramètres pour sortir.

Tremplin

  • Les notifications push et locales pour les applications apparaissent dans le nouveau centre de notifications d'iOS 5.0. Le Centre de notifications affiche les notifications considérées comme « non lues ». Afin de prendre en charge les notifications push et locales qui n'ont pas de statut « non lu », les développeurs peuvent utiliser le nombre de badges de leur application pour déclencher la suppression des notifications du centre de notifications. Lorsqu'une application efface son nombre de badges (en le définissant sur zéro), iOS 5 effacera ses notifications du Centre de notifications.
  • Il est fortement conseillé aux développeurs de ne pas exécuter ou déboguer des applications sur l'appareil avant d'avoir terminé l'assistant de configuration de l'appareil. Cela entraînera un comportement inattendu et constituera une opération empêchée dans une prochaine version.

Automatisation de l'interface utilisateur

  • Les boutons de lecture et d'enregistrement de l'éditeur de script d'instrument d'automatisation peuvent ne pas fonctionner correctement après avoir ciblé une application lancée par une session de trace et terminée. Ils peuvent également ne pas fonctionner si vous ciblez une application qui a été suspendue. Si vous rencontrez ce problème et qu'il persiste, vous devrez peut-être fermer et rouvrir le document de trace pour revenir à un état fonctionnel.
  • Lors de la capture d'actions dans un script à l'aide de l'instrument Automation, les interfaces avec des vues Web ou des cellules de tableau contenant un nombre élevé d'éléments hors écran peuvent prendre un temps extrêmement long avant de renvoyer une expression.
  • Les fonctions lock() et unlock() de UIATarget ont été remplacées par lockForDuration( ) fonction.
  • Instruments écrase le script d'automatisation chargé, même si un autre programme le modifie.
  • À partir d'iOS 5.0, bêta 2, vous pouvez désormais déclencher l'exécution d'un script UI Automation sur un appareil iOS à partir du terminal hôte à l'aide de l'outil Instruments. La commande est :
  • instruments -w T

Uikit

  • NOUVEAU : renvoyer nil depuis la méthode tableView:viewForHeaderInSection: (ou son équivalent en pied de page) n'est plus suffisant pour masquer un en-tête. Vous devez remplacer tableView:heightForHeaderInSection: et renvoyer 0.0 pour masquer un en-tête.
  • Dans la version bêta d'iOS 5, la classe UITableView dispose de deux méthodes pour déplacer une cellule d'une ligne à une autre avec des paramètres définis. Ces API ont :
  • déplacerSection : vers Section :
  • moveRowAtIndexPath : vers IndexPath :
  • À partir d'iOS 5, la propriété exclusiveTouch de UIControl est définie par défaut sur OUI.
  • À l'aide de la classe UIWebView dans Interface Builder, la définition d'une couleur d'arrière-plan transparente est possible dans iOS 5. Les développeurs compilant avec le nouveau SDK peuvent vérifier dans leur XIB le paramètre transparent UIWebView.
  • Dans iOS 5 bêta, les implémentations de UINavigationBar, UIToolbar et UITabBar ont été modifiées afin que la méthode drawRect: ne soit pas appelée sur les instances de ces classes, sauf si elle est implémentée dans une sous-classe. Les applications qui ont réimplémenté drawRect: dans une catégorie sur l'une de ces classes constateront que la méthode drawRect: n'est pas appelée. UIKit effectue une vérification des liens pour empêcher la méthode d'être appelée dans les applications liées avant iOS 5, mais ne prend pas en charge cette conception sur iOS 5 ou version ultérieure. Les applications peuvent soit :
  • Utilisez l'API de personnalisation pour les barres sous iOS 5 et versions ultérieures, ce qui est la méthode préférée.
  • Sous-classe UINavigationBar (ou les autres classes de barres) et remplacez drawRect: dans la sous-classe.
  • Les méthodes indexPathForRow:inSection:, section et row de NSIndexPath utilisent désormais NSInteger au lieu de NSUInteger, afin que ces types correspondent aux méthodes définies sur UITableView.
  • Il existe un problème connu lors de la présentation d'un objet UIVideoEditorController qui n'affiche pas la vidéo sélectionnée, qui apparaît vide à la place. Dans certains cas, il peut également planter.
  • Les événements tactiles ne sont pas transmis à la vue dans la propriété cameraOverlayView de UIImagePickerController.
  • NOUVEAU : La méthode imagePickerController:didFinishPickingMediaWithInfo: de UIImagePickerController ne renvoie pas d'URL vers la vidéo une fois l'enregistrement terminé.
  • NOUVEAU : lors de la création d'un nouveau rendez-vous dans l'application de calendrier sur un appareil utilisant une horloge de 24 heures, vous ne pouvez pas sélectionner une valeur d'heure supérieure à 12. La valeur du sélecteur de date et d'heure définit le jour de la semaine en cours pour qu'il soit le même que le jour précédent (par exemple : un rendez-vous le mardi sera défini comme lundi).
  • NOUVEAU : Nous avons modifié le comportement de scrollToRowAtIndexPath:atScrollPosition:animated : de telle sorte que UITableViewScrollPositionTop et UITableViewScrollPositionBottom s'ajustent désormais pour les parties supérieure et inférieure de la propriété contentInset.

WebKit

  • NOUVEAU : Dans iOS 5.0 bêta 2, une nouvelle propriété CSS héritée, -webkit-overflow-scrolling, est disponible. La valeur touch permet au développeur Web d'opter pour le défilement de style natif dans un élément overflow:scroll. La valeur par défaut de cette propriété est auto.
  • Le framework WebKit a adopté un moteur WebKit plus récent, qui correspond étroitement à Safari 5.1. Quelques domaines à prendre en compte avec le nouveau framework WebKit sur iOS :
  • Il existe un nouvel analyseur compatible HTML5.
  • La largeur de la disposition du texte peut changer légèrement car le comportement d'arrondi des mots a désormais une précision basée sur la virgule flottante.
  • Il y a une validation améliorée de la champ de formulaire, qui inclut la suppression des zéros non significatifs et le formatage des nombres.
  • Les événements tactiles sont désormais pris en charge sur les champs de saisie.
  • window.onerror est désormais pris en charge.

Synchronisation Wi-Fi

  • Dans iOS 5.0 bêta 2, la synchronisation sans fil est désormais disponible pour Mac. Il nécessite iTunes 10.5 bêta 2 et OS X 10.6.8 ou Lion. Vous verrez une option pour activer la synchronisation sans fil lorsque vous connectez votre appareil à iTunes avec le câble USB. Il est recommandé d'effectuer votre synchronisation initiale avec un câble après avoir restauré votre appareil.
  • La synchronisation sans fil se déclenche automatiquement lorsque l'appareil est connecté à l'alimentation et sur le même réseau que l'ordinateur couplé. Vous pouvez également déclencher manuellement une synchronisation depuis iTunes ou depuis Paramètres -> Général -> iTunes Sync (même réseau que l'ordinateur couplé requis). Assurez-vous que votre appareil est branché sur une source d'alimentation lorsque vous effectuez des synchronisations sans fil.
  • Si vous rencontrez des problèmes avec les applications, les médias et/ou les photos synchronisées sur votre appareil, vous pouvez réinitialiser puis resynchroniser. Dans Paramètres -> Général -> Réinitialiser, choisissez Effacer tout le contenu et les paramètres. Reconnectez-vous ensuite à iTunes et synchronisez à nouveau.
  • Dans cette version bêta, iTunes peut signaler à tort les photos comme « Autre » dans la barre de capacité. La synchronisation des photos fonctionne par ailleurs comme prévu.

Xcode

  • Nous vous encourageons fortement à sauvegarder votre appareil à l'aide d'iTunes avant de procéder à la restauration.
  • Dans certains cas, Xcode 4.2 Organizer n'affiche pas un appareil en mode restauration. Pour contourner le problème, vous pouvez utiliser iTunes pour restaurer.
  • Sur certaines machines de bureau, l'utilisation de la mémoire de Xcode augmente incroyablement rapidement lors de la restauration d'un appareil ou de la copie d'un IPSW. Pour contourner le problème, utilisez iTunes pour restaurer.
  • Parfois, Xcode 4.2 passe à un mauvais schéma ou exécute une destination après une mise à jour sur le disque.
  • Dans cette version bêta, les journaux de crash (non symbolisés ou symbolisés) n'apparaissent pas dans Xcode Organizer. Pour les faire apparaître dans Xcode Organizer, vous devrez renommer l'appareil.
  • NOUVEAU : Dans iOS 5.0 bêta 2, le simulateur iOS n'est pas compatible avec les versions précédentes d'iCloud Developer Seed pour OS X. Il est fortement recommandé de mettre à jour vers la dernière version d'iCloud Developer Seed pour garantir la compatibilité.