Wczoraj wieczorem firma Apple udostępniła iOS 8.2 beta 2, nowa wersja systemu operacyjnego jest obecnie dostępna wyłącznie dla twórców aplikacji na platformę iOS. Chociaż mówimy o iOS beta 8.2 2 minęły trzy tygodnie od pierwszej wersji wydanej przez Apple, niestety nie mamy tak wielu nowości, jak byśmy się spodziewali, te z Cupertino rozwiązują jedynie problemy operacyjne, bez wdrażania innych nowych funkcji.
Pomimo braku widocznych wiadomości dla iOS beta 8.2 2, nadal mamy dziennik zmian z aktualnościami udostępnianymi przez firmę Apple w portalu dedykowanym deweloperom na jej stronie internetowej, opisującym niewidoczne zmiany dokonane przez zapalniki z Cupertino. Poniżej znajdziesz całą listę nowości zaprojektowaną przez firmę Apple, aby zapewnić deweloperom niezbędne informacje dotyczące internetowych zmian w iOS 8.2 beta 2, dzięki czemu będziesz dokładnie wiedział, co nowego kryje się w środku.
iOS 8.2 beta 2 można pobrać ze strony dedykowanego portalu programistów, jeśli masz roczną subskrypcję dla programistów.
iOS 8.2 beta 2 – oto nowości
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
Naprawiono w wersji beta 2
Dodatkowe klawiatury, w tym klawiatury innych firm, mogą nie pojawiać się w przeglądarce Safari, Mapach lub aplikacjach innych firm w symulatorze iOS.
Wiadomości
Znana kwestia
Twoje urządzenie może przejść w stan, w którym nawiązywanie rozmów w Wiadomościach może zająć dużo czasu.
Obejście: Zrestartuj urządzenie.
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
Note
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 iOS 8, Twoje aplikacje mogą ulegać awariom 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
Naprawiono w wersji beta 2
Obsługa Siri dla singapurskiego języka angielskiego była wyłączona w poprzedniej wersji beta.
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
Uwagi
Połączenia
WKInterfaceMap
API uległo zmianie. Konkretnie,setMapRect:
isetCoordinateRegion:
zostały zastąpione przezsetVisibleMapRect:
isetRegion:
odpowiednio.Połączenia
WKInterfaceController
metodainitWithContext:
zostało zdeprecjonowane. Proszę użyćawakeWithContext:
Zamiast. Wyznaczony inicjator dlaWKInterfaceController
jest terazinit
.Aplikacja WatchKit może poprosić zawartą w niej aplikację na iOS o wykonanie funkcji za pomocą
WKInterfaceController
APIopenParentApplication:reply:
. Delegat aplikacji zawierającej aplikację musi zostać zaimplementowanyapplication:handleWatchKitExtensionRequest:reply:
.Oparta na stronach aplikacja WatchKit może dynamicznie zmieniać kolejność stron na poziomie głównym za pomocą
reloadRootControllersWithNames:contexts:
.Wiersze w a
WKInterfaceTable
mają teraz domyślny wygląd. Wygląd ten można zastąpić, określając wartości koloru tła, marginesu, promienia narożnika i wysokości wiersza w Konstruktorze interfejsów.Naprawiono w wersji beta 2
Kliknięcie ikony/treści powiadomienia w oknie zegarka nie uruchamia głównej aplikacji w symulatorze iOS.
Kliknięcie przycisku Build and Run nie powoduje uruchomienia okna podglądu.
Niestandardowy kolor szarfy dla kontrolerów powiadomień nie jest obecnie wyświetlany w Konstruktorze interfejsów, ale pojawia się w symulatorze systemu iOS.
Instalowanie aplikacji WatchKit może przestać działać w symulatorze iOS.
Połączenia
WKInterfaceController
metodaaddMenuItemWithImage:title:action:
nie działa w symulatorze iOS.Znane problemy
W iOS Simulator przycisk Emoji jest zawsze widoczny, niezależnie od wybranego trybu wprowadzania.
Połączenia
WKInterfaceController
metodapresentTextInputControllerWithSuggestions:completion:
nie jest w pełni obsługiwana w symulatorze iOS. Sugestie tekstowe działają, ale dyktowanie i emoji nie.
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.