Journal des modifications d'iOS 8.1 bêta 1

  Suite au lancement surprenant de iOS bêta 8.1 1 pour iPhone, iPad et iPod Touchsociété Apple il a également publié un changelog dans lequel il décrit les différents changements qu'il a mis en œuvre pour nos terminaux. Comme vous le verrez dans le texte disponible ci-dessous, les principaux changements apportés par la société américaine visent strictement le fonctionnement du système d'exploitation, mais il y a bien sûr aussi quelques autres nouveautés "de surface".

  L'intégralité du journal des modifications pour iOS 8.1 beta 1 vous pouvez le voir ci-dessous, et je reviendrai avec des détails supplémentaires sur les changements visibles mis en œuvre par la société Apple dans un prochain article.

Journal des modifications d'iOS 8.1 bêta 1

Remarques et problèmes connus
Les problèmes suivants concernent l’utilisation du SDK iOS 8.1 pour développer du code.

CaptureAV
Problème connu
L'utilisation de la nouvelle constante, AVCaptureISOCurrent, entraînera des valeurs ISO incohérentes (comme observé sur la propriété ISO) si setExposureModeCustomWithDuration:ISO:completionHandler: est appelé à plusieurs reprises.
Kit Cloud
Notes
Une seule instance de CKAsset ne peut plus être définie comme valeur sur plusieurs CKRecords.
Contacts
Notes
Le sélecteur de personnes de l'interface utilisateur du carnet d'adresses a été modifié pour iOS 8. Un nouveau mode avec une nouvelle API a été ajouté dans lequel l'application n'a pas besoin d'accéder aux contacts de l'utilisateur et l'utilisateur ne sera pas invité à y accéder. Une copie temporaire de la personne sélectionnée est renvoyée dans l'application. Voir ABPeoplePickerNavigationController.h pour plus de détails.

Consultez le nouvel exemple de projet PeoplePicker : Choisir une personne ou une propriété démontrant l’utilisation du nouveau mode.
Fournisseurs de documents
Notes
Votre application a besoin des droits iCloud pour pouvoir être utilisée en tant que fournisseur de documents.
Le droit com.apple.developer.icloud-container-identifiers sera requis lors de la sortie d'iOS 8.
Problèmes connus
Après avoir fait pivoter le sélecteur de documents en mode paysage, la barre d'état est masquée.
Lors de l'affichage du sélecteur de documents en mode paysage, la vue contenant peut être déplacée sous la barre de navigation.
Extensions
Notes
Les extensions nécessitent une tranche arm64 pour fonctionner sur des appareils 64 bits. Si vous essayez d'exécuter la tranche armv7 sur un appareil 64 bits, cela ne fonctionnera pas.
Les applications doivent avoir une tranche arm64 si le bundle contient un cadre auquel l'application et l'extension d'application sont liées.
Système de fichiers
Notes
La disposition du système de fichiers des conteneurs d'applications a changé sur le disque. Plutôt que de vous fier à une structure de répertoires codée en dur, utilisez la fonction NSSearchPathForDirectoriesInDomains ou la méthode URLForDirectory:inDomain:appropriateForURL:create:error: de la classe NSFileManager. Voir Accès aux fichiers et répertoires dans le Guide de programmation du système de fichiers.
Polices
Notes
La taille de la police système thaïlandaise a été augmentée pour améliorer la lisibilité. Cela entraînera un écrêtage à de nombreux endroits de votre interface utilisateur si vous ne prenez pas les mesures appropriées :

Utilisez UILabel autant que possible. Si vous utilisez Interface Builder, assurez-vous que Clip Subviews n'est pas coché. UIKit agrandira la région de découpage si nécessaire pour ne pas couper le texte.
Utilisez le type dynamique. Cela garantira que vous n'aurez pas de glyphes qui se chevauchent dans les étiquettes multilignes ou les champs de texte.
Si vous ne pouvez pas faire 1 et 2 parce que vous implémentez vos propres vues, vous devez mettre en œuvre des mesures pour ne pas couper. Vous pouvez utiliser CoreText pour déterminer la zone de découpage appropriée pour une ligne de texte en appelant :

CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);
Pour éviter le chevauchement des glyphes dans les éléments de texte multilignes, ajustez la hauteur de la ligne. Un supplément de 30 % est recommandé.

Cette mesure aidera également votre application à mieux fonctionner dans d'autres langues, notamment l'arabe, l'hindi et le vietnamien.
Une manette
Corrigé dans iOS 8.1 bêta
Le transfert du GameController peut ne pas fonctionner.
HealthKit
Notes
Le code qui tente de lire les informations d’entraînement dans HealthKit peut ne pas pouvoir effectuer de requêtes ultérieures à HealthKit.

Si vous utilisez HKWorkouts, vous devez éviter de lire les entraînements lorsque vous exécutez des versions iOS antérieures à 8.1 avec :

NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0} ;
if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) {
// Lisez et écrivez les informations d'entraînement dans le kit de santé.
} Else {
// Écrivez les informations d'entraînement dans le kit de santé
}
Corrigé dans iOS 8.1 bêta
La livraison en arrière-plan des données HealthKit ne fonctionne pas comme prévu.
iCloud
Notes
Le transfert de courrier et AirDrop peuvent cesser de fonctionner après avoir modifié votre mot de passe iCloud sur appleid.apple.com.

Solution de contournement : déconnectez-vous et reconnectez-vous à iCloud sur l'appareil.
iCloud sauvegarde
Problème connu
Après la restauration à partir d'une sauvegarde iCloud, vous ne pourrez peut-être pas synchroniser le nouveau contenu musical ou vidéo d'iTunes.
icloud lecteur
Notes
URLForUbiquityContainerIdentifier : peut renvoyer zéro lors de l'exécution de votre application dans Xcode. Si tel est le cas, ouvrez les Préférences Système, accédez à iCloud > iCloud Drive et activez Xcode.
iCloud Keychain
Corrigé dans iOS 8.1 bêta
Lors de la connexion à iCloud, un utilisateur peut subir une réinitialisation du trousseau sur ses autres appareils qui étaient auparavant dans le cercle.
Les éléments du trousseau protégés par Touch ID n’autorisent pas SecItemUpdate. SecItemUpdate renvoie toujours errSecInteractionNotAllowed.
claviers
Corrigé dans iOS 8.1 bêta
L'accès au réseau est désactivé après l'ajout d'un nouveau clavier du même ensemble.
Les claviers personnalisés peuvent devenir vides après le changement d'application.
Problème connu
Les claviers tiers peuvent ne pas apparaître dans Safari, Maps ou dans les applications tierces sur le simulateur.

Solution de contournement : les claviers doivent pouvoir être testés dans Calendrier, Spotlight, Contacts et Photos.
Courrier
Corrigé dans iOS 8.1 bêta
L'application de la restriction Autoriser la modification du compte à un appareil sur lequel aucun compte de messagerie n'est configuré permettra toujours à un utilisateur de créer un compte de messagerie en lançant l'application Mail.
Métal
Corrigé dans iOS 8.1 bêta
Lorsque vous modifiez un shader de fichiers Metal à l'aide d'une compilation hors ligne pour créer une bibliothèque Metallib dont la taille a été réduite, la bibliothèque Metallib ne parvient pas à se charger sur l'appareil.

Solution de contournement : supprimez la bibliothèque metallib avant de la recréer en effectuant un nettoyage dans Xcode ou en supprimant le fichier manuellement avant de créer l'archive.
Notification Center
Notes
Le calendrier et l'utilisation prévue de widgetPerformUpdateWithCompletionHandler: sont destinés à servir d'accueil pratique pour toute la logique de mise à jour des données/modèles. S'il est mis en œuvre, le système appellera à des moments appropriés le widget pour mettre à jour son état, à la fois lorsque le centre de notifications est visible et en arrière-plan. Une implémentation est requise pour activer les mises à jour en arrière-plan. On s'attend à ce que le widget effectue le travail de mise à jour de manière asynchrone et en dehors du thread principal autant que possible. Les widgets doivent appeler le bloc d'arguments lorsque le travail est terminé, en transmettant le NCUpdateResult approprié. Les widgets ne doivent PAS bloquer le retour de viewWillAppear: sur les résultats de cette opération. Au lieu de cela, les widgets doivent charger l'état mis en cache dans viewWillAppear : afin de faire correspondre l'état de la vue du dernier viewWillDislessly :, puis passer en douceur aux nouvelles données lorsqu'elles arrivent.
Session NSURL
Notes
La classe NSURLSessionTask fournit une nouvelle propriété « priorité » avec trois constantes associées : NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow et NSURLSessionTaskPriorityHigh. Les priorités NSURLSessionTask peuvent être utilisées pour spécifier la manière dont plusieurs demandes et réponses adressées au même hôte doivent être hiérarchisées. Notez que la priorité est une indication et non une garantie stricte des performances de NSURLSessionTask.

Pour plus de détails sur l'utilisation des priorités NSURLSessionTask, reportez-vous au fichier d'en-tête NSURLSession.h, fourni par le framework Foundation.
Téléphone
Notes
Pour activer la fonctionnalité d'appel Wi-Fi pour T-Mobile (États-Unis uniquement), procédez comme suit :

Accédez à Paramètres > Téléphone > Appels Wi-Fi.
Basculez le commutateur d’appels Wi-Fi sur ON.
Si le transporteur ne dispose pas de l'adresse d'urgence enregistrée de l'utilisateur, il vous sera demandé de l'ajouter avant que la fonctionnalité ne soit activée.
Photos
Notes
Conservez une sauvegarde de votre photothèque avant d'activer et pendant l'utilisation de la version bêta de la bibliothèque de photos iCloud en :

Importation sur votre Mac à l'aide d'iPhoto
Importation sur votre Mac à l'aide de Image Capture
La version bêta de la bibliothèque de photos iCloud ne téléchargera pas les photos et vidéos synchronisées sur votre appareil à partir d'iTunes. Toutes les photos et vidéos synchronisées sur votre appareil depuis iTunes seront supprimées lorsque vous activerez la version bêta de la bibliothèque de photos iCloud.
iPhoto pour iOS ne se lancera pas sur iOS 8 Beta. Le lancement de Photos.app migrera vos modifications iPhoto vers la photothèque iOS 8. Assurez-vous que vos données iPhoto pour iOS sont incluses dans la sauvegarde de votre appareil.
Corrigé dans iOS 8.1 bêta
La possibilité d'optimiser automatiquement l'espace de l'appareil est activée pour tous les comptes de plus de 5 Go.
Problèmes connus
Si la version bêta de la bibliothèque de photos iCloud est activée, Paramètres -> iCloud -> Photos peut planter.

Solution de contournement : utilisez Paramètres -> Photos et appareil photo pour gérer les paramètres des photos.
La possibilité d'optimiser automatiquement l'espace de l'appareil est activée pour tous les comptes de plus de 5 Go.
Lorsque vous utilisez le partage familial iCloud, le partage de photos iCloud et mon flux de photos sont activés.
Profils d'approvisionnement
Problème connu
Si vous avez effectué une mise à niveau vers la version bêta 8.1 à partir des versions bêta d'iOS 8, vous risquez de voir vos applications planter en raison de problèmes de profil d'approvisionnement.

Solution:

Connectez l'appareil via USB à votre Mac
Lancer Xcode
Choisissez Fenêtre -> Périphériques
Faites un clic droit sur l'appareil dans la colonne de gauche, choisissez "Afficher les profils d'approvisionnement"
Cliquez sur le profil d'approvisionnement en question
Appuie sur le bouton
Continuez à supprimer tous les profils concernés.
Réinstallez l'application
Synthèse de discours
Corrigé dans iOS 8.1 bêta
AVSpeechSynthesizer peut ne pas fonctionner.

Solution de contournement : si vous n'entendez pas la parole dans une langue ou un dialecte particulier, accédez à Paramètres > Général > Accessibilité > Parole > Voix > Langue et téléchargez la voix de qualité améliorée pour cette langue/dialecte.
Magasins
Corrigé dans iOS 8.1 bêta
Parfois, le chargement de certaines pages ou l'exécution d'une recherche sur l'App Store ou l'iTunes Store peuvent être lents.
Uikit
Notes
UILabel a une valeur par défaut de OUI pour clipsToBounds. Cela diffère de la valeur par défaut normale de UIView, NO.
Les API leftLayoutGuide et rightLayoutGuide ont été supprimées. Veuillez plutôt utiliser la propriété layoutMargins.
Corrigé dans iOS 8.1 bêta
La prise en charge des fichiers RTF dans UIWebView est interrompue.

Solution de contournement : afficher les fichiers RTF à l'utilisateur consiste à utiliser le framework Quick Look (QLPreviewController) ou à charger un NSAttributedString à partir du fichier RTF et à l'afficher dans un UITextView, ce qui restituera le contenu de manière beaucoup plus propre.
WebKit
Notes
L'API Navigation Timing a été désactivée uniquement sur iOS en raison de problèmes de performances.
Appels Wi-Fi (T-Mobile US uniquement)
Notes
Le nom de l'opérateur dans la barre d'état affichera « T-Mobile Wi-Fi » lorsque l'appareil est capable de passer et de recevoir des appels Wi-Fi.