Le journal des modifications iOS 8.1.1 affiche TOUS les changements

  iOS 8.1.1 il a été publié il y a environ deux heures par la société Apple pour ses développeurs d'applications pour iPhone, iPad et iPod Touch, et je vous ai dit que l'amélioration des performances de l'iPad 2 et de l'iPhone 4S est sa principale partie « attractive ». Pour cette mise à jour, Apple a également publié un changelog dans lequel il répertorie tous les changements les moins visibles, c'est-à-dire tous ceux qui nous donnent un système d'exploitation plus rapide avec beaucoup moins de problèmes.

  iOS 8.1.1 il est actuellement disponible en téléchargement uniquement sur le site Web du développeur d'applications, et on ne sait pas si vous pourrez l'installer sur vos terminaux sans avoir un UDID enregistré sur un compte de développeur d'applications.

Journal des modifications iOS 8.1.1 – TOUT nouveau

Remarques et problèmes connus

Les problèmes suivants concernent l’utilisation du SDK iOS 8.1.1 pour développer du code.

CaptureAV

Problème connu

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

Un célibataire ou Individual CKAsset L'instance ne peut plus être définie comme valeur sur plusieurs CCKRecords.

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. EEEABPeoplePickerNavigationController.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 est requis.

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 le NSSearchPathForDirectoriesInDomains fonction ou le URLForDirectory:inDomain:appropriateForURL:create:error: méthode de NSFileManagerclasse. EEE Accéder aux fichiers et aux répertoires in 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 :

  1. 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.

  2. 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.

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 HealthKit.
} Else {
// Écrivez les informations d'entraînement dans HealthKit
}

Problème connu

Les données de glycémie ne sont actuellement pas affichées dans l'application Santé. L'accès tiers et les API ne sont pas affectés. Les contrôles d'accès à la glycémie et à toutes les autres données de santé peuvent toujours être gérés dans l'application Santé et dans Paramètres > Confidentialité > Santé.

Pour plus d'informations, voir https://support.apple.com/kb/HT6533.

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: Déconnectez-vous et reconnectez-vous à iCloud sur l'appareil.

icloud lecteur

Notes

URLForUbiquityContainerIdentifier: pourrait revenir nil 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.

claviers

Problème connu

Les claviers supplémentaires, y compris les claviers tiers, peuvent ne pas apparaître dans Safari, Maps ou dans les applications tierces du simulateur.

Solution: Les claviers doivent pouvoir être testés dans Calendrier, Spotlight, Contacts et Photos.

Notification Center

Notes

Le calendrier et l'utilisation prévue de widgetPerformUpdateWithCompletionHandler: est conçu comme une maison 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. Les widgets ne devraient PAS bloquer le retour de viewWillAppear: sur les résultats de cette opération. Au lieu de cela, les widgets devraient charger l'état mis en cache dans viewWillAppear: afin de correspondre à l'état de la vue du dernier viewWillDisappear:, puis passez en douceur aux nouvelles données lorsqu'elles arrivent.

Session NSURL

Notes

La NSURLSessionTask class fournit une nouvelle propriété « priorité » avec trois constantes associées : NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLowet NSURLSessionTaskPriorityHigh. NSURLSessionTask Les priorités 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 de NSURLSessionTask la performance.

Pour obtenir des détails complets sur l'utilisation de NSURLSessionTask priorités, reportez-vous aux NSURLSession.h fichier d’en-tête, 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.

  • 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 8.1.1 bêta à partir d'iOS 8 bêta, vous risquez de voir vos applications planter en raison de problèmes de profil d'approvisionnement.

Solution:

  1. Connectez l'appareil via USB à votre Mac

  2. Lancer Xcode

  3. Choisissez Fenêtre -> Périphériques

  4. Faites un clic droit sur l'appareil dans la colonne de gauche, choisissez "Afficher les profils d'approvisionnement"

  5. Cliquez sur le profil d'approvisionnement en question

  6. Appuie sur le bouton

  7. Continuez à supprimer tous les profils concernés.

  8. Réinstallez l'application

Uikit

Notes

  • UILabel a une valeur par défaut de OUI pour clipsToBounds. Ceci diffère de la normale UIView par défaut, NON.

  • La leftLayoutGuide ainsi que rightLayoutGuide Les API ont été supprimées. Veuillez utiliser le layoutMargins propriété à la place.

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.