Dziennik zmian iOS 8.1.1 pokazuje WSZYSTKIE zmiany

  iOS 8.1.1 został wydany około dwie godziny temu przez firmę Apple dla twórców aplikacji dla iPhone'a, iPada i iPoda Touchi mówiłem, że poprawa wydajności iPada 2 i iPhone'a 4S jest jego główną „atrakcyjną” częścią. W przypadku tej aktualizacji Apple udostępniło także dziennik zmian, w którym wyszczególnia wszystkie mniej widoczne zmiany, czyli te wszystkie, które zapewniają nam szybszy system operacyjny ze znacznie mniejszą liczbą problemów.

  iOS 8.1.1 jest obecnie dostępny do pobrania wyłącznie ze strony internetowej dewelopera aplikacji i nie wiadomo, czy będzie można go zainstalować na swoich terminalach bez posiadania identyfikatora UDID zarejestrowanego na koncie programisty aplikacji.

Dziennik zmian iOS 8.1.1 – WSZYSTKO nowe

Uwagi i znane problemy

Poniższe problemy dotyczą używania zestawu SDK systemu iOS 8.1.1 do tworzenia kodu.

AVCapture

Znana kwestia

Użycie nowej stałej, AVCaptureISOCurrent, spowoduje niespójne wartości ISO (jak zaobserwowano we właściwości ISO), jeśli setExposureModeCustomWithDuration:ISO:completionHandler: jest wywoływany wielokrotnie.

CloudKit

Note

Pojedynczy CKAsset instancji nie można już ustawić jako wartości w wielu rekordach CKRecords.

Kontakt

Note

Selektor osób w interfejsie książki adresowej został zmieniony w systemie iOS 8. Dodano nowy tryb z nowym interfejsem API, w którym aplikacja nie potrzebuje dostępu do kontaktów użytkownika, a użytkownik nie będzie monitowany o dostęp. Tymczasowa kopia wybranej osoby zostaje zwrócona do aplikacji. EOGABPeoplePickerNavigationController.h by uzyskać więcej szczegółów.

Zobacz nowy przykładowy projekt PeoplePicker: Picking a Person or Property demonstrujący użycie nowego trybu.

Dostawcy dokumentów

Uwagi

  • Twoja aplikacja wymaga uprawnień iCloud, aby mogła być używana jako dostawca dokumentów.

  • Wymagane jest uprawnienie com.apple.developer.icloud-container-identifiers.

Znane problemy

  • Po obróceniu selektora dokumentów do pozycji poziomej pasek stanu jest ukryty.

  • Po wywołaniu selektora dokumentów w orientacji poziomej widok zawierający dokument może zostać przesunięty pod pasek nawigacyjny.

Rozszerzenia

Uwagi

  • Rozszerzenia wymagają segmentu arm64, aby działać na urządzeniach 64-bitowych. Jeśli spróbujesz uruchomić plasterek armv7 na urządzeniu 64-bitowym, nie zadziała.

  • Aplikacje muszą mieć wycinek arm64, jeśli pakiet zawiera platformę, z którą łączy się zarówno aplikacja, jak i rozszerzenie aplikacji.

System plików

Note

Układ systemu plików kontenerów aplikacji został zmieniony na dysku. Zamiast polegać na zakodowanej na stałe strukturze katalogów, użyj metody NSSearchPathForDirectoriesInDomains funkcja lub URLForDirectory:inDomain:appropriateForURL:create:error: metoda NSFileManagerklasa. Widzieć Dostęp do plików i katalogów in Przewodnik programowania systemu plików.

Czcionki

Note

Aby poprawić czytelność, zwiększono rozmiar tajskiej czcionki systemowej. Jeśli nie podejmiesz odpowiednich działań, spowoduje to przycięcie w wielu miejscach interfejsu użytkownika:

  1. Zastosowanie UILabel tak dużo jak to możliwe. Jeżeli korzystasz z Konstruktora interfejsów, upewnij się, że opcja Podglądy klipów nie jest zaznaczona. UIKit powiększy region przycinania, jeśli to konieczne, aby nie przycinać tekstu.

  2. Użyj typu dynamicznego. Dzięki temu w etykietach wielowierszowych lub polach tekstowych nie będzie nakładających się glifów.

Jeśli nie możesz wykonać 1 i 2, ponieważ implementujesz własne widoki, musisz wdrożyć środki, aby nie przycinać. Możesz użyć CoreText, aby znaleźć odpowiedni region przycinania dla linii tekstu, wywołując:

CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);

Aby uniknąć nakładania się glifów w elementach tekstu wielowierszowego, dostosuj wysokość linii. Zalecane jest dodatkowe 30%.

Dzięki temu działaniu Twoja aplikacja będzie działać lepiej w innych językach, w tym w języku arabskim, hindi i wietnamskim.

HealthKit

Note

Kod próbujący odczytać informacje o treningu w HealthKit może nie być w stanie wykonać kolejnych zapytań do HealthKit.

Jeśli korzystasz z HKWorkouts, powinieneś unikać czytania treningów podczas uruchamiania na wersjach iOS wcześniejszych niż 8.1 z:

NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0};
if ([[NSProcessInfo ProcessInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) {
// Odczytywanie i zapisywanie informacji o treningu w HealthKit.
} Else {
// Zapisz informacje o treningu w HealthKit
}

Znana kwestia

Dane dotyczące poziomu glukozy we krwi nie są obecnie wyświetlane w aplikacji Zdrowie. Nie ma to wpływu na dostęp stron trzecich ani interfejsy API. Kontrolą dostępu do poziomu glukozy we krwi i wszystkich innych danych dotyczących zdrowia można nadal zarządzać w aplikacji Zdrowie oraz w Ustawieniach > Prywatność > Zdrowie.

Aby uzyskać więcej informacji, zobacz https://support.apple.com/kb/HT6533.

iCloud

Note

Przekazywanie poczty i funkcja AirDrop mogą przestać działać po zmianie hasła do usługi iCloud na stronie appleid.apple.com.

Obejście: Wyloguj się i wróć do iCloud na urządzeniu.

iCloud Napęd

Note

URLForUbiquityContainerIdentifier: może wrócić nil podczas uruchamiania aplikacji w Xcode. Jeśli tak, otwórz Preferencje systemowe, przejdź do iCloud > iCloud Drive i włącz Xcode.

klawiatury

Znana kwestia

Dodatkowe klawiatury, w tym klawiatury innych firm, mogą nie pojawiać się w przeglądarce Safari, Mapach lub aplikacjach innych firm w Symulatorze.

Obejście: Klawiatury powinny umożliwiać testowanie w Kalendarzu, Spotlight, Kontaktach i Zdjęciach.

Centrum powiadomień

Note

Harmonogram i przeznaczenie widgetPerformUpdateWithCompletionHandler: ma służyć jako wygodne miejsce dla całej logiki aktualizacji danych/modeli. Jeśli zostanie wdrożony, system będzie w odpowiednich momentach wywoływał widget w celu aktualizacji swojego stanu, zarówno gdy widoczne jest Centrum Powiadomień, jak i w tle. Aby umożliwić aktualizacje w tle, wymagana jest implementacja. Oczekuje się, że widżet będzie w miarę możliwości aktualizował asynchronicznie i poza głównym wątkiem. Widżety powinny wywołać blok argumentów po zakończeniu pracy, przekazując odpowiedni NCUpdateResult. Widżety NIE powinny blokować powrotu z viewWillAppear: o wynikach tej operacji. Zamiast tego widżety powinny ładować stan pamięci podręcznej viewWillAppear: w celu dopasowania stanu widoku z ostatniego viewWillDisappear:, a następnie płynnie przechodź do nowych danych, gdy tylko zostaną dostarczone.

Sesja NSURLS

Note

Połączenia NSURLSessionTask class udostępnia nową właściwość „priorytetową” z trzema powiązanymi stałymi: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLow, NSURLSessionTaskPriorityHigh. NSURLSessionTask priorytetów można użyć do określenia priorytetu wielu żądań i odpowiedzi kierowanych do tego samego hosta. Należy pamiętać, że priorytet jest wskazówką, a nie ścisłą gwarancją NSURLSessionTask wydajność.

Aby uzyskać szczegółowe informacje na temat użytkowania NSURLSessionTask priorytety, patrz NSURLSession.h nagłówkowy, który jest dostarczany przez framework Foundation.

Telefon

Uwagi

Aby aktywować funkcję połączeń Wi-Fi w T-Mobile (tylko w USA), wykonaj następujące kroki:

  • Wybierz Ustawienia > Telefon > Połączenia Wi-Fi.

  • Przełącz przełącznik Połączenia Wi-Fi w położenie WŁ.

  • Jeżeli operator nie posiada zarejestrowanego adresu alarmowego użytkownika, zostaniesz poproszony o jego dodanie przed aktywacją tej funkcji.

ZDJĘCIA

Uwagi

  • Przed włączeniem i podczas korzystania z biblioteki zdjęć iCloud w wersji beta utwórz kopię zapasową swojej biblioteki zdjęć, wykonując następujące czynności:

    • Importowanie na komputer Mac przy użyciu iPhoto

    • Importowanie na komputer Mac za pomocą programu Image Capture

  • Biblioteka zdjęć iCloud w wersji beta nie będzie pobierać zdjęć i filmów z iTunes zsynchronizowanych z Twoim urządzeniem. Wszelkie zdjęcia i filmy zsynchronizowane z Twoim urządzeniem z iTunes zostaną usunięte, gdy włączysz bibliotekę zdjęć iCloud w wersji beta.

  • iPhoto dla iOS nie zostanie uruchomione w wersji beta systemu iOS 8. Uruchomienie aplikacji Photos.app spowoduje migrację zmian wprowadzonych w iPhoto do biblioteki zdjęć systemu iOS 8. Upewnij się, że dane iPhoto dla iOS znajdują się w kopii zapasowej urządzenia.

  • Możliwość automatycznej optymalizacji miejsca na urządzeniu jest włączona dla wszystkich kont większych niż 5 GB.

  • Podczas korzystania z Udostępniania rodzinnego iCloud włączone są zarówno Udostępnianie zdjęć w iCloud, jak i Mój strumień zdjęć.

Profile udostępniania

Znana kwestia

Jeśli zaktualizowałeś wersję beta systemu iOS 8.1.1 do wersji 8, możesz zauważyć awarie aplikacji z powodu problemów z profilem udostępniania.

Obejście:

  1. Podłącz urządzenie przez USB do komputera Mac

  2. Uruchom Xcode

  3. Wybierz Okno -> Urządzenia

  4. Kliknij prawym przyciskiem myszy urządzenie w lewej kolumnie i wybierz „Pokaż profile udostępniania”

  5. Kliknij odpowiedni profil udostępniania

  6. Naciśnij przycisk

  7. Kontynuuj usuwanie wszystkich profili, których to dotyczy.

  8. Zainstaluj ponownie aplikację

UIKit

Uwagi

  • UILabel ma domyślną wartość TAK dla clipsToBounds. To różni się od normalnego UIView domyślnie NIE.

  • Połączenia leftLayoutGuide i rightLayoutGuide Interfejsy API zostały usunięte. Proszę skorzystać z layoutMargins zamiast tego nieruchomość.

WebKit

Uwagi

Interfejs API nawigacji czasowej został wyłączony tylko w systemie iOS ze względu na problemy z wydajnością.

Połączenia Wi-Fi (tylko T-Mobile w USA)

Note

Nazwa operatora na pasku stanu będzie wyświetlać „T-Mobile Wi-Fi”, gdy urządzenie będzie mogło wykonywać i odbierać połączenia Wi-Fi.