Wijzigingenlogboek voor iOS 8.1 bèta 1

  Na de verrassende lancering van iOS beta 8.1 1 voor iPhone, iPad en iPod Touchvennootschap Apple Ook publiceerde hij een changelog waarin hij de verschillende wijzigingen beschrijft die hij voor onze terminals heeft doorgevoerd. Zoals u uit de onderstaande tekst zult zien, zijn de belangrijkste wijzigingen die door het Amerikaanse bedrijf zijn aangebracht strikt gericht op de werking van het besturingssysteem, maar er zijn natuurlijk ook enkele andere "oppervlakkige" nieuwigheden.

  De volledige changelog voor iOS 8.1 beta 1 je kunt het hieronder zien, en ik zal in een volgend artikel terugkomen met aanvullende details over de zichtbare veranderingen die het Apple-bedrijf heeft doorgevoerd.

Wijzigingenlogboek voor iOS 8.1 bèta 1

Opmerkingen en bekende problemen
De volgende problemen hebben betrekking op het gebruik van iOS SDK 8.1 om code te ontwikkelen.

AVCapture
Bekend probleem
Het gebruik van de nieuwe constante, AVCaptureISOCurrent, zal resulteren in inconsistente ISO-waarden (zoals waargenomen in de ISO-eigenschap) als setExposureModeCustomWithDuration:ISO:completionHandler: herhaaldelijk wordt aangeroepen.
CloudKit
Note
Eén enkele CKAsset-instantie kan niet langer worden ingesteld als waarde op meerdere CKRecords.
Contacten
Note
De personenkiezer van de Adresboek-UI is gewijzigd voor iOS 8. Er is een nieuwe modus met nieuwe API toegevoegd waarin de app geen toegang nodig heeft tot de contacten van de gebruiker en de gebruiker niet om toegang wordt gevraagd. Er wordt een tijdelijke kopie van de geselecteerde persoon teruggestuurd naar de app. ZieABPeoplePickerNavigationController.h voor meer details.

Bekijk het nieuwe voorbeeldproject PeoplePicker: Een persoon of eigendom kiezen, waarin het gebruik van de nieuwe modus wordt gedemonstreerd.
Documentaanbieders
Opmerkingen
Uw app heeft het iCloud-recht nodig om als documentprovider te kunnen worden gebruikt.
Het recht com.apple.developer.icloud-container-identifiers is vereist wanneer iOS 8 wordt uitgebracht.
bekende problemen
Nadat u de documentkiezer naar liggend hebt gedraaid, is de statusbalk verborgen.
Wanneer u de documentkiezer in landschapsmodus opent, kan de bevattende weergave onder de navigatiebalk worden verschoven.
uitbreidingen
Opmerkingen
Extensies hebben een arm64-segment nodig om op 64-bits apparaten te kunnen werken. Als u de armv7-slice op een 64-bits apparaat probeert uit te voeren, zal dit niet werken.
Apps moeten een arm64-segment hebben als de bundel een raamwerk bevat waar zowel de app als de app-extensie tegenaan linken.
File System
Note
De indeling van het bestandssysteem van app-containers is op schijf gewijzigd. In plaats van te vertrouwen op een hardgecodeerde mapstructuur, gebruikt u de functie NSSearchPathForDirectoriesInDomains of de URLForDirectory:inDomain:gepastForURL:create:error: methode van de klasse NSFileManager. Zie Toegang tot bestanden en mappen in de Programmeerhandleiding voor het bestandssysteem.
fonts
Note
Het Thaise systeemlettertype is groter geworden om de leesbaarheid te verbeteren. Dit zal op veel plaatsen in uw gebruikersinterface leiden tot clipping als u niet de juiste actie onderneemt:

Gebruik zoveel mogelijk UILabel. Als u Interface Builder gebruikt, zorg er dan voor dat Clip Subviews niet is aangevinkt. UIKit vergroot het uitknipgebied indien nodig om tekst niet af te knippen.
Gebruik dynamisch type. Dit zorgt ervoor dat er geen overlappende glyphs voorkomen in labels met meerdere regels of tekstvelden.
Als u 1 en 2 niet kunt doen omdat u uw eigen opvattingen implementeert, moet u maatregelen implementeren om niet te clippen. U kunt CoreText gebruiken om het juiste uitknipgebied voor een tekstregel te bepalen door het volgende aan te roepen:

CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);
Pas de regelhoogte aan om overlappende glyphs in tekstelementen met meerdere regels te voorkomen. Een extra 30% wordt aanbevolen.

Deze maatregel zorgt er ook voor dat uw app beter presteert in andere talen, waaronder Arabisch, Hindi en Vietnamees.
Spelbesturing
Opgelost in iOS 8.1 Bèta
Het doorsturen van GameController werkt mogelijk niet.
HealthKit
Note
Code die probeert trainingsinformatie in HealthKit te lezen, kan mogelijk geen vervolgvragen stellen aan HealthKit.

Als u HKWorkouts gebruikt, moet u het lezen van trainingen vermijden wanneer u op iOS-versies vóór 8.1 draait met:

NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0};
if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) {
// Lees en schrijf trainingsinformatie naar de gezondheidskit.
} Else {
// Schrijf trainingsinformatie naar de gezondheidskit
}
Opgelost in iOS 8.1 Bèta
Achtergrondlevering van HealthKit-gegevens werkt niet zoals verwacht.
iCloud
Note
Mailoverdracht en AirDrop werken mogelijk niet meer nadat u uw iCloud-wachtwoord op appleid.apple.com hebt gewijzigd.

Tijdelijke oplossing: log uit en weer in bij iCloud op het apparaat.
iCloud back-up
Bekend probleem
Na het herstellen vanaf een iCloud-back-up kunt u mogelijk geen nieuwe muziek of filminhoud van iTunes synchroniseren.
iCloud Drive
Note
URLForUbiquityContainerIdentifier: retourneert mogelijk nul wanneer uw toepassing in Xcode wordt uitgevoerd. Als dat het geval is, opent u Systeemvoorkeuren, navigeert u naar iCloud > iCloud Drive en schakelt u Xcode in.
iCloud Keychain
Opgelost in iOS 8.1 Bèta
Wanneer een gebruiker inlogt bij iCloud, kan het gebeuren dat de sleutelhanger wordt gereset op andere apparaten die zich eerder in de kring bevonden.
Met Touch ID beveiligde sleutelhangeritems staan ​​SecItemUpdate niet toe. SecItemUpdate retourneert altijd errSecInteractionNotAllowed.
Toetsenborden
Opgelost in iOS 8.1 Bèta
Netwerktoegang wordt uitgeschakeld na het toevoegen van een nieuw toetsenbord uit dezelfde bundel.
Aangepaste toetsenborden kunnen leeg worden nadat er van app is gewisseld.
Bekend probleem
Toetsenborden van derden verschijnen mogelijk niet in Safari, Maps of apps van derden op de Simulator.

Oplossing: toetsenborden moeten kunnen worden getest in Agenda, Spotlight, Contacten en Foto's.
E-mailadres
Opgelost in iOS 8.1 Bèta
Als u de beperking Accountwijziging toestaan ​​toepast op een apparaat waarop geen e-mailaccounts zijn geconfigureerd, kan een gebruiker nog steeds een e-mailaccount maken door de Mail-app te starten.
Metaal
Opgelost in iOS 8.1 Bèta
Wanneer u een metal-bestandshader wijzigt met behulp van offline compilatie om een ​​metallib-bibliotheek te maken die kleiner is geworden, kan de metallib-bibliotheek niet op het apparaat worden geladen.

Tijdelijke oplossing: verwijder de metallib-bibliotheek voordat u deze opnieuw maakt door een opschoning uit te voeren in Xcode of door het bestand handmatig te verwijderen voordat u het archief bouwt.
Notification Center
Note
Het schema en het beoogde gebruik van widgetPerformUpdateWithCompletionHandler: is bedoeld als een handig onderkomen voor alle logica voor het bijwerken van gegevens/modellen. Indien geïmplementeerd, zal het systeem op geschikte momenten de widget vragen om de status ervan bij te werken, zowel wanneer het Berichtencentrum zichtbaar is, als op de achtergrond. Er is een implementatie vereist om achtergrondupdates mogelijk te maken. Er wordt verwacht dat de widget het werk zal doen om zoveel mogelijk asynchroon en buiten de hoofdthread bij te werken. Widgets moeten het argumentblok aanroepen wanneer het werk voltooid is, waarbij de juiste NCUpdateResult wordt doorgegeven. Widgets mogen de terugkeer van viewWillAppear: op de resultaten van deze bewerking NIET blokkeren. In plaats daarvan moeten widgets de cachestatus in viewWillAppear: laden om overeen te komen met de status van de weergave van de laatste viewWillDisappear:, en vervolgens soepel overgaan naar de nieuwe gegevens wanneer deze binnenkomen.
NSURLSessie
Note
De klasse NSURLSessionTask biedt een nieuwe eigenschap 'priority' met drie bijbehorende constanten: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow en NSURLSessionTaskPriorityHigh. NSURLSessionTask-prioriteiten kunnen worden gebruikt om op te geven hoe meerdere aanvragen en antwoorden op dezelfde host moeten worden geprioriteerd. Houd er rekening mee dat de prioriteit een hint is en geen strikte garantie voor de prestaties van NSURLSessionTask.

Voor volledige gebruiksdetails van NSURLSessionTask-prioriteiten raadpleegt u het headerbestand NSURLSession.h, dat wordt geleverd door het Foundation-framework.
Telefoonnummer
Note
Volg deze stappen om de Wi-Fi Calling-functionaliteit voor T-Mobile (alleen VS) te activeren:

Ga naar Instellingen > Telefoon > Bellen via wifi.
Zet de schakelaar voor bellen via Wi-Fi op AAN.
Als de vervoerder niet over het geregistreerde noodadres van de gebruiker beschikt, wordt u gevraagd dit adres toe te voegen voordat de functie wordt geactiveerd.
Foto's
Opmerkingen
Maak een back-up van uw fotobibliotheek voordat u de bètaversie van iCloud-fotobibliotheek inschakelt en gebruikt door:

Importeren naar uw Mac met iPhoto
Importeren naar uw Mac met behulp van Image Capture
De bètaversie van iCloud-fotobibliotheek downloadt geen foto's en video's die vanuit iTunes met uw apparaat zijn gesynchroniseerd. Alle foto's en video's die vanuit iTunes met uw apparaat zijn gesynchroniseerd, worden verwijderd wanneer u de bètaversie van iCloud-fotobibliotheek inschakelt.
iPhoto voor iOS start niet op iOS 8 Bèta. Als u Photos.app start, worden uw iPhoto-bewerkingen naar de iOS 8-fotobibliotheek gemigreerd. Zorg ervoor dat uw iPhoto voor iOS-gegevens zijn opgenomen in de reservekopie van uw apparaat.
Opgelost in iOS 8.1 Bèta
De mogelijkheid om de apparaatruimte automatisch te optimaliseren is ingeschakeld voor alle accounts groter dan 5 GB.
bekende problemen
Als de bètaversie van iCloud-fotobibliotheek is ingeschakeld, kan Instellingen -> iCloud -> Foto's crashen.

Tijdelijke oplossing: gebruik Instellingen -> Foto's en camera om de instellingen voor Foto's te beheren.
De mogelijkheid om de apparaatruimte automatisch te optimaliseren is ingeschakeld voor alle accounts groter dan 5 GB.
Wanneer u iCloud Family Sharing gebruikt, zijn zowel iCloud Photo Sharing als Mijn fotostream ingeschakeld.
Voorzieningenprofielen
Bekend probleem
Als u vanuit iOS 8.1-bèta's een upgrade naar 8 Bèta hebt uitgevoerd, kan het zijn dat uw apps crashen vanwege problemen met het inrichtingsprofiel.

Oplossing:

Sluit het apparaat via USB aan op je Mac
Start Xcode
Kies Venster -> Apparaten
Klik met de rechtermuisknop op het apparaat in de linkerkolom en kies "Toon inrichtingsprofielen"
Klik op het betreffende inrichtingsprofiel
Druk op de knop
Ga door met het verwijderen van alle betrokken profielen.
Installeer de app opnieuw
Spraaksynthese
Opgelost in iOS 8.1 Bèta
AVSpeechSynthesizer werkt mogelijk niet.

Tijdelijke oplossing: als u geen spraak hoort in een bepaalde taal of dialect, gaat u naar Instellingen > Algemeen > Toegankelijkheid > Spraak > Stemmen > Taal en downloadt u de stem Verbeterde kwaliteit voor die taal/dialect.
Winkels
Opgelost in iOS 8.1 Bèta
Soms kan het laden van bepaalde pagina's of het uitvoeren van een zoekopdracht in de App Store of iTunes Store traag zijn.
UIKit
Opmerkingen
UILabel heeft de standaardwaarde YES voor clipsToBounds. Dit verschilt van de normale UIView-standaard van NO.
De leftLayoutGuide en rightLayoutGuide API's zijn verwijderd. Gebruik in plaats daarvan de eigenschap layoutMargins.
Opgelost in iOS 8.1 Bèta
Ondersteuning voor RTF-bestanden in UIWebView is verbroken.

Tijdelijke oplossing: RTF-bestanden aan de gebruiker tonen is door het Quick Look-framework (QLPreviewController) te gebruiken of door een NSAttributedString uit het RTF-bestand te laden en deze in een UITextView weer te geven, waardoor de inhoud op een veel schonere manier wordt weergegeven.
WebKit
Note
De Navigation Timing API is alleen uitgeschakeld op iOS vanwege prestatieproblemen.
Bellen via Wi-Fi (alleen T-Mobile VS)
Note
De naam van de provider in de statusbalk toont "T-Mobile Wi-Fi" wanneer het apparaat Wi-Fi-oproepen kan plaatsen en ontvangen.