iOS 8.2 została uruchomiona dziś wieczorem przez firmę Apple dla twórców aplikacji na platformę iOS, nowa wersja systemu operacyjnego jest dostępna dla iPhone'a, iPada i iPoda Touch. Wydanie tej aktualizacji ma na celu umożliwienie twórcom aplikacji przetestowania nowej wersji systemu operacyjnego z aplikacjami, które można wygenerować przy użyciu nowego Xcode 6.2. Ta wersja XCode zawiera WatchKit, czyli specjalny pakiet SDK, który umożliwia tworzenie aplikacji na Apple Watch, dzięki czemu programiści mogą przygotować swoje tytuły na premierę nowego produktu Apple.
iOS 8.2 nie wnosi żadnych znaczących nowości dla naszych iDevices, a jedynie funkcje związane z WatchKit lub OS X, więc na razie nie trzeba go instalować.
Dziennik zmian iOS 8.2
Uwagi i znane problemy
Poniższe problemy dotyczą używania zestawu SDK systemu iOS 8.2 do tworzenia kodu.
CloudKit
Note
Pojedynczy
CKAsset
instancji nie można już ustawić jako wartości w wielu rekordach CKRecords.Dostawcy dokumentów
Uwagi
Twoja aplikacja wymaga uprawnień iCloud, aby mogła być używana jako dostawca dokumentów.
Połączenia
com.apple.developer.icloud-container-identifiers
wymagane jest uprawnienie.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 aplikacji
Uwagi
Rozszerzenia aplikacji wymagają fragmentu 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 lubURLForDirectory:inDomain:appropriateForURL:create:error:
metodaNSFileManager
klasa. 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:
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.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.
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 odpowiedniNCUpdateResult
. Widżety NIE powinny blokować powrotu zviewWillAppear:
o wynikach tej operacji. Zamiast tego widżety powinny ładować stan pamięci podręcznejviewWillAppear:
w celu dopasowania stanu widoku z ostatniegoviewWillDisappear:
, 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, patrzNSURLSession.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 dokonałeś aktualizacji do wersji beta 8.2 z poprzednich wersji beta systemu iOS 8, możesz zauważyć awarie aplikacji z powodu problemów z profilem udostępniania.
Obejście:
Podłącz urządzenie przez USB do komputera Mac.
Uruchom Xcode.
Wybierz polecenie Okno > Urządzenia.
Kliknij prawym przyciskiem myszy urządzenie w lewej kolumnie i wybierz „Pokaż profile udostępniania”.
Kliknij odpowiedni profil udostępniania.
Naciśnij przycisk.
Kontynuuj usuwanie wszystkich profili, których to dotyczy.
Zainstaluj ponownie aplikację.
Siri
Znana kwestia
Obsługa Siri dla singapurskiego języka angielskiego jest wyłączona w tej wersji beta, chociaż nadal można ją wybrać w oknie wyboru języka Siri.
UIKit
Uwagi
UILabel
ma domyślną wartość TAK dlaclipsToBounds
. To różni się od normalnegoUIView
domyślnie NIE.Połączenia
leftLayoutGuide
irightLayoutGuide
Interfejsy API zostały usunięte. Proszę skorzystać zlayoutMargins
zamiast tego nieruchomość.Zestaw obserwacyjny
Znane problemy
Kliknięcie ikony lub treści powiadomienia podczas przeglądania powiadomienia w symulatorze iOS nie powoduje uruchomienia odpowiedniej aplikacji Watch.
Wybranie opcji Build and Run nie powoduje uruchomienia okna Watch.
Obejście: Otwórz okno czujki w obszarze Sprzęt > Wyświetlacze zewnętrzne, a następnie ponownie wybierz opcję Kompiluj i uruchom.
Niestandardowy kolor szarfy dla kontrolerów powiadomień nie jest obecnie wyświetlany w Konstruktorze interfejsów, ale pojawia się w symulatorze systemu iOS.
Połączenia
presentTextInputControllerWithSuggestions:completion:
metodaWKInterfaceController
nie jest obecnie obsługiwana w symulatorze iOS.Instalowanie aplikacji Watch może przestać działać w symulatorze iOS.
Obejście: Zresetuj symulator i spróbuj ponownie.
Połączenia
addMenuItemWithImage:title:action:
metodaWKInterfaceController
nie działa w symulatorze iOS.Obejście: Zastosowanie
addMenuItemWithImageNamed:title:action:
.
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.