iOS beta 7 5 została uruchomiona dziś wieczorem przez firmę Apple, a teraz udostępniliśmy cały dziennik zmian tej wersji systemu operacyjnego. Znajdziemy w nim oczywiście głównie powtórne zbadanie poprzednich problemów i poprawę wydajności, jednak projektanci firmy w dalszym ciągu wprowadzali różne subtelne zmiany w interfejsie użytkownika.
Uwagi i znane problemy
Następujące problemy dotyczą używania zestawu iOS SDK 7.0 do tworzenia kodu: Książka adresowa
Uwagi
Klasy w środowisku AddressBookUI teraz wyraźnie uniemożliwiają tworzenie podklas. W przypadku aplikacji połączonych z zestawem SDK systemu iOS 7 próba zainicjowania podklasy jednej z tych klas zwraca zero. W przypadku aplikacji połączonych ze starszymi zestawami SDK jedyną zmianą zachowania jest ostrzeżenie rejestrowane w konsoli.
Począwszy od wersji 4, obsługa prywatności w ramach AddressBookUI jest ponownie włączona dla aplikacji połączonych z zestawem SDK systemu iOS 7. Aplikacje powiązane ze starszymi zestawami SDK nie ulegają zmianie. Jeśli aplikacja korzysta z któregokolwiek kontrolera widoku książki adresowej, należy sprawdzić, czy nadal działa zgodnie z oczekiwaniami.
zrzut
Uwagi
AirDrop w iOS 7 Seed 2 lub nowszym nie jest kompatybilny z AirDrop w iOS 7 Seed 1.
Kontakty Tylko wsparcie wymaga, aby:
Jesteś zalogowany do iCloud.
Nadawca i odbiorca mają swoje adresy e-mail Apple ID w Kontaktach na swoich urządzeniach.
Naprawiono w Seed 5
Tylko kontakt wymaga obecnie aktywnego połączenia z Internetem.
App Store powinien umożliwiać znalezienie aplikacji umożliwiającej otwarcie otrzymanego dokumentu na podstawie jednolitego identyfikatora typu dokumentu (UTI). Obecnie wyświetlany jest tylko pusty ekran.
Fundacja AV
Uwagi
AVCaptureSession domyślnie używa teraz AVAudioSession Twojej aplikacji.
Animacja podstawowa
Uwagi
Gdy klucz UIViewGroupOpacity nie jest obecny, wartość domyślna to teraz TAK. Wartość domyślna to poprzednio NIE.
Oznacza to, że podwidoki przezroczystego widoku zostaną najpierw złożone w ten przezroczysty widok, a następnie wstępnie złożone poddrzewo zostanie narysowane w całości na tle. Ustawienie NIE powoduje tańsze, ale także mniej dokładne komponowanie: każdy widok w przezroczystym poddrzewie jest łączony z tym, co znajduje się pod nim, zgodnie z nieprzezroczystością elementu nadrzędnego, w normalnej kolejności algorytmu malarza.Wymiana
Uwagi
W wersji Seed 4 i nowszych identyfikator urządzenia Exchange został zmieniony z powrotem na zachowanie systemu iOS 6, w którym używa numeru seryjnego.
Czcionki
Uwagi
W wersji 4. wprowadzono nową wysokość linii czcionki. Jeśli we wcześniejszych nasionach ręcznie wyrównałeś czcionkę, w późniejszych nasionach może ona nieznacznie przesunąć się w pionie.
Fundacja
Uwagi
Zapytanie NSMetadataQuery o wszechobecnym zakresie może teraz używać kMDItemContentTypeTree w predykatach.
Na przykład:
NSPredicate *p = [NSPredicate
predicateWithLeftExpression: [NSExpression
wyrażenieForKeyPath:@”kMDItemContentTypeTree”]
praweWyrażenie:[NSWyrażenie
wyrażenieForConstantValue:@”public.rtf”]
modyfikator: NSAnyPredicateModifier
wpisz: NSLikePredicateOperatorType
opcje:0];
Po wywołaniu wyników zwróconych przez zapytania o wszechobecnych zakresach, -[NSMetadataItem
valueForAttribute:NSMetadataItemDisplayNameKey] generuje teraz tę samą wartość co –
[NSURL getResourceValue: forKey: NSURRLLocalizedNameKey], dopasowanie niewszechobecne
zapytania.
iCloud
Uwagi
Jeśli używasz pęku kluczy iCloud z odzyskiwaniem, może zostać wyświetlone okno dialogowe wskazujące, że odzyskiwanie zostało wyłączone z powodu zmiany serwera. To jest zamierzone. Aby ponownie włączyć tę funkcję, postępuj zgodnie z instrukcjami zawartymi w powiadomieniu. Jeśli widzisz wiele alertów lub zauważysz problemy z ponownym włączeniem odzyskiwania, zgłoś błąd.
Pęk kluczy iCloud w systemie iOS 7 Seed 3 lub nowszym nie jest wstecznie kompatybilny z iOS 7 Seed 2 lub OS X
Nasienie Mavericks 2.
Jeśli w systemie iOS 7 Seed 2 włączono funkcję pęku kluczy i/lub przywracania pęku kluczy iCloud, obie funkcje zostaną wyłączone po aktualizacji do systemu iOS 7 Seed 3 lub nowszego.
Po aktualizacji do systemu iOS 7 Seed 3 lub nowszego przejdź do Ustawień i stuknij w iCloud > Pęk kluczy i włącz ponownie iCloudKeychain na swoich urządzeniach.
Zobacz Informacje o wersji OS X 10.9, aby uzyskać więcej informacji.
Blokada aktywacji, nowa funkcja Znajdź mój iPhone, włącza się automatycznie po włączeniu funkcji Znajdź mój iPhone na dowolnym urządzeniu z systemem iOS 7. Blokada aktywacji wymaga od użytkowników wprowadzenia swojego Apple ID i hasła, aby włączyć Znajdź mój iPhone i wylogować się z iCloud , wymaż urządzenie lub ponownie aktywuj urządzenie po wymazaniu. Przed przekazaniem urządzenia nowemu użytkownikowi ważne jest wykonanie jednej z poniższych czynności:
Wyloguj się z iCloud.
Włącz blokadę aktywacji w Ustawieniach > iCloud > Znajdź mój iPhone.
Naprawiono w Seed 5
Notatki głosowe nie są przywracane z kopii zapasowych iCloud.
Użytkownicy w Szwajcarii, Francji, Hiszpanii, Niemczech, Polsce, Finlandii i prawdopodobnie w niektórych innych krajach nie będą mogli przywrócić swoich pęków kluczy za pomocą weryfikacji numeru telefonu.
Znane problemy
Pola haseł nie są wyświetlane w widokach alertów dla aplikacji w układzie poziomym (na przykład uwierzytelnianie Game Center lub zakup w aplikacji). Wprowadzanie tekstu nadal działa, chociaż nie widzisz, co piszesz.
MAPK
Uwagi
Jeśli wywołania renderInContext na warstwie zawierającej MKMapView są wykonane z głównego wątku, należy je wyeliminować lub przenieść do głównego wątku. Niezastosowanie się do tego może spowodować awarię aplikacji.
Zamiast używać renderInContext, użyj nowych interfejsów API MKMapSnapshotter.
Media
Uwagi
iOS zapamiętuje teraz ostatnio używaną aplikację multimedialną po ponownym uruchomieniu i awarii aplikacji. Aplikacje multimedialne, które mogą odbierać zdarzenia zdalnego sterowania, powinny być przygotowane do uruchamiania w tle i potencjalnie odbierać zdarzenia zdalnego sterowania w celu rozpoczęcia odtwarzania. Ponadto ważne jest, aby aplikacje multimedialne monitorowały i obsługiwały zdarzenia resetowania serwera multimediów, ponieważ aplikacja multimedialna może otrzymać zdalne żądanie wznowienia odtwarzania po zresetowaniu. Powiadomienia umożliwiające monitorowanie tych zdarzeń serwera multimediów są dostępne w
AVAudioSession i właściwa obsługa są opisane w Ogólne zalecenia dotyczące obsługi
kAudioSessionProperty_ServerDied.
Łączność wielopunktowa
Uwagi
To ziarno zawiera wiele aktualizacji interfejsów API MCSession. Interfejsy API działają teraz tak, jak zostały zaprezentowane na WWDC. Główne zmiany i ulepszenia obejmują: W MCSession zaimplementowano następującą nową metodę:
– (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID
*)błąd peerID:(NSError **)błąd
Ta metoda delegowania została zaimplementowana:
– (void)sesja:(MCSession *)sesja didReceiveStream:(NSInputStream *)stream
withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
Zaimplementowano następującą nową metodę w MCSession:
– (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString
*)nazwazasobu toPeer:(MCPeerID *)identyfikator peera withCompletionHandler:(void(^)(NSError
*błąd))completionHandler
Metoda delegowania, aby rozpocząć odbieranie zasobu od zdalnego peera, została zaimplementowana jako:
– (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString
*)nazwa zasobu fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress
Metoda delegowania służąca do zakończenia odbierania zasobu od zdalnego partnera i zapisania zawartości w pliku a
lokalizacja tymczasowa realizowana jest jako:
– (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString
*)nazwa zasobu fromPeer:(MCPeerID *)identyfikator peera atURL:(NSURL *)localURL withError:
(NSEbłąd *)błąd
Uwagi: Aplikacja jest odpowiedzialna za przeniesienie pliku do stałej lokalizacji w swoim piaskownicy.
MCAdvertiserAssistant to wygodna klasa do implementacji Advertiser, która obsługuje zaproszenia i połączenia z sesją MCSession.
MCSession ma nową metodę initWithPeer:.
sendResource dodał „with” do completeHandler.
Limit czasu został usunięty z connectPeer: withNearbyConnectionData.
Więcej informacji na temat tych interfejsów API można znaleźć w filmie dotyczącym sesji 2013 sesji WWDC 708 pt. „Nearby
Sieć z łącznością wielopunktową.”
wielozadaniowość
Uwagi
AVAudioSession nie może już być aktywowana przez aplikacje działające w tle, które wybudzają się z powodu
Zdarzenia pobierania w tle, przesyłania w tle i zdalnego powiadamiania.
Zasady dotyczące interfejsu API zakończenia zadań zostały zmienione z powrotem, aby były zgodne z zachowaniem systemu iOS 6, ale limit czasu na ukończenie zadania zmniejszył się z 10 minut w systemie iOS 6.
Notatki dotyczące sieci
Komórkowa technologia rezerwowa obecna w poprzednich nasionach została usunięta w wersji 5.
Dwa interfejsy API sieci niskiego poziomu, które wcześniej zwracały adres MAC, teraz zwracają stałą wartość
02:00:00:00:00:00. Interfejsy API, o których mowa, to sysctl (NET_RT_IFLIST) i ioctl
(SIOCGIFCONF). Programiści korzystający z wartości adresu MAC powinni przejść na takie identyfikatory
jako -[identyfikator UIDeviceForVendor]. Ta zmiana dotyczy wszystkich aplikacji działających w systemie iOS 7.
Środowisko uruchomieniowe Objective-C
Uwagi
Ze względu na zmiany w implementacji pola isa, * samo w sobie może ulec zmianie podczas wyliczania (dla Apple właśnie wydano iOS 7 beta 5 dla iPhone'a, iPada, iPada mini i iPoda touch, a teraz udostępniono także pełny dziennik zmian. Najnowsza wersja beta systemu iOS 7 została, jak zawsze, udostępniona programistom jako aktualizacja bezprzewodowa (OTA), ale zostaliśmy poinformowani, że pliki nowego systemu operacyjnego są już dostępne do pobrania w internetowym portalu dla programistów Apple im, Apple opublikował także pełny dziennik zmian iOS 7 beta 5, który zawiera listę wszystkich aktualizacji oprogramowania, które firmie udało się umieścić w najnowszym systemie operacyjnym w wersji beta. BGR otrzymał kopię dziennika zmian iOS 7 beta 5 firmy Apple i wszystkie szczegóły poniżej.
Uwagi i znane problemy
Następujące problemy dotyczą używania zestawu iOS SDK 7.0 do tworzenia kodu: Książka adresowa
Uwagi
Klasy w środowisku AddressBookUI teraz wyraźnie uniemożliwiają tworzenie podklas. W przypadku aplikacji połączonych z zestawem SDK systemu iOS 7 próba zainicjowania podklasy jednej z tych klas zwraca zero. W przypadku aplikacji połączonych ze starszymi zestawami SDK jedyną zmianą zachowania jest ostrzeżenie rejestrowane w konsoli.
Począwszy od wersji 4, obsługa prywatności w ramach AddressBookUI jest ponownie włączona dla aplikacji połączonych z zestawem SDK systemu iOS 7. Aplikacje powiązane ze starszymi zestawami SDK nie ulegają zmianie. Jeśli aplikacja korzysta z któregokolwiek kontrolera widoku książki adresowej, należy sprawdzić, czy nadal działa zgodnie z oczekiwaniami.
zrzut
Uwagi
AirDrop w iOS 7 Seed 2 lub nowszym nie jest kompatybilny z AirDrop w iOS 7 Seed 1.
Kontakty Tylko wsparcie wymaga, aby:
Jesteś zalogowany do iCloud.
Nadawca i odbiorca mają swoje adresy e-mail Apple ID w Kontaktach na swoich urządzeniach.
Naprawiono w Seed 5
Tylko kontakt wymaga obecnie aktywnego połączenia z Internetem.
App Store powinien umożliwiać znalezienie aplikacji umożliwiającej otwarcie otrzymanego dokumentu na podstawie jednolitego identyfikatora typu dokumentu (UTI). Obecnie wyświetlany jest tylko pusty ekran.
Fundacja AV
Uwagi
AVCaptureSession domyślnie używa teraz AVAudioSession Twojej aplikacji.
Animacja podstawowa
Uwagi
Gdy klucz UIViewGroupOpacity nie jest obecny, wartość domyślna to teraz TAK. Wartość domyślna to poprzednio NIE.
Oznacza to, że podwidoki przezroczystego widoku zostaną najpierw złożone w ten przezroczysty widok, a następnie wstępnie złożone poddrzewo zostanie narysowane w całości na tle. Ustawienie NIE powoduje tańsze, ale także mniej dokładne komponowanie: każdy widok w przezroczystym poddrzewie jest łączony z tym, co znajduje się pod nim, zgodnie z nieprzezroczystością elementu nadrzędnego, w normalnej kolejności algorytmu malarza.Wymiana
Uwagi
W wersji Seed 4 i nowszych identyfikator urządzenia Exchange został zmieniony z powrotem na zachowanie systemu iOS 6, w którym używa numeru seryjnego.
Czcionki
Uwagi
W wersji 4. wprowadzono nową wysokość linii czcionki. Jeśli we wcześniejszych nasionach ręcznie wyrównałeś czcionkę, w późniejszych nasionach może ona nieznacznie przesunąć się w pionie.
Fundacja
Uwagi
Zapytanie NSMetadataQuery o wszechobecnym zakresie może teraz używać kMDItemContentTypeTree w predykatach.
Na przykład:
NSPredicate *p = [NSPredicate
predicateWithLeftExpression: [NSExpression
wyrażenieForKeyPath:@”kMDItemContentTypeTree”]
praweWyrażenie:[NSWyrażenie
wyrażenieForConstantValue:@”public.rtf”]
modyfikator: NSAnyPredicateModifier
wpisz: NSLikePredicateOperatorType
opcje:0];
Po wywołaniu wyników zwróconych przez zapytania o wszechobecnych zakresach, -[NSMetadataItem
valueForAttribute:NSMetadataItemDisplayNameKey] generuje teraz tę samą wartość co –
[NSURL getResourceValue: forKey: NSURRLLocalizedNameKey], dopasowanie niewszechobecne
zapytania.
iCloud
Uwagi
Jeśli używasz pęku kluczy iCloud z odzyskiwaniem, może zostać wyświetlone okno dialogowe wskazujące, że odzyskiwanie zostało wyłączone z powodu zmiany serwera. To jest zamierzone. Aby ponownie włączyć tę funkcję, postępuj zgodnie z instrukcjami zawartymi w powiadomieniu. Jeśli widzisz wiele alertów lub zauważysz problemy z ponownym włączeniem odzyskiwania, zgłoś błąd.
Pęk kluczy iCloud w systemie iOS 7 Seed 3 lub nowszym nie jest wstecznie kompatybilny z iOS 7 Seed 2 lub OS X
Nasienie Mavericks 2.
Jeśli w systemie iOS 7 Seed 2 włączono funkcję pęku kluczy i/lub przywracania pęku kluczy iCloud, obie funkcje zostaną wyłączone po aktualizacji do systemu iOS 7 Seed 3 lub nowszego.
Po aktualizacji do systemu iOS 7 Seed 3 lub nowszego przejdź do Ustawień i stuknij w iCloud > Pęk kluczy i włącz ponownie iCloudKeychain na swoich urządzeniach.
Zobacz Informacje o wersji OS X 10.9, aby uzyskać więcej informacji.
Blokada aktywacji, nowa funkcja Znajdź mój iPhone, włącza się automatycznie po włączeniu funkcji Znajdź mój iPhone na dowolnym urządzeniu z systemem iOS 7. Blokada aktywacji wymaga od użytkowników wprowadzenia swojego Apple ID i hasła, aby włączyć Znajdź mój iPhone i wylogować się z iCloud , wymaż urządzenie lub ponownie aktywuj urządzenie po wymazaniu. Przed przekazaniem urządzenia nowemu użytkownikowi ważne jest wykonanie jednej z poniższych czynności:
Wyloguj się z iCloud.
Włącz blokadę aktywacji w Ustawieniach > iCloud > Znajdź mój iPhone.
Naprawiono w Seed 5
Notatki głosowe nie są przywracane z kopii zapasowych iCloud.
Użytkownicy w Szwajcarii, Francji, Hiszpanii, Niemczech, Polsce, Finlandii i prawdopodobnie w niektórych innych krajach nie będą mogli przywrócić swoich pęków kluczy za pomocą weryfikacji numeru telefonu.
Znane problemy
Pola haseł nie są wyświetlane w widokach alertów dla aplikacji w układzie poziomym (na przykład uwierzytelnianie Game Center lub zakup w aplikacji). Wprowadzanie tekstu nadal działa, chociaż nie widzisz, co piszesz.
MAPK
Uwagi
Jeśli wywołania renderInContext na warstwie zawierającej MKMapView są wykonane z głównego wątku, należy je wyeliminować lub przenieść do głównego wątku. Niezastosowanie się do tego może spowodować awarię aplikacji.
Zamiast używać renderInContext, użyj nowych interfejsów API MKMapSnapshotter.
Media
Uwagi
iOS zapamiętuje teraz ostatnio używaną aplikację multimedialną po ponownym uruchomieniu i awarii aplikacji. Aplikacje multimedialne, które mogą odbierać zdarzenia zdalnego sterowania, powinny być przygotowane do uruchamiania w tle i potencjalnie odbierać zdarzenia zdalnego sterowania w celu rozpoczęcia odtwarzania. Ponadto ważne jest, aby aplikacje multimedialne monitorowały i obsługiwały zdarzenia resetowania serwera multimediów, ponieważ aplikacja multimedialna może otrzymać zdalne żądanie wznowienia odtwarzania po zresetowaniu. Powiadomienia umożliwiające monitorowanie tych zdarzeń serwera multimediów są dostępne w
AVAudioSession i właściwa obsługa są opisane w Ogólne zalecenia dotyczące obsługi
kAudioSessionProperty_ServerDied.
Łączność wielopunktowa
Uwagi
To ziarno zawiera wiele aktualizacji interfejsów API MCSession. Interfejsy API działają teraz tak, jak zostały zaprezentowane na WWDC. Główne zmiany i ulepszenia obejmują: W MCSession zaimplementowano następującą nową metodę:
– (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID
*)błąd peerID:(NSError **)błąd
Ta metoda delegowania została zaimplementowana:
– (void)sesja:(MCSession *)sesja didReceiveStream:(NSInputStream *)stream
withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
Zaimplementowano następującą nową metodę w MCSession:
– (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString
*)nazwazasobu toPeer:(MCPeerID *)identyfikator peera withCompletionHandler:(void(^)(NSError
*błąd))completionHandler
Metoda delegowania, aby rozpocząć odbieranie zasobu od zdalnego peera, została zaimplementowana jako:
– (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString
*)nazwa zasobu fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress
Metoda delegowania służąca do zakończenia odbierania zasobu od zdalnego partnera i zapisania zawartości w pliku a
lokalizacja tymczasowa realizowana jest jako:
– (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString
*)nazwa zasobu fromPeer:(MCPeerID *)identyfikator peera atURL:(NSURL *)localURL withError:
(NSEbłąd *)błąd
Uwagi: Aplikacja jest odpowiedzialna za przeniesienie pliku do stałej lokalizacji w swoim piaskownicy.
MCAdvertiserAssistant to wygodna klasa do implementacji Advertiser, która obsługuje zaproszenia i połączenia z sesją MCSession.
MCSession ma nową metodę initWithPeer:.
sendResource dodał „with” do completeHandler.
Limit czasu został usunięty z connectPeer: withNearbyConnectionData.
Więcej informacji na temat tych interfejsów API można znaleźć w filmie dotyczącym sesji 2013 sesji WWDC 708 pt. „Nearby
Sieć z łącznością wielopunktową.”
wielozadaniowość
Uwagi
AVAudioSession nie może już być aktywowana przez aplikacje działające w tle, które wybudzają się z powodu
Zdarzenia pobierania w tle, przesyłania w tle i zdalnego powiadamiania.
Zasady dotyczące interfejsu API zakończenia zadań zostały zmienione z powrotem, aby były zgodne z zachowaniem systemu iOS 6, ale limit czasu na ukończenie zadania zmniejszył się z 10 minut w systemie iOS 6.
Notatki dotyczące sieci
Komórkowa technologia rezerwowa obecna w poprzednich nasionach została usunięta w wersji 5.
Dwa interfejsy API sieci niskiego poziomu, które wcześniej zwracały adres MAC, teraz zwracają stałą wartość
02:00:00:00:00:00. Interfejsy API, o których mowa, to sysctl (NET_RT_IFLIST) i ioctl
(SIOCGIFCONF). Programiści korzystający z wartości adresu MAC powinni przejść na takie identyfikatory
jako -[identyfikator UIDeviceForVendor]. Ta zmiana dotyczy wszystkich aplikacji działających w systemie iOS 7.
Środowisko uruchomieniowe Objective-C
Uwagi
Ze względu na zmiany w implementacji pola isa, wartość *self może ulec zmianie podczas wyliczania (np
na przykład, jeśli pojemnik zostanie zatrzymany).
Obejście: Podczas implementowania countByEnumeratingWithState nie ustawiaj stanu
>mutacjePtr = self.
Książeczka bankowa
Uwagi
Począwszy od wersji iOS 7 Seed 4, Passbook dodał obsługę głównych i pobocznych pól, aby lepiej dopasować się do
reszta ekosystemu iBeacon. Nowe klawisze główne i poboczne są niezależnie zmienne i opcjonalne
wraz z identyfikatorem NearbyUUID (wymagany) w każdym słowniku w tablicy beacons.
W poprzednich wersjach pakietu SDK dla systemu iOS aplikacja Passbook nie sprawdzała tylnych pól na przepustkach
całkowicie. Zasady walidacji nie uległy zmianie, ale walidacja obejmuje teraz pola tylne.
Sprawdź dziennik konsoli, aby uzyskać dodatkowe dzienniki.
Począwszy od iOS 7 Seed 3, PKPassLibraryDidCancelAddPasses to nowy kod stanu w
Wyliczenie PKPassLibraryAddPassesStatus. Oznacza to, że użytkownik kliknął Anuluj w dodanych przejściach
alarm.
ZDJĘCIA
Uwagi
Po uaktualnieniu z wcześniejszej wersji początkowej miniatury zdjęć w aplikacji Zdjęcia nie będą wyświetlane przez krótki czas
podczas.
Safari
Naprawiono w Seed 5
Aktualizacja do iOS może zresetować ustawienia Safari do wartości domyślnych.
Uwagi dotyczące bezpieczeństwa
-[UIDevice UniqueIdentifier] nie jest już akceptowany w zgłoszeniach do App Store. W iOS 7
aplikacje, które są już w sklepie lub na urządzeniach użytkowników wywołujących to usunięte API, nie będą już dostępne
zwrócił identyfikator UDID. Zamiast tego -[UIDevice unikatowyIdentyfikator] zwróci 40-znakowy ciąg
zaczynając od FFFFFFFF, po którym następuje wartość szesnastkowa -[identyfikator UIDeviceForVendor]. To jest
ważne jest, aby rozważyć, jak wpłynie to na istniejące aplikacje. Rozważam przesłanie aktualizacji, że nie
dłuższy dostęp do identyfikatora UDID.
iOS żąda teraz zgody użytkownika, aby aplikacje mogły korzystać z wejścia audio na wszystkich urządzeniach z systemem iOS 7. Dla urządzeń sprzedawanych w
W Chinach system iOS będzie również wymagał zgody użytkownika na korzystanie przez aplikacje ze sprzętu aparatu. Operacyjny
system wyświetli alert dotyczący zgody po ustawieniu kategorii tworzonej instancji
Sesja AVAudio. Kategorie AVAudioSession, które będą prezentować alert, to
AVAudioSessionCategoryRecord i AVAudioSessionCategoryPlayAndRecord.
Jeśli użytkownik nie zezwoli na dostęp, dane sesji audio będą same zera (cisza). Dla urządzeń, gdzie
Użytkownik żąda dostępu do kamery i odmawia mu dostępu, podczas sesji przechwytywania wideo wyświetlany jest czarny ekran.
API gethostuuid() zostało usunięte i nie będzie przyjęte do przesłania do sklepu,
niezależnie od docelowego systemu operacyjnego. W przypadku istniejących aplikacji działających w systemie iOS 7 funkcja zwróci uuid_t
reprezentacja identyfikatora dostawcy (-[IDevice IdentyfikatorForVendor]).
ustawienie
Naprawiono w Seed 5
Asystent konfiguracji może ulec awarii podczas konfigurowania nowego urządzenia z istniejącym adresem e-mail.
Siri
Uwagi
To ziarno zawiera wersje rozwojowe nowych męskich i żeńskich głosów Siri dla języka angielskiego, francuskiego, amerykańskiego i
i niemieckim.
Obserwuj Nas
Uwagi
Przez iOS 6, gdy używasz TWTweetComposeViewController i SLComposeViewController
(ten ostatni tylko dla Twittera i Weibo, ale nie Facebooka), jeśli osoba dzwoniąca poda:
FinishingHandler, dostarczony zakończeniuHandler jest odpowiedzialny za odrzucenie widoku
kontroler. Począwszy od systemu iOS 7, jeśli aplikacja łączy się z zestawem SDK systemu iOS 7, kontroler widoku sam się odrzuci
nawet jeśli osoba wywołująca dostarczy metodę uzupełniania. Aby tego uniknąć, funkcja kompletacji obiektu wywołującego
nie powinien zamykać kontrolera widoku.
W przypadku korzystania z pakietu SDK dla systemu iOS 6.1 w systemie OS X 10.8 Mountain Lion, jeśli korzystasz z wersji iOS 5.0 lub iOS 5.1 Legacy
SDK w symulatorze iOS, nie będziesz mógł korzystać z funkcji Twittera: próba zalogowania się do Twittera
za pośrednictwem panelu Ustawienia zakończy się niepowodzeniem, a Twitter.framework nie będzie działać poprawnie. Jeśli potrzebujesz przetestować
Twitter, musisz wybrać miejsce docelowe uruchomienia symulatora iOS 6.1 lub iOS 6.0, lub
możesz przetestować z systemem iOS 5.x na urządzeniu Springboard
Uwagi
Aktywne dotknięcia nie są już anulowane, gdy użytkownik robi zrzut ekranu.
Dynamiczna tapeta nie jest dostępna na iPhonie 4.
Zestaw Sprite'a
Uwagi
+[AVPlayer playerWithPlayerItem:] zwraca obiekt AVPlayer, ale bieżący element zostanie zwrócony
nil, jeśli gracz został utworzony w innym wątku.
Sklepy
Naprawiono w Seed 5
Niektóre urządzenia iPhone 4 nie mogą pobierać treści ze sklepów App Store i iTunes Store.
Znane problemy
Pobieranie aplikacji może utknąć w stanie „Oczekiwanie”.
Rozwiązanie: Uruchom ponownie urządzenie raz lub dwa razy, aby rozwiązać problem i umożliwić kolejne pobieranie
aby kontynuować.
UIKit
Uwagi
Przed wersją 4 interfejs API migawek (snapshotView i
resizableSnapshotViewFromRect:withCapInsets:) odroczy wykonanie migawki, jeśli widok
nigdy nie zostały zatwierdzone lub zostały dodane do hierarchii widoków w bieżącej transakcji. Ten
zachowanie się zmieniło.
Migawki teraz zawsze reprezentują bieżący, zatwierdzony stan widoku. Próbuję wykonać migawkę
widok, który nigdy nie został zatwierdzony, rejestruje komunikat i teraz zwraca zero.
Metody tworzenia migawek zostały zaktualizowane i teraz przyjmują argument: afterUpdates. Po ustawieniu na
TAK, powoduje to, że migawka ma czekać, aż zostaną wprowadzone wszystkie oczekujące zmiany w hierarchii
zaangażowany. Aby zachować zachowanie sprzed Seed 4, przekaż NO, a migawka uchwyci, co to jest
aktualnie na ekranie. Więcej szczegółów znajdziesz w UIView.h.
Jeśli w układzie paska nawigacji nie ma wystarczającej ilości miejsca na pełny tekst tytułu przycisku Wstecz,
pasek nawigacyjny zastąpi ogólny krótki tytuł (w języku angielskim „Wstecz”). Jeśli nawet ten ciąg jest
za długi, na pasku pojawi się jodełka wskaźnika tylnego bez tytułu.
+[UIPasteboard pasteboardWithName:create:] i +[UIPasteboard
pasteboardWithUniqueName] teraz unikatowa podana nazwa, aby zezwalać tylko tym aplikacjom na to samo
grupę aplikacji, aby uzyskać dostęp do obszaru roboczego. Jeśli programista spróbuje utworzyć obszar roboczy z plikiem
nazwę, która już istnieje i nie są częścią tego samego pakietu aplikacji, otrzymają swój własny, unikalny i prywatny pulpit. Należy pamiętać, że nie ma to ogólnie wpływu na dostarczone przez system tektury,
i znajdź.
Począwszy od Seed 2, aplikacje domyślnie korzystają z nowego zarządzania paskami stanu opartego na kontrolerze widoku
system. Aby z tego zrezygnować, dodaj wartość NIE dla
Klucz UIViewControllerBasedStatusBarAppearance do pliku Info.plist.
Jeśli używasz układu automatycznego do pozycjonowania przycisku UIButton, jeśli ustawisz odporność na kompresję zawartości lub
priorytet przytulania treści ustawiony na minimum, przycisk będzie miał niejednoznaczny układ.
Rozwiązanie: nie używaj priorytetu odporności na kompresję treści ani priorytetu przytulania treści mniejszego niż
2 dla UIButton.
UIScreenEdgePanGestureRecognizer umożliwia wykonywanie działań w odpowiedzi na przesunięcia
krawędzi ekranu, korzystając z tej samej heurystyki, której system używa do własnych gestów. Użyj tego
jeśli masz własną semantykę nawigacji, która nie używa UINavigationController, ale
powinien zawierać ten gest (np. Safari).
Ten moduł rozpoznawania gestów ma właściwość opisującą krawędzie, na których jest aktywny. UIRectEdge jest
nowy typ wyliczeniowy, który może zapewnić ta właściwość i -[UIViewController EdgeForExtendedLayout].
udział. UIRectEdge zastępuje UIExtendedEdge, który zostanie usunięty. Członkowie obu mają
te same wartości. Użyj Xcode, aby zastąpić wszystkie wystąpienia „UIExtendedEdge” w swoim projekcie
„UIRectEdge”.
UIButtonTypeInfoLight, UIButtonTypeInfoDark i UIButtonTypeDetailDisclosure
wszystkie przyciski wyglądają tak samo.
Rozmyte warstwy nie są dostępne na iPhonie 4.
Paralaksa nie jest dostępna na iPhonie 4.
Tekst typograficzny nie jest dostępny na iPhonie 4.
Naprawiono w Seed 5
Interfejs Twojej aplikacji może się nieznacznie zmienić po użyciu odtwarzacza multimedialnego w trybie poziomym.
Znane problemy
Pola haseł nie są wyświetlane w widokach alertów dla aplikacji w orientacji poziomej (na przykład Game Center
uwierzytelnianie lub zakup w aplikacji). Wprowadzanie tekstu nadal działa, chociaż nie widzisz, co piszesz.
Pogoda
Uwagi
Warunki pogodowe nie są animowane na iPhonie 4.
WebKit
Uwagi
Poprzednio, gdy modyfikowano parametry rzutni, stare parametry nigdy nie były odrzucane.
Spowodowało to, że parametry rzutni były addytywne.
Na przykład, jeśli zacząłeś od szerokości=szerokość-urządzenia, a następnie zmieniłeś ją na początkową skalę=1.0,
skończyło się na obliczonej rzutni o szerokości = szerokość urządzenia, skala początkowa = 1.0. W iOS 7 rozwiązano ten problem. Teraz otrzymujesz obliczoną rzutnię o początkowej skali = 1.0.
Wcześniej podczas używaniaThe
Skala może być nieprawidłowa po obróceniu.
Teraz, jeśli użytkownik nie przeskalował strony jawnie, strona zostanie przywrócona do początkowej skali. Również,
bieżąca skala jest teraz prawidłowo ograniczona w granicach skali minimalnej i maksymalnej.
Niektóre obrazy na urządzeniach wyświetlających Retina zamiast być wyświetlane są dwa razy większe niż powinny
zmniejszone o 50%. Ten problem może również wystąpić w przypadku dowolnego skalowanego obrazu, który jest większy niż jego rozmiar
kontener i który używa właściwości rozmiaru tła lub rozmiaru tła -webkit
nieruchomość. Ten problem dotyczy zarówno aplikacji natywnych wyświetlających treści internetowe, jak i przeglądanych stron internetowych
Safari na iPhone'a.
Skrócona właściwość CSS tła resetuje teraz wartość właściwości rozmiaru tła
auto, gdy nie określono rozmiaru tła. To nowe zachowanie jest zgodne ze specyfikacją CSS i starą
zachowanie jest dostępne tylko w przypadku aplikacji połączonych z pakietem SDK w wersji wcześniejszej niż iOS 7.0, gdy działają one w systemie iOS 7 lub nowszym.
Obejście: Określ właściwość rozmiar tła lub właściwość -webkit-background-size
po skróconej właściwości tła w arkuszu stylów CSS dla treści internetowej
wystawiany.
Aplikacje internetowe i klipy internetowe utworzone przed wersją Seed 4 nie pozostaną w folderach po ponownym uruchomieniu.
Rozwiązanie: Usuń starą aplikację internetową lub klip internetowy i utwórz ją ponownie w tym zarodku, ładując zawartość
w przeglądarce Safari, dotykając przycisku akcji, a następnie „Dodaj do ekranu głównego”.
Wi-Fi
Uwagi
Seed 4 i nowsze wersje zawierają zmiany w AWDL w taki sposób, że technologie z niego korzystające — takie jak AirDrop i
Interfejsy API MultiPeerConnectivity — nie będą działać poprawnie ze starszymi nasionami.