Das Änderungsprotokoll von iOS 8.1.1 zeigt ALLE Änderungen

  iOS 8.1.1 Es wurde vor etwa zwei Stunden von der Firma veröffentlicht Apple für seine App-Entwickler für iPhone, iPad und iPod Touch, und ich habe Ihnen gesagt, dass die Leistungsverbesserung von iPad 2 und iPhone 4S der wichtigste „attraktive“ Teil ist. Für dieses Update hat Apple auch ein Changelog veröffentlicht, in dem alle weniger sichtbaren Änderungen aufgeführt sind, also alle, die uns ein schnelleres Betriebssystem mit deutlich weniger Problemen bescheren.

  iOS 8.1.1 Es steht derzeit nur zum Download auf der App-Entwickler-Website zur Verfügung und es ist nicht bekannt, ob Sie es auf Ihren Endgeräten installieren können, ohne dass eine UDID für ein App-Entwicklerkonto registriert ist.

iOS 8.1.1 Changelog – ALLES neu

Hinweise und bekannte Probleme

Die folgenden Probleme beziehen sich auf die Verwendung von iOS SDK 8.1.1 zum Entwickeln von Code.

AVCapture

Bekanntes Problem

Verwendung der neuen Konstante, AVCaptureISOCurrent, führt zu inkonsistenten ISO-Werten (wie in der ISO-Eigenschaft beobachtet), wenn setExposureModeCustomWithDuration:ISO:completionHandler: wird wiederholt aufgerufen.

CloudKit

Note

Ein einzelner CKAsset Die Instanz kann nicht mehr als Wert für mehrere CKRecords festgelegt werden.

Kontakt

Note

Die Personenauswahl der Adressbuch-Benutzeroberfläche wurde für iOS 8 geändert. Es wurde ein neuer Modus mit neuer API hinzugefügt, bei dem die App keinen Zugriff auf die Kontakte des Benutzers benötigt und der Benutzer nicht zum Zugriff aufgefordert wird. Eine temporäre Kopie der ausgewählten Person wird an die App zurückgegeben. EWRABPeoplePickerNavigationController.h für weitere Informationen an.

Sehen Sie sich das neue Beispielprojekt „PeoplePicker: Auswahl einer Person oder Eigenschaft“ an, das die Verwendung des neuen Modus demonstriert.

Dokumentanbieter

Notizen

  • Ihre App benötigt die iCloud-Berechtigung, um als Dokumentenanbieter genutzt werden zu können.

  • Die Berechtigung „com.apple.developer.icloud-container-identifiers“ ist erforderlich.

Bekannte Probleme

  • Nachdem Sie die Dokumentenauswahl ins Querformat gedreht haben, wird die Statusleiste ausgeblendet.

  • Beim Aufrufen der Dokumentenauswahl im Querformat wird die enthaltende Ansicht möglicherweise unter die Navigationsleiste verschoben.

Erweiterungsoptionen

Notizen

  • Erweiterungen benötigen ein arm64-Slice, um auf 64-Bit-Geräten ausgeführt zu werden. Wenn Sie versuchen, das armv7-Slice auf einem 64-Bit-Gerät auszuführen, funktioniert es nicht.

  • Apps müssen über ein Arm64-Slice verfügen, wenn das Bundle ein Framework enthält, mit dem sowohl die App als auch die App-Erweiterung verknüpft sind.

Dateisystem

Note

Das Dateisystemlayout von App-Containern auf der Festplatte hat sich geändert. Anstatt sich auf eine fest codierte Verzeichnisstruktur zu verlassen, verwenden Sie die NSSearchPathForDirectoriesInDomains Funktion oder die URLForDirectory:inDomain:appropriateForURL:create:error: Methode der NSFileManagerKlasse. Sehen Zugriff auf Dateien und Verzeichnisse in Handbuch zur Dateisystem-Programmierung.

Schriftarten

Note

Die thailändische Systemschriftart wurde vergrößert, um die Lesbarkeit zu verbessern. Dies führt an vielen Stellen Ihrer Benutzeroberfläche zu Clipping, wenn Sie nicht die entsprechenden Maßnahmen ergreifen:

  1. Verwenden Sie die UILabel so viel wie möglich. Wenn Sie Interface Builder verwenden, stellen Sie sicher, dass Clip Subviews nicht aktiviert ist. UIKit vergrößert den Ausschneidebereich nach Bedarf, um keinen Text auszuschneiden.

  2. Verwenden Sie den dynamischen Typ. Dadurch wird sichergestellt, dass es in mehrzeiligen Beschriftungen oder Textfeldern keine überlappenden Glyphen gibt.

Wenn Sie 1 und 2 nicht ausführen können, weil Sie Ihre eigenen Ansichten implementieren, müssen Sie Maßnahmen ergreifen, um ein Abschneiden zu verhindern. Sie können CoreText verwenden, um den geeigneten Beschneidungsbereich für eine Textzeile zu ermitteln, indem Sie Folgendes aufrufen:

CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);

Passen Sie die Zeilenhöhe an, um überlappende Glyphen in mehrzeiligen Textelementen zu vermeiden. Weitere 30 % werden empfohlen.

Diese Maßnahme trägt auch dazu bei, dass Ihre App in anderen Sprachen, einschließlich Arabisch, Hindi und Vietnamesisch, eine bessere Leistung erbringt.

HealthKit

Note

Code, der versucht, Trainingsinformationen in HealthKit zu lesen, kann möglicherweise keine nachfolgenden Abfragen an HealthKit stellen.

Wenn Sie HKWorkouts verwenden, sollten Sie das Lesen von Workouts vermeiden, wenn Sie auf iOS-Versionen vor 8.1 laufen mit:

NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0};
if ([[NSProcessInfo ProcessInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) {
// Trainingsinformationen lesen und in HealthKit schreiben.
} Else {
// Trainingsinformationen in HealthKit schreiben
}

Bekanntes Problem

Blutzuckerdaten werden derzeit nicht in der Health-App angezeigt. Der Zugriff und die APIs von Drittanbietern sind nicht betroffen. Zugriffskontrollen für Blutzucker und alle anderen Gesundheitsdaten können weiterhin in der Health-App und unter Einstellungen > Datenschutz > Gesundheit verwaltet werden.

Für weitere Informationen, siehe https://support.apple.com/kb/HT6533.

iCloud

Note

Die E-Mail-Übergabe und AirDrop funktionieren möglicherweise nicht mehr, nachdem Sie Ihr iCloud-Passwort unter appleid.apple.com geändert haben.

Workaround: Melden Sie sich auf dem Gerät bei iCloud ab und wieder an.

icloud-Laufwerk

Note

URLForUbiquityContainerIdentifier: könnte zurückkehren nil wenn Sie Ihre Anwendung in Xcode ausführen. Wenn ja, öffnen Sie die Systemeinstellungen, navigieren Sie zu iCloud > iCloud Drive und aktivieren Sie Xcode.

Tastaturen

Bekanntes Problem

Zusätzliche Tastaturen, einschließlich Tastaturen von Drittanbietern, werden möglicherweise nicht in Safari, Karten oder Apps von Drittanbietern auf dem Simulator angezeigt.

Workaround: Tastaturen sollten in Kalender, Spotlight, Kontakten und Fotos testbar sein.

Notification Center

Note

Der Zeitplan und die beabsichtigte Verwendung von widgetPerformUpdateWithCompletionHandler: ist als praktisches Zuhause für die gesamte Daten-/Modellaktualisierungslogik gedacht. Falls implementiert, ruft das System zu geeigneten Zeiten das Widget auf, um seinen Status zu aktualisieren, sowohl wenn das Benachrichtigungscenter sichtbar ist als auch im Hintergrund. Um Hintergrundaktualisierungen zu ermöglichen, ist eine Implementierung erforderlich. Es wird erwartet, dass das Widget die Aktualisierungsarbeit so weit wie möglich asynchron und außerhalb des Hauptthreads durchführt. Widgets sollten den Argumentblock aufrufen, wenn die Arbeit abgeschlossen ist, und das entsprechende übergeben NCUpdateResult. Widgets sollten die Rückkehr von NICHT blockieren viewWillAppear: über die Ergebnisse dieser Operation. Stattdessen sollten Widgets den zwischengespeicherten Zustand laden viewWillAppear: um den Zustand der Ansicht vom letzten abzugleichen viewWillDisappear:, und dann reibungslos auf die neuen Daten umsteigen, wenn diese eintreffen.

NSURLSession

Note

Das NSURLSessionTask Die Klasse stellt eine neue „Prioritäts“-Eigenschaft mit drei zugehörigen Konstanten bereit: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow und NSURLSessionTaskPriorityHigh. NSURLSessionTask Mithilfe von Prioritäten kann angegeben werden, wie mehrere Anfragen und Antworten an denselben Host priorisiert werden sollen. Beachten Sie, dass die Priorität ein Hinweis und keine strikte Garantie dafür ist NSURLSessionTask Leistung.

Für vollständige Nutzungsdetails von NSURLSessionTask Prioritäten finden Sie im NSURLSession.h Header-Datei, die vom Foundation-Framework bereitgestellt wird.

Telefon

Notizen

Um die Wi-Fi-Anruffunktion für T-Mobile (nur USA) zu aktivieren, gehen Sie folgendermaßen vor:

  • Gehen Sie zu Einstellungen > Telefon > WLAN-Anrufe.

  • Stellen Sie den Schalter für Wi-Fi-Anrufe auf EIN.

  • Wenn der Mobilfunkanbieter nicht über die registrierte Notfalladresse des Benutzers verfügt, werden Sie aufgefordert, diese hinzuzufügen, bevor die Funktion aktiviert wird.

Fotos

Notizen

  • Erstellen Sie vor der Aktivierung und während der Nutzung der Betaversion der iCloud-Fotobibliothek ein Backup Ihrer Fotobibliothek, indem Sie:

    • Importieren auf Ihren Mac mit iPhoto

    • Importieren auf Ihren Mac mit Image Capture

  • Die Betaversion der iCloud-Fotobibliothek lädt keine Fotos und Videos herunter, die von iTunes mit Ihrem Gerät synchronisiert wurden. Alle von iTunes mit Ihrem Gerät synchronisierten Fotos und Videos werden entfernt, wenn Sie die Betaversion der iCloud-Fotobibliothek aktivieren.

  • iPhoto für iOS wird unter iOS 8 Beta nicht gestartet. Wenn Sie Photos.app starten, werden Ihre iPhoto-Bearbeitungen in die iOS 8-Fotobibliothek migriert. Stellen Sie sicher, dass Ihre iPhoto für iOS-Daten in Ihrer Gerätesicherung enthalten sind.

  • Die Möglichkeit zur automatischen Optimierung des Gerätespeichers ist für alle Konten mit mehr als 5 GB aktiviert.

  • Bei Verwendung der iCloud-Familienfreigabe sind sowohl die iCloud-Fotofreigabe als auch „Mein Fotostream“ aktiviert.

Bereitstellungsprofile

Bekanntes Problem

Wenn Sie von iOS 8.1.1 Betas auf die 8 Beta aktualisiert haben, kann es sein, dass Ihre Apps aufgrund von Problemen mit dem Bereitstellungsprofil abstürzen.

Workaround:

  1. Verbinden Sie das Gerät über USB mit Ihrem Mac

  2. Starten Sie Xcode

  3. Wählen Sie Fenster -> Geräte

  4. Klicken Sie mit der rechten Maustaste auf das Gerät in der linken Spalte und wählen Sie „Bereitstellungsprofile anzeigen“.

  5. Klicken Sie auf das betreffende Bereitstellungsprofil

  6. Drücken Sie den Knopf

  7. Entfernen Sie weiterhin alle betroffenen Profile.

  8. Installieren Sie die App erneut

Uikit

Notizen

  • UILabel hat den Standardwert YES für clipsToBounds. Dies unterscheidet sich vom Normalzustand UIView Standardeinstellung von NEIN.

  • Das leftLayoutGuide machen rightLayoutGuide APIs wurden entfernt. Bitte nutzen Sie die layoutMargins Eigentum statt.

WebKit

Notizen

Die Navigation Timing API wurde aufgrund von Leistungsproblemen nur auf iOS deaktiviert.

WLAN-Anrufe (nur T-Mobile US)

Note

Der Name des Netzbetreibers in der Statusleiste zeigt „T-Mobile Wi-Fi“ an, wenn das Gerät WLAN-Anrufe tätigen und empfangen kann.