iOS 10 bêta 6 est sorti pour iPhone et iPad

iOS bêta 10 6 est sorti ce soir pour iPhone et iPad, la société Apple proposant aux développeurs d'applications pour iDevices de tester la dernière version de son système d'exploitation, celle-ci étant sortie à seulement une semaine de la précédente préparée par les Américains.

Nous parlons d'accélérer la période de test bêta d'iOS 10, proposée par Apple iOS bêta 10 6 très rapidement après la version précédente, et cela signifie que bientôt nous aurons également disponible la version GM, celles de Cupertino essayant de résoudre tous les problèmes existants le plus rapidement possible.

Développeurs d'applications pour la plateforme iOS intéressés par les tests iOS bêta 10 6 peuvent télécharger le profil associé depuis leur compte développeur, mais ceux qui ont déjà installé une version précédente peuvent suivre la procédure depuis Paramètres> Général> Mise à jour du logiciel, Paramètres > Général > Mise à jour du logiciel, pour faire l'installation.

Compte tenu de l'urgence de ceux d'Apple, il faut s'attendre à ce que la présentation de l'iPhone 7 le 7 septembre pour être réel, sinon il n'y aurait eu aucune raison d'accélérer le processus de publication de nouvelles versions d'iOS 10, celles d'Apple ayant probablement aussi beaucoup de retours concernant les problèmes découverts par les utilisateurs dans iOS 10.

Toutes les nouveautés découvertes dans iOS 10 beta 6 seront listées dans cet article.

MISE À JOUR: iOS 10 bêta publique 5 a également été communiqué aux utilisateurs.

MISE À JOUR 2: watchOS 3 bêta 6 a également été libéré.

MISE À JOUR 3: tvOS 10 bêta 6 il a été libéré.

MISE À JOUR 4: Voici les nouvelles :

  1. Les problèmes liés au choix des papiers peints ont été résolus.

MISE À JOUR 5: macOS Sierra bêta 6 est sorti.

Fonctionnalité non disponible dans iOS 10 bêta 6
Fonctionnalité qui nécessite l'adoption des applications de l'App Store, telles que les applications iMessage, SiriKit et Maps
les extensions ne seront pas disponibles tant que ces applications ne pourront pas être adoptées et soumises au Store.
Corrigé dans cette version
Mes Messages
• Les conseils de recherche fonctionneront désormais comme prévu dans la boutique de messages.
• Lors du lancement d'une extension d'application iMessage depuis iOS Simulator, l'extension d'application ne doit pas
ne soit plus vide ou ne réponde plus à la saisie tactile.
Siri
Siri fournira désormais une réponse appropriée lorsqu'une demande nécessite la suppression d'une application.
Sirikit
• La propriété d'identifiant sur INIntent change désormais de manière appropriée entre les requêtes Siri.
• Le résultat de la résolution needMoreDetails(for:) fonctionne désormais.
Xcode
Si une StickerSequence est ajoutée à un pack d'autocollants et laissée vide, ou si des cadres de différentes tailles sont ajoutés, le
L'application du pack d'autocollants ne sera plus vide une fois déployée.
Remarques et problèmes connus
Fondation AV
Notes
Dans iOS 10 bêta 3, les noms des méthodes facultatives AVCapturePhotoCaptureDelegate
didFinishProcessingPhoto et didFinishProcessingRawPhoto ont été remplacés par
didFinishProcessingPhotoSampleBuffer:previewPhotoSampleBuffer:resolvedSetting
s: bracketSettings: erreur: et
didFinishProcessingPhotoSampleBuffer:previewPhotoSampleBuffer:resolvedSetting
s: bracketSettings: error :, respectivement. Code qui utilise les noms précédents (comme le WWDC
version de l'exemple de projet AVCamManual) continuera à se compiler, mais les anciens rappels des délégués
ne s'exécutera pas.
Compatibilité binaire
• Apple réserve les préfixes à deux lettres pour une utilisation dans les classes framework. Lorsque vous nommez vos propres classes,
veuillez utiliser un préfixe de trois lettres. Les lignes directrices peuvent être consultées ici :
 Droits d'auteur © 2016 Apple Inc. Tous droits réservés. Conditions d'utilisation. Politique de confidentialité. Page 3 sur 9
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/
ProgrammationAvecObjectiveC/Conventions/Conventions.html
Le non-respect de ces directives pourrait entraîner le blocage de votre application lors des versions bêta du logiciel.
• Lors de la recompilation avec iOS 10.0, l'appel de [NSObject valueForKey:] avec une clé nulle renvoie un
exception. Auparavant, cela conduisait à un comportement indéfini ; maintenant, cela provoque le crash de votre application.
• Le référencement d'une police système par son nom dans un appel à +[UIFont fontWithName:size:] provoque un
accident. Pour plus d'informations, consultez https://developer.apple.com/videos/play/wwdc2015/804/
• Pour améliorer la confidentialité des clients, les URL https://, NSURLSession et NSURLConnection non
ne prend plus en charge les suites de chiffrement RC4 lors de la prise de contact TLS. Les applications et services concernés devraient
mettre à niveau les serveurs Web pour utiliser des suites de chiffrement plus modernes.
• Les applications peuvent se bloquer si elles modifient la géométrie d'une vue d'ensemble dans viewWillLayoutSubviews ou
layoutSubviews.
• NSURLConnection interdit les connexions qui utilisent des versions de protocole TLS inférieures au protocole
version spécifiée par une stratégie ATS via NSExceptionMinimumTLSVersion ou
Clés NSThirdPartyExceptionMinimumTLSVersion. Les applications et services concernés devraient
mettez à niveau les serveurs Web pour utiliser des versions de protocole TLS plus modernes.
Protocole HTTP CFNetwork
La classe NSMutableURLRequest nécessite que la propriété HTTPBodyStream ne soit pas ouverte
stream, et les classes NSURLConnection et NSURLSession appliquent désormais strictement ce protocole non ouvert.
exigence de flux. Les applications concernées doivent s'assurer que tout NSInputStream fourni n'a pas encore été
été ouvert.
Kit Cloud
Lors de la création et de l'exécution répétées à partir de Xcode, les opérations de longue durée peuvent échouer avec le message « Vous n'avez pas
autorisation d'enregistrer le fichier », car le chemin du conteneur change à plusieurs reprises.
FaceTime
Les appels FaceTime entre cette version bêta et les anciennes versions bêta d'iOS et de macOS ne sont pas pris en charge. Veuillez mettre à jour votre
Mac et iPhone vers la dernière version.
HomeKit
L'ajout d'accessoires WAC HomeKit peut échouer à l'aide de l'application Home si les informations d'identification réseau ne sont pas les premières
fourni à l’aide de l’option Paramètres > Wi-Fi > Configurer un nouvel appareil.
Solution de contournement : si l'ajout d'un tel accessoire HomeKit échoue, fournissez les informations d'identification du réseau à l'aide de Paramètres >
Wi-Fi > Configurer un nouvel appareil. Une fois que l'accessoire a rejoint le réseau, l'accessoire peut être ajouté
à l'aide de l'application Maison.
libdispatch
Libdispatch affirme si un blocage est détecté en raison d'un blocage dans dispatch_barrier_sync.
 Droits d'auteur © 2016 Apple Inc. Tous droits réservés. Conditions d'utilisation. Politique de confidentialité. Page 4 sur 9
Mes Messages
• Lorsque UISearchController et UITableViewController sont utilisés dans les extensions Messages,
leur contenu peut être masqué sous la barre supérieure.
Solution de contournement : utilisez des encarts d'environ 80 px en haut et 40 px en bas.
• Dans Simulator uniquement, lorsque localiséChangeDescription dans insertMessage :
localizedChangeDescription:completionHandler : la méthode est définie sur
$localParticipantIdentifier.UUIDString, le
$localParticipantIdentifier.UUIDString n'est pas remplacé par l'ID de messages de l'utilisateur,
et l'UUIDString est imprimé tel quel.
• Lorsque l'application Messages dans Simulator est fermée de force, l'historique des messages est perdu.
• Lorsqu'un objet UIAlertController est présenté dans une extension Messages, il est tronqué par le
barre inférieure de l'extension.
• Si une boîte de dialogue de connexion s'affiche lors d'un achat via l'application ou d'une tentative d'achat de contenu.
du magasin, ou le magasin ou l'extension sera rejeté.
• L'UUID du participant local est le même pour les deux participants à la conversation dans le simulateur uniquement.
Solution de contournement : utilisez un appareil pour tester les comparaisons d'UUID.
• Lors de la lecture des messages, Siri ne décrit pas avec précision les nouveaux types de messages ou fonctionnalités.
Mobile Device Management
• À partir d'iOS 10, les charges utiles SCEP ne sont plus par défaut MD5 si un serveur SCEP ne parvient pas à renvoyer un
CACaps ou ne revendique pas la capacité pour SHA-1, SHA-256 ou SHA-512 dans CACaps.
Si un serveur SCEP ne répond pas à GetCACaps, SHA-1 sera supposé et utilisé pour le SCEP
tentative.
Si les serveurs SCEP répondent à GetCACaps, le serveur doit noter qu'ils disposent de SHA-1, SHA-256 ou
La fonctionnalité SHA-512 ou la demande d’inscription SCEP a échoué en raison de capacités insuffisantes.
Consultez la session WWDC 2016 Quoi de neuf dans la gestion des appareils Apple pour plus d'informations.
• Pour encourager une utilisation plus forte du mot de passe, iOS 10 invitera toujours un utilisateur à créer un mot de passe de
au moins 6 caractères sur un appareil compatible TouchID, même si une politique de code d'accès est en place qui permet
des codes d'accès plus courts. Dans ce cas, les utilisateurs peuvent toujours saisir un code d'accès plus court qui correspond au code d'accès
.
Musique
Remarques sur Apple Music dans iOS 10 bêta 6 :
• Récemment joué dans For You peut ne pas s'actualiser instantanément.
? MPMediaPickerController peut ne pas s'afficher comme prévu.
• La suppression d'Apple Music peut empêcher certains accessoires de lire des livres audio, des podcasts et
meurt. Téléchargez Apple Music depuis l'App Store pour restaurer la lecture.
• Le widget d'aujourd'hui pour la musique peut ne pas afficher toute la musique récemment écoutée.
Lorsqu'elles sont connectées à une voiture, certaines fonctionnalités peuvent ne pas fonctionner comme prévu :
• L'édition suivante peut perturber la lecture de manière inattendue.
 Droits d'auteur © 2016 Apple Inc. Tous droits réservés. Conditions d'utilisation. Politique de confidentialité. Page 5 sur 9
• Lors de l'utilisation de CarPlay, View All Stations n'affiche pas encore toutes les stations.
Notes
Les notes peuvent se fermer de manière inattendue.
Solution de contournement : désactivez, puis activez Notes dans Paramètres > Général > iCloud.
NSUserActivité
Un objet NSUserActivity ne peut avoir aucune information utilisateur après le transfert.
Solution de contournement : appelez explicitement comeCurrent sur l'objet d'activité.
Téléphone
La transcription de la messagerie vocale (bêta) est disponible sur iPhone 6s, iPhone 6s Plus et iPhone SE avec la langue Siri
réglé sur anglais (États-Unis ou Canada).
Photos
• La synchronisation des personnes n'est pas activée via la photothèque iCloud dans iOS 10.
• Les éléments Mémoires, Associés, Personnes et Scène ne sont pas pris en charge sur les appareils 32 bits.
Safari
• WebGeolocation nécessite désormais un site Web sécurisé (HTTPS) pour fonctionner à la fois sur iOS et macOS
empêcher l’utilisation malveillante des données de localisation.
• WKWebView respecte désormais par défaut user-scalable=no à partir d'une fenêtre d'affichage. Clients de WKWebView
peut améliorer l'accessibilité et permettre aux utilisateurs de pincer pour zoomer sur toutes les pages en définissant le
La propriété WKWebViewConfiguration ignoreViewportScaleLimits sur YES.
• SFSafariViewControllerConfiguration et -[SFSafariViewController
initWithURL:configuration:] Les API ont été supprimées et –
[SFSafariViewController initWithURL:entersReaderIfAvailable:] n'est plus
marqué comme obsolète. La propriété PreferredBarTintColor a été déplacée vers
SFSafariViewController, avec une nouvelle propriété PreferredControlTintColor
quels clients devraient utiliser au lieu de définir tintColor directement sur la vue. Applications liées sur iOS
10 ou version ultérieure ne transmettra plus la couleur de teinte de leur vue à SFSafariViewController.
Swift Playgrounds
Swift Playgrounds est une toute nouvelle application conçue pour aider les gens à apprendre à coder avec Swift 3.
Il propose du contenu téléchargeable, notamment Learn to Code Part 1 et Learn to Code Part 2, qui enseigne
les principes fondamentaux du codage dans Swift et les défis supplémentaires que vous pouvez explorer. Vous pouvez aussi
expérimentez par vous-même en créant des terrains de jeux basés sur les modèles, créez un terrain de jeu vierge ou
terrains de jeux ouverts créés dans Xcode.
Swift Playgrounds est inclus avec iOS 10 bêta 6.
La version bêta 6 de Swift Playgrounds contient Apprendre à coder, partie 1 et Apprendre à coder, partie 2.
 Droits d'auteur © 2016 Apple Inc. Tous droits réservés. Conditions d'utilisation. Politique de confidentialité. Page 6 sur 9
Notes
• Les terrains de jeu qui ne sont pas stockés dans iCloud ne sont pas disponibles lors de la mise à niveau vers la version de Swift.
Terrains de jeux disponibles dans l’App Store cet automne. Pour conserver vos terrains de jeux, activez iCloud ou
utilisez la feuille de partage pour AirDrop, envoyez un message ou envoyez un e-mail à vos terrains de jeux pour une sauvegarde sur un autre
ordinateur ou appareil avant de passer à la version finale de Swift Playgrounds.
• La version bêta 6 de Swift Playgrounds utilise l'aperçu 3.0 de Swift 4 (swiftlang-800.0.41.1). Code écrit en utilisant
les autres versions de Swift peuvent ne pas fonctionner dans Swift Playgrounds bêta 6.
• Les terrains de jeu créés avec Swift Playgrounds bêta 1 à 4 ne s'exécutent pas correctement dans Swift.
Playgrounds bêta 6. De même, les terrains de jeux mis à disposition pour Swift Playgrounds bêta 6 ne le sont pas.
s'exécute correctement lorsqu'il est exécuté sur Swift Playgrounds bêta 1 à 4. Cette limitation inclut le
terrains de jeux dans Apprendre à coder.
• Swift Playgrounds sur iPad ne sait pas si vous avez développé un aperçu rapide en ligne.
pour les valeurs dans l'éditeur. Par exemple, si vous modifiez un terrain de jeu Swift 3 doté d'un accès rapide étendu
Regardez, les aperçus rapides sont réduits lorsque vous enregistrez.
• AVFoundation est disponible, mais la capture d'entrée ne renvoie rien.
Par exemple, AVCapturePreviewLayer est toujours un calque transparent vierge.
• Un problème empêche le rendu des vues SceneKit (SCNView) dans Swift Playgrounds lorsque
la caméra actuelle (SCNCamera) utilise de nouveaux effets, tels que l'étalonnage des couleurs, les franges de couleur, etc.
saturation et contraste.
• Le framework GameController est disponible et semble se connecter avec succès aux contrôleurs, mais
Les blocs de gestionnaire de boutons ne sont jamais appelés.
Uikit
Notes
Avant iOS 10, il était possible de remplacer [UIStackView initWithArrangedSubviews:],
mais cela était destiné à être un initialiseur pratique et implémenté en tant que tel. Nous avons maintenant
appliqué cela dans les en-têtes. Par conséquent, les clients Swift ne peuvent plus remplacer cette méthode, car
Les règles d'initialisation Swift empêchent le remplacement d'un initialiseur pratique.
• Dans iOS 10, UIKit a mis à jour et unifié la gestion de l'arrière-plan pour UINavigationBar,
UITabBar et UIToolbar. En particulier, les modifications apportées aux propriétés d'arrière-plan de ces vues (telles que
comme images d'arrière-plan ou d'ombre, ou définition du style de la barre) peut lancer une passe de mise en page pour la barre
résoudre la nouvelle apparence d’arrière-plan.
En particulier, cela signifie que les tentatives de modification de l'apparence d'arrière-plan de ces barres à l'intérieur
de -[UIView layoutSubviews], -[UIView updateConstraints], -[UIViewController
willLayoutSubviews], -[UIViewController didLayoutSubviews], –
[UIViewController updateViewConstraints], ou toute autre méthode appelée dans
la réponse à la mise en page peut entraîner une boucle de mise en page.
Dans certains cas, vous pouvez rompre ces boucles de mise en page en vous assurant que vous utilisez toujours le même objet
exemple lorsque des objets (tels que UIImage ou UIColor) sont requis. Mais en général, vous devriez
évitez de faire cela.
Étant donné que tous les paramètres d'apparence sont désormais résolus en même temps, il peut y avoir des cas où
l'apparence de votre bar a changé. En général, les meilleurs résultats sont obtenus en spécifiant aussi peu que
possible pour personnaliser votre bar. Par exemple, si vous spécifiez une valeur barTintColor et
en spécifiant un objet UIImage vide pour la propriété backgroundImage (comme c'est le cas lorsque
vous appelez [UIImage new], par exemple) alors vous devriez obtenir de meilleurs résultats en spécifiant uniquement le
barTintColor. Toutes les modifications que vous apportez pour résoudre ces problèmes dans iOS 10 devraient également fonctionner
 Droits d'auteur © 2016 Apple Inc. Tous droits réservés. Conditions d'utilisation. Politique de confidentialité. Page 7 sur 9
correctement dans iOS 9. Si ce n'est pas le cas, veuillez signaler les bugs avec un exemple de projet et un
capture d'écran indiquant à quoi devraient ressembler les barres.
• Dans iOS 10, il y a un léger changement de comportement de UIGestureRecognizer lors de la suppression d'un fichier actuel.
reconnaître (c'est-à-dire en plein vol) le dispositif de reconnaissance de gestes à partir de son UIView. Auparavant, en supprimant le
la reconnaissance de gestes en cours de vol n'annulerait pas explicitement la reconnaissance de gestes, vous permettant de
rajoutez la reconnaissance de gestes à la même vue ou à une vue différente. Sous iOS 10, appeler –
[UIView RemoveGestureRecognizer:] sur la vue d'un système de reconnaissance de gestes en plein vol
annule explicitement la reconnaissance de gestes. Si un utilisateur souhaite modifier la vue d'un geste en plein vol
reconnaissance, vous pouvez simplement appeler -[UIView addGestureRecognizer:] sur la vue que vous souhaitez
déplacez la reconnaissance de gestes vers.
• Les contrôleurs de vue présentés peuvent désormais affecter l'apparence de la barre d'état même s'ils étaient présentés.
à partir d'un contrôleur de vue qui n'a pas affecté la barre d'état (par exemple, un popover). Par défaut,
les présentations personnalisées du contrôleur de vue sont supposées ne pas affecter la barre d'état ; Utilisez le
propriété modalPresentationCapturesStatusBarAppearance sur UIViewController pour
permettre à un contrôleur de vue présenté de participer à l'apparence de la barre d'état.
• Il a toujours été obligatoire que les sous-classes d'UIViewController appellent les super.
implémentation de -awakeFromNib à partir de leurs propres remplacements. À partir d'iOS 10, –
awakeFromNib est correctement annoté avec l'attribut NS_REQUIRES_SUPER pour détecter
implémentations qui ne respectent pas cette exigence. Pour corriger cet avertissement, assurez-vous que tous les chemins de code
de votre appel prioritaire [super awakeFromNib].
• Lors de l'exécution sur iPad, la couleur d'arrière-plan définie pour un UITableViewCell dans un Storyboard est désormais
respecté.
• À partir d'iOS 10, UITableViewHeaderFooterView prend en charge NSCoding, donc si une vue avec ceci
la classe est dans un XIB, elle décode désormais correctement. La conséquence est que les applications peuvent présenter des
contenu pour ces vues qui n'apparaissait pas auparavant en raison du bug qui a été corrigé.
• Pour les vues de tableau très larges où les marges de disposition des cellules ont été automatiquement augmentées pour suivre
la largeur lisible, les inserts de séparation sont désormais interprétés par rapport à ces marges gauche et droite
au lieu des bords de la vue du tableau.
• La fusion de la livraison UITouch a été considérablement améliorée, en particulier dans les cas où
les utilisateurs toucheraient à la fois l'écran et utiliseraient l'Apple Pencil en même temps sur l'iPad Pro et le
l'application n'a pas pu les traiter au tarif entrant. Dans certains scénarios, des événements peuvent encore survenir
à un rythme plus élevé que celui de l'affichage. Ceci est attendu et votre application doit l'anticiper
et gérer en conséquence.
• Sous iOS 10, les fenêtres qui ne sont pas en plein écran n'affectent pas l'apparence de la barre d'état.
• L'envoi de -layoutIfNeeded à une vue ne devrait pas déplacer la vue, mais dans les versions antérieures, si
la vue avait TranslatesAutoresizingMaskIntoConstraints == false, et si c'était le cas
étant positionné par des contraintes, -layoutIfNeeded déplacerait la vue pour qu'elle corresponde à la mise en page
moteur avant d’envoyer la mise en page au sous-arbre.
Ces changements corrigent ce comportement, et la position du récepteur et généralement sa taille ne seront plus modifiées.
affecté par -layoutIfNeeded.
Certains codes existants peuvent s'appuyer sur ce comportement incorrect qui est désormais corrigé. Il n'y a pas
changement de comportement pour les binaires liés avant iOS 10, mais lors de la construction sur iOS 10, vous devrez peut-être
corriger certaines situations en envoyant -layoutIfNeeded à une supervision du
TranslatesAutoresizingMaskIntoConstraints == fausse vue qui était la précédente
récepteur, ou bien le positionner et le dimensionner avant (ou après, selon le comportement souhaité) –
mise en page si nécessaire.
• Applications tierces avec sous-classes UIView personnalisées utilisant la mise en page automatique qui remplacent
layoutSubviews et mise en page sale sur self avant d'appeler super risquent de déclencher une mise en page
 Droits d'auteur © 2016 Apple Inc. Tous droits réservés. Conditions d'utilisation. Politique de confidentialité. Page 8 sur 9
boucle de rétroaction lors de leur reconstruction sur iOS 10. Lorsqu'ils sont correctement envoyés ensuite -
layoutSubviews appelle, ils doivent être sûrs d'arrêter de salir la mise en page sur eux-mêmes à un moment donné (notez que
cet appel a été ignoré dans la version antérieure à iOS 10).
• Les images rabattables fonctionnent en ayant deux images dans un élément, chacune avec un trait de directionnalité différent.
Lorsque vous créez un objet UIImage dérivé à l'aide des méthodes -imageWith…, il n'est plus
associé à l'élément d'image dont il provient. Pour créer une image de modèle retourneable au moment de l'exécution, utilisez
UIImageAsset.
• La source de la notification UIContentSizeCategoryDidChangeNotification est désormais
UIScreen.main() au lieu de UIApplication.shared().
• Il existe deux propriétés dans la classe UIViewPropertyAnimator et une méthode dans le
Protocole UIViewAnimating qui n'est pas disponible dans iOS 10 bêta 1.
UIViewPropertyAnimateur :
@property(nonatomic, getter=isManualHitTestingEnabled) BOOL
manuelHitTestingEnabled ;
@property(nonatomic, readonly) Délai NSTimeInterval ;
UIViewAnimation :
(void)startAnimationAfterDelay:(NSTimeInterval)délai ;
Problème connu
Pour les objets UIImage créés à partir d'objets CIImage, les méthodes de dessin UIImage
(drawInRect, drawAtPoint) sera toujours converti en espace colorimétrique DeviceRGB avant de dessiner. Ce
entraîne une perte d’informations de couleur étendues lors du dessin dans un contexte graphique aux couleurs larges.
Solution de contournement : vous pouvez récupérer le CIImage sous-jacent via la propriété UIImage.CIImage et effectuer le rendu
à l'aide d'un CIContext créé avec l'espace colorimétrique approprié (sRGB étendu) et le format de pixel (full-
flotter).
Un objet UIImage créé à partir de CGImageRef n'est pas affecté et s'affichera correctement sans perte
d'informations sur les couleurs.
Widgets
La première fois que vous déboguez un widget (c'est-à-dire une extension Today) sur un appareil, il ne s'affiche pas comme possible
extension.
Solution de contournement : déboguez à nouveau pour que l'extension apparaisse.
Xcode
Parfois, l'utilisation de Commande-Maj-HH depuis l'écran d'accueil n'appelle pas le sélecteur d'application.
Solution de contournement : lancez n'importe quelle application avant d'utiliser Command-Shift-HH.