Apple

Apple vient de sortir le développeur iOS 13 bêta 5 pour iPhone «iOS & iPhone :: gadgets

Par Maximus , le 30 juillet 2019 - 29 minutes de lecture

Les tests bêta de la grande mise à jour iPhone à venir d'Apple, iOS 13, vont bon train. Jusqu'à présent, chacune des quatre versions bêta que nous avons vues apportait de nouvelles fonctionnalités et modifications, dont la plupart n'ont jamais été mentionnées par Apple lors de la WWDC en juin. Il est maintenant temps de tout recommencer, alors qu'Apple vient de publier la cinquième version bêta pour les développeurs pour iOS 13.

Apple a également publié la quatrième version bêta publique pour iOS 13 (pour les participants AppleSeed) aux côtés de la version 5 de la version bêta 5. Cependant, nous attendions le plus tôt que Apple commence à utiliser la version bêta publique 4, trois heures après la version développeur, le calendrier habituel des versions bêta publiques. . Cela dit, Apple est un peu imprévisible en ce qui concerne son cycle de version bêta publique.

À ce stade, il semble que la version bêta 5 soit une mise à jour incrémentielle par rapport à la version bêta 4 et les versions antérieures. Ici, vous trouverez des corrections de bugs pour les problèmes de la dernière version bêta, y compris des correctifs pour le partage d'éléments directement à partir de Mail; lecture audio dans les histoires Instagram; notifications en double et transfert de messages dans WhatsApp; et restaurer la stabilité de l'application Wells Fargo.

En ce qui concerne les nouvelles fonctionnalités et les modifications, le meilleur choix concerne iPad, où vous pouvez désormais choisir une grille six sur cinq pour les applications de l'écran d'accueil, par rapport à une grille standard quatre sur cinq. Pour l'iPhone, l'application Activité présente de nouvelles réalisations pour les objectifs de déplacement, si vous êtes propriétaire d'Apple Watch; il y a plus de fonds d'écran dans l'application Accueil; la vue d'activité (ou feuille de partage) contient des regroupements d'actions de base et d'actions personnalisées; et les icônes LTE, 4G, 5Ge dans la barre d'état sont plus grandes (même hauteur que l'icône de la batterie).

D’autres fonctionnalités remarquables incluent la possibilité de désactiver les pochettes d’album dans CarPlay, l’écran Lecture en cours de CarPlay est légèrement différent, il existe un écran «Siri pour tout le monde» qui indique si vous avez HomePodOS 13, et vous obtenez un retour haptique lorsque vous glissez pour ajuster la volume sur la superposition à l'écran. En outre, l'onglet "Automatisations" a disparu des raccourcis, mais le sera dans une prochaine mise à jour.

Bien que certains puissent être déçus par le manque de nouvelles fonctionnalités dans cette mise à jour, il semble que ce soit une tendance pour les dernières iOS 13 beta. Le volume de modifications a récemment diminué, la version bêta 4 de la version bêta ajoutant le plus petit impact.

Pour ceux d'entre nous qui aiment une bonne liste de modifications, Apple a publié les notes de publication de la version 5 de dev. Ces notes détaillent les bogues actuels ou corrigés, ainsi que les nouvelles fonctionnalités, notamment celles qui concernent les développeurs:

Notes de publication pour iOS et iPadOS 13 Developer Beta 5:

Vue d'ensemble

Le SDK iOS & iPadOS 13 prend en charge le développement d'applications pour les appareils iPhone, iPad et iPod touch fonctionnant sous iOS et iPadOS 13. Le SDK est fourni avec Xcode 11 beta disponible à partir du téléchargement de logiciels bêta. Pour plus d'informations sur les conditions de compatibilité requises pour Xcode 11, consultez les Notes de publication de Xcode 11 Beta 4.

Les développeurs utilisant iOS 13 beta 5 doivent également mettre à jour vers Xcode 11 beta 5.

Important

Mettez à niveau votre iPhone vers la dernière version disponible d'iOS 13 beta avant de mettre à jour les montres jumelées vers watchOS 6 beta ou une version plus récente de watchOS 6 beta. (51366653)

Général – Problèmes connus

  • Certains liens détectés automatiquement, tels que les numéros de vol, risquent de ne pas s'ouvrir lorsqu'ils sont exploités. (53416463)
  • Les instantanés des applications utilisant Metal peuvent avoir une apparence inattendue dans le commutateur d'applications. (53121694)

Général – Déprécations

  • La clé UIApplicationExitsOnSuspend n'est plus prise en charge dans iOS & iPadOS 13. Mettez à jour vos applications pour gérer le multitâche moderne. (43958234)

Audio – Nouvelles fonctionnalités

  • Le mode de traitement vocal peut maintenant être activé sur AVAudioEngine. (50906329)
  • Les nouveaux types AVAudioNode peuvent être utilisés pour envelopper un bloc défini par l'utilisateur pour l'envoi ou la réception de données en temps réel.
  • Une nouvelle méthode est disponible pour une application basée sur AVAudioEngine afin de récupérer une liste de tous les nœuds attachés à une instance AVAudioEngine.
  • Un nouveau mode de rendu dans AVAudioEnvironmentNode sélectionne automatiquement le meilleur algorithme de rendu audio spatial en fonction du périphérique de sortie.
  • Une nouvelle propriété AVAudioSession permet aux sons et aux haptiques du système de jouer pendant que la session utilise activement une entrée audio.
  • Une nouvelle énumération, AVAudioSession.PromptStyle, indique aux applications quel style d'invite vocale elles doivent lire en fonction des autres activités audio du système.
  • AVAudioSession.RouteSharingPolicy permet désormais aux applications de spécifier des stratégies de partage d'itinéraire afin que leurs itinéraires audio et vidéo se rendent au même emplacement qu'AirPlay.
  • Audio Unit Extensions prend désormais en charge les préréglages utilisateur disponibles dans toutes les applications hôtes.

Audio – Déprécations

  • Le framework OpenAL est obsolète et reste présent à des fins de compatibilité. Transition vers AVAudioEngine pour une fonctionnalité audio spatiale.
  • AUGraph est déconseillé en faveur de AVAudioEngine.
  • Le son inter-app est obsolète. Utilisez Audio Units pour que cette fonctionnalité aille de l'avant.
  • Les unités audio basées sur des composants carbone sont obsolètes et la prise en charge sera supprimée dans une version ultérieure.
  • Les plug-ins de matériel audio Legacy Core Audio HAL ne sont plus pris en charge. Utilisez des plug-ins de serveur audio pour faire avancer les pilotes audio.

Partage audio – Nouvelles fonctionnalités

  • Le partage audio est compatible avec les AirPod (1ère génération ou ultérieurs) et PowerBeats Pro. iPhone 8 ou version ultérieure, iPad Pro 12,9 pouces (2e génération ou ultérieure), iPad Pro 11 pouces, iPad Pro 10,5 pouces, iPad (5ème génération ou ultérieure), iPad Air (3ème génération), iPad mini (5ème génération) , ou iPod touch (7ème génération ou ultérieure) requis. (51331268)

AVFoundation – Nouvelles fonctionnalités

  • AVFoundation prend désormais en charge le codage vidéo avec des canaux alpha à l'aide de HEVC. Les vidéos encodées de cette manière sont largement prises en charge dans les API AVFoundation et par Safari dans les pages Web. Les détails techniques du format se trouvent dans la spécification du profil d'interopérabilité. (8045917)

Core Haptics – Problèmes connus

  • Par défaut, les haptiques sont désactivés au début de l’enregistrement au microphone. Vous pouvez remplacer cela en définissant la propriété AVAudioSession allowHapticsAndSystemSoundsDuringRecording sur true avant d'activer sa session audio. (25811898)
  • Les événements tels que audioContinuous, hapticContinuous et audioCustom ne peuvent pas être repris pendant l'événement; aucune sortie ne se produit pour cet événement, uniquement pour les événements suivants. Ceci s’applique à la lecture à un décalage horaire spécifique, à la recherche et à la reprise. (29274583)
  • Les instances CHHapticDynamicParameter avec des temps relatifs non nuls qui sont envoyées dans le cadre d'un sendParameters (_: atTime 🙂 appellent un CHHapticAdvancedPatternPlayer avec le paramètre atTime défini sur 0.0 et sont appliquées de manière incorrecte au début de CHHapticPatternPlayer, au lieu du temps relatif non nul attendu. Cela ne se produit pas sur un CHHapticPatternPlayer. (46316890)
  • Les vibrations générées via AudioServicesPlaySystemSound (_ 🙂 et les schémas de vibration générés via l'interface utilisateur Tap-to-Vibate créée par l'utilisateur sont atténués par rapport aux versions précédentes d'iOS. (47448156)
  • Les courbes de paramètre ne sont pas prises en charge avec un CHHapticAdvancedPatternPlayer, mais uniquement avec un CHHapticPatternPlayer. Aucune erreur n'est générée lorsqu'un CHHapticPattern contenant une courbe de paramètre est passé à un CHHapticAdvancedPatternPlayer. (47891515)
  • Une brève distorsion audio se produit lors du démarrage d'une application de la catégorie Lecture telle que la musique en arrière-plan. Par exemple, une brève distorsion se produit si vous démarrez l'application à partir de Control Center alors que la lecture audio de Core Haptics à l'aide d'une session audio playAndRecord est déjà en cours. (48121467)
  • Après toute décompression sur des échantillons à virgule flottante non compressés, la limite totale de toutes les ressources audioCustom par processus est de huit mégaoctets. (48659023)
  • Plusieurs courbes de paramètre se chevauchant pour le même CHHapticDynamicParameter.ID peuvent entraîner des artefacts de lecture. (50026384)
  • La durée maximale d'un événement haptique en haptique continu est de 30 secondes. Les événements dépassant cette limite peuvent être construits et acceptés par CHHapticPatternPlayer, mais la lecture haptique disparaîtra au bout de 30 secondes. (51322525)

Core Image – Nouvelles fonctionnalités

  • Les initialiseurs init (imageURL: options 🙂 et init (imageData: options 🙂 ne prennent plus en charge les versions RAW 5 et antérieures. La version 6 et les versions ultérieures restent prises en charge. (50911303)
  • Ajout de nouvelles API pour instancier et modifier les filtres intégrés de Core Image.
  • Le filtre CICoreMLModel est amélioré pour prendre en charge les modèles avec une entrée ou une sortie de type MLFeatureType.multiArray.
  • Les instances Metal CIKernel prennent en charge les arguments avec des données structurées de manière arbitraire.
  • Les instances Metal CIKernel prennent en charge le retour d'un groupe de 2 × 2 pixels.
  • Les valeurs entières des symboles CIFormat, telles que ARGB8, ont été remplacées par un nouvel ensemble de valeurs cohérentes sur toutes les plateformes. Les anciennes valeurs restent prises en charge pour la compatibilité ascendante; Cependant, vous devez éviter les dépendances sur des valeurs numériques spécifiques.

Gestion des périphériques – Problèmes résolus

  • Les utilisateurs peuvent accepter les invitations aux assignations d’applications et de livres. (50832260)

Trouver mon – Problèmes connus

  • Lorsque vous effectuez une action dans Find My qui génère un courrier électronique, vous pouvez voir des références aux applications Find My Friends et Find My iPhone. (51123613)
  • La fonctionnalité "Notifier si trouvé" est actuellement indisponible.
  • Les cartes Apple Pay peuvent rester suspendues après la sortie d'un appareil du mode Perdu.
  • Bien que iOS et iPadOS 13 restent en version bêta, les possibilités de recherche hors connexion sont limitées.

HomeKit – Problèmes connus

  • Après avoir visualisé les flux de caméras IP dans l'application Accueil, votre appareil ne dormira pas tant que vous ne quitterez pas cette application. (52981554)

Écran d'accueil – Problèmes résolus

  • Faire glisser les icônes d'application depuis Spotlight se comporte comme prévu. (49004339)

iCloud – Problèmes connus

  • La section iCloud Drive dans Paramètres> Général> Stockage iPhone peut ne pas représenter correctement l'état actuel des fichiers sur votre appareil. (50362095)
  • Lors de la création d'un nouveau document Pages, Numéros ou Keynote dans un dossier partagé, le message suivant peut s'afficher: "Impossible de se connecter à iCloud". (50827963) | Solution: fermez et rouvrez le document.

Problèmes résolus avec iCloud

  • Lorsque vous lancez manuellement la sauvegarde iCloud à partir de Paramètres> Compte iCloud> iCloud> Sauvegarde iCloud> Sauvegarder maintenant, la barre de progression se termine comme prévu. (51030266)

Localisation – Problèmes connus

  • Les appareils configurés pour utiliser certaines langues peuvent présenter une disposition tronquée ou mal alignée. (51068688)
  • Les appareils configurés pour utiliser certaines langues peuvent afficher du texte non localisé. (47765173, 51197936, 51270878)

Mail – Nouvelles fonctionnalités

  • Ignorer les expéditeurs bloqués peut maintenant être activé dans Paramètres> Courrier. La liste de contacts bloqués est partagée avec Messages, FaceTime et Téléphone. (50775961)

Mail – Problèmes résolus

  • Vous pouvez partager des images directement à partir d'emails. (50538771)

Messages – Problèmes connus

  • Si vous utilisez Messages dans iCloud, il se peut que des invites vous invitent à réparer votre compte et que vos messages ne soient pas synchronisés avec d'autres appareils. (53406906)

Mise en réseau – Nouvelles fonctionnalités

  • Toutes les instances URLSessionTask avec une méthode HTTP GET qui contiennent un corps produisent maintenant l'erreur NSURLErrorDataLengthExceedsMaximum. (46025234)

Mise en réseau – Problèmes connus

  • À partir de iOS 13 beta 4, l'attribut de copie de la propriété httpBody de NSMutableURLRequest est appliqué. Si les données du corps sont mutées après l'appel du configurateur de propriété, les données envoyées dans la requête HTTP n'incluent pas cette mutation. L'appel de la propriété getter ne renvoie plus une référence NSMutableData, même lorsque le programme de configuration a été appelé avec des données de ce type. Depuis iOS 13 beta 5, les applications créées à l'aide du SDK iOS 12 ou des SDK précédents utilisent le comportement hérité. (53427882)

Mise en réseau – Obsolètes

  • Suppression de la prise en charge des modèles FTP et URL de fichier pour la configuration automatique du proxy (PAC). HTTP et HTTPS sont les seuls modèles d'URL pris en charge pour PAC. Cela concerne toutes les configurations PAC, y compris, mais sans s'y limiter, les configurations définies à l'aide des API Paramètres, Préférences système, Profils et URLSession, telles que connectionProxyDictionary et CFNetworkExecuteProxyAutoConfigurationURL (_: _: _: _ :). (28578280)
  • Les API URLSession et NSURLConnection ne prennent plus en charge SPDY. Les serveurs doivent utiliser HTTP 2 ou HTTP 1.1. (43391641)

Notes – Problèmes connus

  • L'utilisation de la recherche dans Notes peut produire des résultats inattendus. (48238242)

Phone and FaceTime – Problèmes résolus

  • Lors de la mise à niveau vers iOS 13 beta, vous pouvez entrer votre code PIN SIM pendant le processus de configuration, comme prévu. (51593059)

Temps d'écran – Problèmes connus

  • Si vous activez le partage sur plusieurs appareils, les paramètres de Screen Time ne sont pas synchronisés avec iCloud tant que votre appareil iOS n'est pas redémarré. Toutes les modifications que vous apportez aux paramètres de Screen Time sur ce périphérique avant de redémarrer sont perdues. (50194586)

Temps d'écran – Problèmes résolus

  • Les utilisateurs ne peuvent plus sélectionner "Une minute de plus" plusieurs fois par jour lorsqu'ils atteignent la limite fixée pour une application. (48773803)

Paramètres – Problèmes connus

  • Les paramètres Ne pas déranger peuvent ne pas être synchronisés entre votre téléphone et regarder jusqu'à ce que les deux soient mis à jour pour iOS 13 beta 4 et watchOS 6 beta 4. (52830669)
  • Vous pourriez ne pas être en mesure d'acheter des forfaits de données cellulaires sur iPad. (51735832, 51737229)

Connexion avec Apple – Problèmes connus

  • Le statut d'utilisateur réel est actuellement indisponible. La connexion avec Apple fournit un statut pour les nouveaux comptes mais ce statut peut renvoyer des résultats inattendus. (51765525)

Siri – Problèmes connus

  • Les automatisations de raccourcis sont temporairement indisponibles. (53182885)
  • Les AirPod peuvent se déconnecter de manière inattendue lorsque l’option Annoncer les messages avec Siri est activée, à moins que la musique ne soit lue pendant la réception d’un nouveau message. (50322025)
  • Lorsque vous modifiez le fichier de définition de l'intention d'une application et que vous l'installez, les modifications ne sont pas immédiatement reflétées dans les raccourcis. (46645833) | Solution: quittez et relancez les raccourcis après avoir installé une nouvelle version de l'application, ou créez et exécutez l'extension d'intentions dans Xcode, en ciblant l'application Raccourcis.
  • La propriété supportsOnDeviceRecognition renvoie toujours la valeur false lors du premier accès. Après quelques secondes, y accéder à nouveau renvoie la valeur correcte. (47822242)
  • Les raccourcis ouverts sur iOS et iPadOS 13 beta sont automatiquement mis à niveau et ne peuvent plus être ouverts sous iOS 12. Si un appareil avec iOS 12 et un appareil avec iOS 13 partagent un compte iCloud, ils risquent de devenir inutilisables sur l'appareil exécutant iOS 12. ( 50873839) | Solution de contournement: désactivez iCloud Sync entre les appareils exécutant iOS & iPadOS 13 beta et les appareils exécutant iOS 12.
  • Lorsque vous utilisez des langues autres que l'anglais, demander à Siri d'effectuer des opérations liées aux rappels ou aux messages peut entraîner la fermeture inattendue de l'application correspondante. (50952938)
  • Actuellement, la seule réponse prise en charge pour INSearchForMediaIntent est INSearchForMediaIntentResponseCode.continueInApp. (51010311)
  • Lorsque Annoncer les messages avec Siri est activé, la lecture de musique peut être interrompue lors de la lecture d'un message. (51243455)

SwiftUI – Nouvelles fonctionnalités

  • Vous pouvez maintenant créer une couleur à partir d'un UIColor ou d'un NSColor. (49833933)
  • NSManagedObject est maintenant conforme à ObservableObject. Le nouvel encapsuleur de propriété @FetchRequest peut générer des vues à partir des résultats d'une demande d'extraction, et managedObjectContext est maintenant inclus dans l'environnement. (50280673)
  • Les modificateurs de geste sont renommés pour la cohérence. Par exemple, tapAction (count: _ 🙂 est renommé onTapGesture (count: perform 🙂 et longPressAction (minimumDuration: maximumDistance: _: appuyant 🙂 est renommé onLongPressGesture (minimumDuration: maximumDistance: appuyant sur: perform :). (50395282)
  • Le texte a maintenant une limite de ligne par défaut de nil pour qu'il soit renvoyé à la ligne par défaut. (51147116)
  • ContentSizeCategory et plusieurs autres énumérations sont maintenant CaseIterable. (51168712)
  • SegmentedControl est maintenant un style de Picker. (51769046)
  • BindableObject est remplacé par le protocole ObservableObject du framework Combine. (50800624)
  • Vous pouvez vous conformer manuellement à ObservableObject en définissant un éditeur objectWillChange qui émet avant que l'objet ne soit modifié. Cependant, par défaut, ObservableObject synthétise automatiquement objectWillChange et émet avant toute modification des propriétés @Published.

// RoomStore.swift
Fondation d'importation

classe RoomStore: ObservableObject {
@Published var rooms: Room =
}

struct Room: Identifiable {
var id: UUID
nom var: String
capacité var: Int
var hasVideo: Bool
}

// ContentView.swift
importer SwiftUI

struct ContentView: Voir {
@ObservedObject var store: RoomStore

var corps: une vue {
NavigationView {
Liste (store.rooms) {room in
RoomCell (chambre: chambre)
}
.navigationBarTitle ("Chambres")
}
}
}

@ObjectBinding est remplacé par @ObservedObject.

  • Le protocole identifiable fait maintenant partie de la bibliothèque standard Swift. Par conséquent, vos fichiers de modèle n'ont plus besoin d'importer la structure SwiftUI. (SE-0261)
  • La structure EnvironmentValues ​​a quatre nouvelles propriétés pour la lecture des valeurs d'accessibilité à partir de l'environnement: accessibilityDifferentiateWithout Color, accessibilityReduceTransparency, accessibilityReduceMotion et accessibilityInvertColors. (51712481)
  • La couleur (modificateur _ 🙂 pour Texte est renommée foregroundColor (_ 🙂 pour assurer la cohérence avec le modificateur plus général foregroundColor (_ :). (50391847)
  • Les exigences du protocole BindableObject sont désormais willChange au lieu de didChange et doivent maintenant être envoyées avant que l'objet ne soit modifié plutôt qu'après. Ce changement permet une meilleure fusion des notifications de changement. (51580731)
  • Le protocole RangeReplaceableCollection est étendu pour inclure une méthode remove (atOffsets 🙂 et le protocole MutableCollection est étendu pour inclure une méthode de déplacement (fromOffsets: toOffset :). Chaque nouvelle méthode prend les occurrences IndexSet que vous utilisez avec les modificateurs onMove (perform 🙂 et onDelete (perform 🙂 sur les vues ForEach. (51991601)
  • Ajout de modificateurs de présentation améliorés: sheet (isPresented: onDismiss: content :), actionSheet (isPresented: content 🙂 et alert (isPresented: content 🙂 – ainsi que isPresented dans l'environnement – remplacer la présentation existante (_ :), Sheet, Types modal et PresentationLink. (52075730)
  • Mise à jour des API pour la création d'animations. Les animations de base portent désormais le nom du type de courbe, tel que linéaire et easInOut. L'animation basée sur le ressort par interpolation (masse: rigidité: amortissement: vitesse initiale 🙂 est maintenant interpolante Printemps (masse: rigidité: amortissement: vitesse initiale 🙂 et fluidSpring (rigidité: amortissementFraction: blendDurée: timestep: idleThreshold 🙂 est maintenant le printemps (réponse: dampingFraction: blendDuration 🙂 ou interactiveSpring (réponse: dampingFraction: blendDuration :), selon que l'animation est animée ou non de manière interactive. (50280375)
  • Ajout d'un initialiseur pour créer une police à partir d'un CTFont. (51849885)
  • Vous pouvez attribuer un style à une NavigationView à l'aide de deux nouvelles propriétés de style: StackNavigationViewStyle et DoubleColumnNavigationViewStyle. Par défaut, les vues de navigation sur iPhone et Apple TV reflètent visuellement une pile de navigation, tandis que sur iPad et Mac, une vue de navigation de style vue fractionnée s'affiche. (51636729)
  • Lorsque vous utilisez le style DoubleColumnNavigationViewStyle, vous pouvez fournir deux vues lors de la création d'une vue de navigation: la première est le maître et la seconde, les détails. Par exemple:

NavigationView {
MyMasterView ()
MyDetailView ()
}
.navigationViewStyle (DoubleColumnNavigationViewStyle ())

SwiftUI – Problèmes connus

  • L'utilisation de la structure Path peut entraîner le blocage des applications si vous utilisez les SDK inclus dans Xcode 11 beta 5. (53523206)
  • L'utilisation d'une vue ForEach avec une expression complexe dans sa fermeture peut entraîner des erreurs de compilation. | Solution: extrayez ces expressions dans leurs propres types de vues. (53325810)
  • Les menus contextuels risquent de ne pas s'afficher correctement ou de bloquer votre application de manière inattendue. (53461370)
  • Les instances d'image n'utilisent pas les informations de redimensionnement configurées dans les catalogues d'actifs. Configurez la taille d'une image à l'aide du modificateur resizable (capInsets: resizingMode :). (49114577)

SwiftUI – Problèmes résolus

  • Lorsque vous poussez une vue d'un NavigationLink dans un élément d'une liste, la vue poussée affiche les occurrences de Bouton avec la couleur de texte correcte. (52858284)

SwiftUI – Déprécations

  • NavigationDestinationLink et DynamicNavigationDestinationLink sont obsolètes; leur fonctionnalité est maintenant incluse dans NavigationLink. (50630794)
  • Le type Length est remplacé par CGFloat. (50654095)
  • TabbedView s'appelle maintenant TabView. (51012120)
  • HAlignment et VAlignment sont maintenant obsolètes. Utilisez plutôt les types HorizontalAlignment ou VerticalAlignment, plus souples, et utilisez TextAlignment pour le texte. (51190531)
  • Le protocole SelectionManager est supprimé. Utilisez les options Facultatif et Définir directement pour la sélection. (51557694)
  • La valeur de l'environnement isPresented est obsolète et remplacée par la valeur plus générale de presentationMode. (51641238)
  • Le protocole StaticMember est obsolète. Utilisez plutôt directement les types conformes au protocole. Par exemple, utilisez directement une instance de WheelPickerStyle plutôt que le membre statique de la roue. (52911961)
  • Les surcharges complexes pour l'arrière-plan (_: alignement 🙂 et les modificateurs de bordure (_: width 🙂 sont obsolètes. Utilisez des formes dans un arrière-plan (_: alignement 🙂 ou une superposition (_: alignement 🙂 pour les dessiner à la place. (53067530)
  • Les API SwiftUI obsolètes dans les versions précédentes sont maintenant supprimées. (52587863)
  • La méthode identifiée (par 🙂 sur le protocole Collection est déconseillée au profit d'initialisateurs init (_: id: selection: rowContent 🙂 et init (_: id: content :). (52976883, 52029393)
  • La conformité rétroactive de Int au protocole identifiable est supprimée. Modifiez tout code qui repose sur cette conformité pour passer .self au paramètre id de l’initialiseur approprié. Des plages constantes de Int continuent d'être acceptées:

Liste (0 .. <5) {
Texte ("Chambres")
}

Cependant, vous ne devez pas dépasser une plage qui change au moment de l'exécution. Si vous utilisez une variable qui change au moment de l'exécution pour définir la plage, la liste affiche les vues en fonction de la plage initiale et ignore les mises à jour ultérieures de la plage.

  • Plusieurs extensions de la structure de liaison sont supprimées. (51624798)

Si vous avez un code tel que celui-ci:

struct LandmarkList: Voir {
point de repère var: point de repère
@Binding var favorites: Définir

var corps: une vue {
Liste (points de repère) {point de repère dans
Basculer (landmark.name, isOn: self. $ Favoris.contains (landmarkID))
}
}
}

Définissez l'indice suivant sur la structure Ensemble:

Extension Set {
indice (membre: Element) -> Bool {
get {contient (membre)}
ensemble {
si newValue {
insérer (membre)
} autre {
supprimer (membre)
}
}
}
}

Ensuite, remplacez self. $ Favoris.contains (landmarkID) par self. $ FavourlandsmarkmarkID.

  • La conformité conditionnelle de la structure de liaison au protocole de collecte est supprimée. (51624798)

Si vous avez un code tel que celui-ci:

struct LandmarkList: Voir {
@Binding var landmark: Point de repère

var corps: une vue {
Liste (points de repère) {point de repère dans
Basculer (landmark.value.name, isOn: landmark .isFavorite)
}
}
}

Définissez le type de collection suivant:

struct IndexedCollection: RandomAccessCollection {
typealias Index = Base.Index
typealias Element = (index: Index, élément: Base.Element)

laisser base: Base

var startIndex: Index {base.startIndex}

var endIndex: Index {base.startIndex}

func index (après i: Index) -> Index {
base.index (après: i)
}

func index (avant i: Index) -> Index {
base.index (avant: i)
}

func index (_ i: Index, offsetPar distance: Int) -> Index {
base.index (i, offsetBy: distance)
}

indice (position: Index) -> Element {
(index: position, élément: baseposition)
}
}

extension RandomAccessCollection {
func indexed () -> IndexedCollection {
IndexedCollection (base: self)
}
}

Ensuite, mettez à jour votre code pour:

struct LandmarkList: Voir {
@Binding var points de repère: Landmark

var corps: une vue {
Liste (landmarks.indexed (), id: .1.id) {(index, repère) dans
Basculer (landmark.name, isOn: self. $ Landmarksindex.isFavorite)
}
}
}

  • Les modificateurs relativeWidth (_ :), relativeHeight (_ 🙂 et relativeSize (width: height 🙂 sont obsolètes. Utilisez d'autres modificateurs tels que frame (minWidth: idealWidth: maxWidth: minHeight: idealHeight: maxHeight: alignement 🙂 à la place. (51494692)

Applications tierces – problèmes connus

  • Il est possible que vous ne puissiez pas diffuser sur un appareil Chromecast. (51334673)

Applications tierces – Problèmes résolus

  • Audio joue correctement dans les histoires Instagram. (50433755)
  • WhatsApp se comporte comme prévu lors du transfert de messages à un utilisateur ne figurant pas dans la liste des contacts récents. (45416129)
  • Les utilisateurs de WhatsApp ne reçoivent plus de notifications en double ni de notifications sans contenu. (50537131)
  • L'application Wells Fargo ne se ferme plus de manière inattendue à l'ouverture ou à la connexion. (51085418)

UIKit – Nouvelles fonctionnalités

  • La classe UITableViewCell ne modifie plus les propriétés backgroundColor ou isOpaque de contentView ni aucune de ses sous-vues lorsque les cellules sont mises en surbrillance ou sélectionnées. Si vous définissez une couleur d'arrière-plan opaque sur une sous-vue de la cellule à l'intérieur (et y compris) de contentView, l'apparence à laquelle la cellule est mise en surbrillance ou sélectionnée peut être affectée. Le moyen le plus simple de résoudre tout problème avec vos sous-vues est de s'assurer que leur propriété backgroundColor est définie sur nil ou sur clear et que leur propriété opaque est définie sur false. Toutefois, si nécessaire, vous pouvez remplacer les méthodes setHighlighted (_: animated 🙂 et setSelected (_: animated 🙂 pour modifier manuellement ces propriétés dans vos sous-vues lors du passage aux états mis en surbrillance et sélectionnés. (13955336)
  • Depuis iOS 8, l'utilisation de UISearchController avec UINavigationController a nécessité la définition de la propriété definePresentationContext du contrôleur de la vue de dessus. Ne pas le faire conduit à des bugs subtils qui peuvent être difficiles à détecter et à déboguer. À partir de iOS et iPadOS 13 beta, si navigationItem d'un contrôleur de vue possède un searchController non nul, lorsque le contrôleur de vue est affiché dans un contrôleur de navigation, UINavigationController affecte automatiquement la valeur true à la propriété definePresentationContext de ce contrôleur de vue. Si vous ciblez des versions antérieures d'iOS, définissez cette propriété avant que votre contrôleur de recherche ne devienne actif. (31338934)
  • La classe UIRefreshControl ne modifie plus directement le contentInset de sa vue de défilement. Au lieu de cela, ses ajustements à l’encart de contenu seront incorporés à la page suivante suivante: modifiedContentInset. La seule exception est lorsque contentInsetAdjustmentBehavior de la vue de défilement est défini sur UIScrollView.ContentInsetAdjustmentBehavior.never, auquel cas l'instance UIRefreshControl modifiera le contentInset directement comme dans les versions précédentes. (35866834)
  • Si vous implémentez des cellules à taille automatique dans une UITableView en surchargeant sizeThatFits (_ 🙂 sans utiliser la mise en page automatique, la hauteur que vous renvoyez est interprétée comme la hauteur souhaitée pour le contenu de la cellule, et UITableViewCell ajoute automatiquement toute hauteur supplémentaire nécessaire à l'espace. pour le séparateur de cellules. Si vous implémentez l'auto-dimensionnement manuel de cette manière, la largeur de la propriété contentView de la cellule sera précise et utilisable dans les calculs de mise en page manuels lorsque sizeThatFits (_ 🙂 sera appelé sur UITableViewCell. (39742612)
  • Les environnements de trait, tels que les vues et les contrôleurs de vue, ont maintenant leur propriété traitCollection remplie de traits lors de l'initialisation. Ces traits initiaux représentent une prédiction des traits ultimes que l'environnement des traits recevra lorsqu'il sera ajouté à la hiérarchie. Étant donné que les traits renseignés lors de l'initialisation ne sont que des prédictions, ils peuvent différer des traits reçus une fois dans la hiérarchie. Par conséquent, lorsque cela est possible, vous devez attendre si vous souhaitez effectuer un travail utilisant la propriété traitCollection jusqu'à ce que la vue, ou la vue du contrôleur, soit passée dans la hiérarchie – la fenêtre de référence renvoie une valeur non nulle – pour que vous n'ayez pas à jeter de travail. fait en utilisant les traits prédits si les traits réels sont différents. Le meilleur moment pour utiliser traitCollection est lors de la présentation, par exemple à l'intérieur de layoutSubviews (), viewWillLayoutSubviews () ou viewDidLayoutSubviews ().
  • La méthode traitCollectionDidChange (_ 🙂 n'est appelée que lorsque la valeur d'un trait change. Fait important, étant donné que la collection de traits est maintenant initialisée avec une prédiction des traits ultimes dans la hiérarchie de destination, lorsque les traits prédits initiaux correspondent aux traits ultimes de la hiérarchie, traitCollectionDidChange (_ 🙂 ne sera pas appelé lorsque l'environnement de trait est ajouté à la hiérarchie. TraitCollectionDidChange (_ 🙂 étant destiné à être un rappel d'invalidation pour vous avertir qu'un ou plusieurs traits ont été modifiés, auditez vos implémentations existantes de cette méthode, ainsi que la méthode UIContentContainer willTransition (à: avec :), pour les emplacements où vous pourriez se sont appuyés dessus pour déclencher la configuration initiale. Le meilleur endroit pour effectuer paresseusement un travail qui utilise traitCollection est l'une des méthodes layoutSubviews décrites ci-dessus, mais souvenez-vous que ces méthodes sont appelées à tout moment. (46818941)
  • Vous pouvez maintenant activer la journalisation de débogage pour voir facilement quand traitCollectionDidChange (_ 🙂 ou willTransition (to: with 🙂 est appelé sur vos propres classes. Activez la journalisation en utilisant l'argument de lancement suivant: -UITraitCollectionChangeLoggingEnabled YES. Vous voudrez peut-être désactiver temporairement le Vérificateur de thread principal en utilisant cet argument de lancement et en exécutant votre application à partir de Xcode pour éviter des messages de journal supplémentaires pour des classes non liées. (47858564)
  • La propriété contentView de la classe UITableViewCell est toujours disposée côte à côte avec les accessoires adjacents, à la fois du côté avant et du côté arrière. Cela simplifie le code de présentation afin que les développeurs qui souhaitent le décalage par défaut correct ne soient plus obligés d'aligner leur contenu sur la bordure de la vue de contenu ou sur la marge de présentation selon qu'il existe ou non un accessoire sur le dernier côté. Vous devez maintenant toujours disposer leur code sur les marges de présentation de la vue du contenu de la cellule pour obtenir les incrustations système par défaut. Ces incrustations seront ajustées automatiquement en fonction des accessoires visibles dans la cellule pour correspondre à l'espacement par défaut du système. (48214114)
  • Vous pouvez maintenant appeler un initialiseur personnalisé à partir d'un bloc de création transmis via instantiateInitialViewController (creator 🙂 ou instantiateViewController (identifiant: creator :). Cela vous permet d'initialiser les contrôleurs de vue avec un contexte et des arguments supplémentaires, tout en tirant parti de leur définition dans un storyboard via Interface Builder. Un initialiseur de contrôleur personnalisé doit appeler sa méthode super.init (coder 🙂 et transmettre l’argument du codeur qu’il reçoit via le bloc de création. (48313869)

UIKit – Problèmes connus

  • La spécification de UIWindowScene.DestructionRequestOptions dans Swift est actuellement indisponible. (51036709)

UIKit – Problèmes résolus

  • Avant iOS 13, UITextField supposait que les cadres de ses vues leftView et rightView étaient correctement définis lorsqu'ils étaient attribués et qu'ils ne changeraient jamais. À partir de iOS 13, les implémentations de leftViewRect (forBounds 🙂 et rightViewRect (forBounds 🙂 demandent maintenant à la vue de lui fournir systemLayoutSizeFitting (_ :). Pour obtenir le comportement précédent lors de la liaison et de l'exécution sur iOS 13, ajoutez des contraintes de dimensionnement explicites à la vue, encapsulez-la dans une vue UIView simple ou sous-classez la vue et implémentez systemLayoutSizeFitting (_ :). (51787798)

Contrôle vocal – Problèmes résolus

  • Après avoir activé le contrôle vocal pour la première fois, le téléchargement des ressources commence et un indicateur de progression s'affiche. (50788121)

Regarder – Problèmes connus

  • Si Apple Watch n’exécute pas watchOS 6 beta, les complications peuvent disparaître d’Apple Watch après la mise à jour vers iOS 13 beta. (50507942)

Xcode – Nouvelles fonctionnalités

  • CAMetalLayer est maintenant disponible dans Simulator. (45101325)

Xcode – Problèmes connus

  • Les raccourcis donnés peuvent ne pas apparaître dans la recherche lorsque vous utilisez le simulateur. (50832782) | Solution: testez sur un périphérique pour lequel Paramètres> Développeur> Afficher les raccourcis récents est activé.
  • La modification du niveau de volume dans Simulator pendant la lecture d’une vidéo dans Safari coupe le son. (51207286)

Pour mettre à jour votre iPhone vers iOS 13 dev beta 5, vous devez être un développeur inscrit. Vous pouvez utiliser l'image de restauration pour votre iPhone disponible sur le portail de développeur (installer avec iTunes ou Finder) ou installer le profil de configuration puis effectuer une mise à jour par liaison radio. If you already have the profile installed on your iPhone, head over to Settings –> General –> Software Update to start installing the latest beta build, or you can wait until it installs automatically if "Automatic Updates" is enabled.