De "verrassings" lancering a iOS beta 7 6 van Apple heeft vooral betrekking op het oplossen van systeemproblemen iTunes in de cloud, waarbij de rest van de wijzigingen klein zijn en verschillende mechanismen van het besturingssysteem beïnvloeden. Dit is de kortste changelog gepubliceerd door Apple voor elke bètaversie van het besturingssysteem, dus verwacht niet veel nieuws.
Introductie
iOS SDK 7.0 biedt ondersteuning voor het ontwikkelen van iOS-apps en bevat de complete set Xcode-tools, compilers en frameworks voor het maken van apps voor iOS en OS X. Deze tools omvatten onder meer de Xcode IDE en de Instruments-analysetool.
Met deze software kun je apps ontwikkelen voor iPhone, iPad of iPod touch met iOS 7. Je kunt je apps ook testen met de meegeleverde iOS Simulator, die iOS 7 ondersteunt. iOS SDK 7.0 vereist een Mac-computer met OS X v10.8.4 ( Bergleeuw) of later.
Deze versie van iOS is uitsluitend bedoeld voor installatie op apparaten die zijn geregistreerd bij het Apple Developer Program. Als u probeert deze versie van iOS op een ongeautoriseerde manier te installeren, kan uw apparaat in een onbruikbare staat terechtkomen.
Ga voor meer informatie en aanvullende ondersteuningsbronnen naar http://developer.apple.com/programs/ios/.
Bugrapportage
Om eventuele bugs te melden die niet in de Opmerkingen en bekende problemen sectie, gebruik dan de Apple Bug Reporter op de Apple Developer-website (http://developer.apple.com/bugreporter/). Bovendien kunt u deze problemen en iOS SDK 7.0 bespreken op de Apple Developer Forums:http://devforums.apple.com. Ga voor meer informatie over iCloud voor ontwikkelaars naar http://developer.apple.com/icloud.
Belangrijke informatie over muziek- en videobibliotheken
Deze update verhelpt een probleem met iTunes in de cloud, waarbij sommige aankopen onverwachte items kunnen downloaden of afspelen. Als u apparaten heeft waarop eerdere versies van iOS 7 bèta draaien, moet u het volgende doen:
- Installeer iOS 7 bèta 6.
- Installeer het configuratieprofiel ResetMusicAndVideosLibraries vanuit het iOS Dev Center.
- Tik in Instellingen > Muziek op de knop Mediabibliotheek opnieuw instellen.
- Start het apparaat opnieuw op.
Opmerkingen en bekende problemen
De volgende problemen hebben betrekking op het gebruik van iOS SDK 7.0 om code te ontwikkelen.
adresboek
Opmerkingen
- De lessen in de
AddressBookUI
raamwerk staat nu expliciet subklassen niet toe. Voor apps die zijn gekoppeld aan de iOS 7 SDK, levert een poging om een subklasse van een van deze klassen te initialiseren nul op. Voor apps die zijn gekoppeld aan oudere SDK's is de enige gedragsverandering een waarschuwing die in de console wordt geregistreerd.- Vanaf Seed 4 is er privacyondersteuning voor de
AddressBookUI
framework is opnieuw ingeschakeld voor apps die zijn gekoppeld aan de iOS 7 SDK. Apps die zijn gekoppeld aan oudere SDK's worden niet gewijzigd. Als uw app een van de adresboekweergavecontrollers gebruikt, moet u controleren of deze zich nog steeds naar verwachting gedraagt.AirDrop
Opmerkingen
- AirDrop in iOS 7 Seed 2 of hoger is niet compatibel met AirDrop in iOS 7 Seed 1.
- Contacten Alleen ondersteuning vereist dat:
- U bent ingelogd bij iCloud.
- De afzender en ontvanger hebben elkaars Apple ID-e-mailadressen in Contacten op hun apparaten.
Stichting AV
Opmerkingen
AVCaptureSession
maakt nu gebruik van uw appAVAudioSession
standaard.Kernanimatie
Opmerkingen
Wanneer de
UIViewGroupOpacity
sleutel niet aanwezig is, is de standaardwaarde nu JA. De standaardinstelling was voorheen NEE.Dit betekent dat deelaanzichten van een transparant aanzicht eerst op dat transparante aanzicht worden samengesteld, waarna de vooraf samengestelde subboom als geheel op de achtergrond wordt getekend. Een NEE-instelling resulteert in minder dure, maar ook minder nauwkeurige compositie: elke weergave in de transparante subboom wordt samengesteld op wat eronder staat, volgens de dekking van de ouder, in de normale algoritmevolgorde van de schilder.
uitwisseling
Opmerkingen
In Seed 4 en hoger is de Exchange DeviceIdentifier terug gewijzigd naar het gedrag van iOS 6, waarbij het serienummer wordt gebruikt.
fonts
Opmerkingen
In Seed 4 zijn nieuwe lettertypelijnhoogten geïntroduceerd. Als u uw lettertype in eerdere Seeds handmatig had uitgelijnd, kan het in latere Seeds iets verticaal omhoog bewegen.
Foundation
Opmerkingen
- An
NSMetadataQuery
met alomtegenwoordige reikwijdte kan nu gebruikenkMDItemContentTypeTree
in predikaten. Bijvoorbeeld:
NSPredicate *p = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"kMDItemContentTypeTree"] rightExpression:[NSExpression expressionForConstantValue:@"public.rtf"] modifier: NSAnyPredicateModifier type:NSLikePredicateOperatorType opties:0];- Wanneer een beroep wordt gedaan op resultaten die worden geretourneerd door zoekopdrachten met een alomtegenwoordig bereik,
-[NSMetadataItem valueForAttribute:NSMetadataItemDisplayNameKey]
produceert nu dezelfde waarde als-[NSURL getResourceValue: forKey: NSURLLocalizedNameKey]
, passend bij niet-alomtegenwoordige zoekopdrachten.iCloud
Opmerkingen
- Als u iCloud-sleutelhanger gebruikt met herstel, ziet u mogelijk een dialoogvenster dat aangeeft dat herstel is uitgeschakeld vanwege een serverwijziging. Dit is opzettelijk. Volg de instructies in de melding om de functionaliteit weer in te schakelen. Als u meerdere waarschuwingen ziet of problemen constateert met het opnieuw inschakelen van herstel, dient u een bugrapport in.
- iCloud-sleutelhanger in iOS 7 Seed 3 of hoger is niet achterwaarts compatibel met iOS 7 Seed 2 of OS X Mavericks Seed 2.
Als u iCloud-sleutelhanger en/of sleutelhangerherstel had ingeschakeld vanaf iOS 7 Seed 2, worden beide functies uitgeschakeld bij het updaten naar iOS 7 Seed 3 of later.
Ga na het updaten naar iOS 7 Seed 3 of hoger naar Instellingen > iCloud > Sleutelhanger en schakel iCloud-sleutelhanger opnieuw in op uw apparaten.
Zie OS X v10.9 Releaseopmerkingen voor meer details.
- Activeringsslot, een nieuwe functie van Zoek mijn iPhone, wordt automatisch ingeschakeld wanneer Zoek mijn iPhone is ingeschakeld op elk apparaat met iOS 7. Activeringsslot vereist dat gebruikers hun Apple ID en wachtwoord invoeren om Zoek mijn iPhone uit te schakelen, uit te loggen bij iCloud , het apparaat wissen of het apparaat na het wissen opnieuw activeren. Het is belangrijk om een van de volgende handelingen uit te voeren voordat u een apparaat overdraagt aan een nieuwe gebruiker:
- Meld u af bij iCloud.
- Schakel Activeringsslot uit in Instellingen > iCloud > Zoek mijn iPhone.
bekende problemen
Wachtwoordvelden worden niet weergegeven in waarschuwingsweergaven voor apps in liggende modus (bijvoorbeeld Game Center-verificatie of in-app-aankoop). Tekstinvoer werkt nog steeds, hoewel u niet kunt zien wat u typt.
MAPK
Opmerkingen
Als de oproepen naar
renderInContext
op de laag die een steunlaag vormtMKMapView
buiten de hoofddraad zijn gemaakt, moeten ze worden geëlimineerd of naar de hoofddraad worden verplaatst. Als u dit niet doet, kan dit een app-crash veroorzaken. In plaats van gebruikenrenderInContext
, gebruik de nieuweMKMapSnapshotter
API's.Media
Opmerkingen
iOS onthoudt nu de laatst gebruikte media-app tijdens het opnieuw opstarten en crashen van de app. Media-apps die afstandsbedieningsgebeurtenissen kunnen ontvangen, moeten voorbereid zijn om op de achtergrond te worden gestart en mogelijk een afstandsbedieningsgebeurtenis te ontvangen om het afspelen te starten. Bovendien is het belangrijk dat media-apps de resetgebeurtenis van de mediaserver controleren en afhandelen, omdat de media-app mogelijk een extern verzoek ontvangt om het afspelen te hervatten na een reset. Meldingen om deze mediaservergebeurtenissen te controleren zijn beschikbaar in
AVAudioSession
en correcte afhandeling wordt beschreven in Algemene aanbevelingen voor het omgaan met kAudioSessionProperty_ServerDied.Multipeer-connectiviteit
Opmerkingen
De
MCSession
API's functioneren zoals ze werden gepresenteerd op WWDC. Belangrijke veranderingen en verbeteringen zijn onder meer:
- De volgende nieuwe methode is ingeschakeld
MCSession
Is geïmplementeerd:
- (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID-fout:(NSError **)foutDeze gedelegeerde methode is geïmplementeerd:
- (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID- De volgende nieuwe methode is ingeschakeld
MCSession
Is geïmplementeerd:
- (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandlerDe gedelegeerde methode om te beginnen met het ontvangen van een bron van een externe peer is geïmplementeerd als:
- (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progressDe gedelegeerde methode om het ontvangen van een bron van een externe peer te voltooien en de inhoud op een tijdelijke locatie op te slaan, wordt als volgt geïmplementeerd:
- (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)errorMCAdvertiserAssistant
is een gemaksklasse voor het implementeren van een adverteerder, die uitnodigingen en verbindingen met eenMCSession
.MCSession
heeft een nieuweinitWithPeer:
methode.sendResource
heeft "met" toegevoegd aan decompletionHandler
.- De time-out is verwijderd uit
connectPeer:withNearbyConnectionData
.Bekijk voor meer informatie over deze API's de video voor WWDC 2013 Session 708, "Nearby Networking with Multipeer Connectivity".
multitasking
Opmerkingen
AVAudioSession
kan niet langer actief worden door apps op de achtergrond die worden geactiveerd vanwege gebeurtenissen op de achtergrond ophalen, achtergrondoverdrachten en externe meldingen.- Het beleid voor de taakvoltooiings-API is weer gewijzigd om overeen te komen met het iOS 6-gedrag, maar de tijdslimiet voor het voltooien van taken is verlaagd van 10 minuten in iOS 6.
Netwerken
Opmerkingen
- De cellulaire fallback-technologie die aanwezig was in eerdere zaden is verwijderd vanaf Seed 5.
- Twee low-level netwerk-API's die vroeger een MAC-adres retourneerden, retourneren nu de vaste waarde 02:00:00:00:00:00. De betreffende API's hebben dat wel
sysctl (NET_RT_IFLIST)
enioctl (SIOCGIFCONF)
. Ontwikkelaars die de waarde van het MAC-adres gebruiken, moeten migreren naar ID's zoals-[UIDevice identifierForVendor]
. Deze wijziging is van invloed op alle apps die op iOS 7 draaien.Doelstelling-C Runtime
Opmerkingen
Als gevolg van veranderingen in de manier waarop de
isa
veld is geïmplementeerd,*self
kan veranderen tijdens de opsomming (bijvoorbeeld als de container behouden blijft).Oplossing: bij de implementatie
countByEnumeratingWithState
, niet instellenstate->mutationsPtr = self
.Rekening-courantboekje
Opmerkingen
- Vanaf iOS 7 Seed 4 heeft Passbook ondersteuning toegevoegd voor de grote en kleine velden om beter aan te sluiten bij de rest van het iBeacon-ecosysteem. De nieuwe
major
enminor
toetsen zijn onafhankelijk variabel optioneel naastproximityUUID
(vereist) in elk woordenboek in debeacons
matrix.- In eerdere versies van de iOS SDK valideerde Passbook de achterste velden van passen niet volledig. De validatieregels zijn niet veranderd, maar de validatie omvat nu ook back-velden. Controleer het consolelogboek voor aanvullende logboeken.
- Vanaf iOS 7 Seed 3,
PKPassLibraryDidCancelAddPasses
is een nieuwe statuscode in dePKPassLibraryAddPassesStatus
opsomming. Het betekent dat de gebruiker op Annuleren heeft getikt in een waarschuwing voor het toevoegen van passen.Foto's
Opmerkingen
Bij het upgraden van een eerder zaadje verschijnen de fotominiaturen in de Foto's-app een tijdje niet.
Security
Opmerkingen
-[UIDevice uniqueIdentifier]
wordt niet langer geaccepteerd in inzendingen voor de App Store. In iOS 7 krijgen apps die al in de winkel staan of op apparaten van gebruikers die deze verwijderde API aanroepen, niet langer de UDID terug. In plaats van,-[UIDevice uniqueIdentifier]
retourneert een reeks van 40 tekens, beginnend met FFFFFFFF, gevolgd door de hexadecimale waarde van-[UIDevice identifierForVendor]
. Het is belangrijk om te overwegen welke gevolgen dit voor bestaande apps zal hebben. Ik overweeg om updates in te dienen die geen toegang meer hebben tot de UDID.- iOS vraagt nu toestemming van gebruikers om apps audio-invoer te laten gebruiken op alle iOS 7-apparaten. Voor apparaten die in China worden verkocht, zal iOS ook toestemming van de gebruiker vragen om apps de camerahardware te laten gebruiken. Het besturingssysteem zal de toestemmingswaarschuwing weergeven wanneer u de categorie van de geïnstantieerde instelt
AVAudioSession
. DeAVAudioSession
categorieën waarvoor de waarschuwing wordt weergegeven, zijnAVAudioSessionCategoryRecord
enAVAudioSessionCategoryPlayAndRecord
.Als de gebruiker geen toegang toestaat, zijn de gegevens van de audiosessie allemaal nullen (stilte). Voor apparaten waarbij cameratoegang wordt gevraagd en geweigerd door de gebruiker, is de video-opnamesessie een zwart scherm.
- De API
gethostuuid()
is verwijderd en wordt niet geaccepteerd voor verzending naar de winkel, ongeacht het beoogde besturingssysteem. Voor bestaande apps die op iOS 7 draaien, retourneert de functie een uuid_t-weergave van de leveranciers-ID (-[UIDevice identifierForVendor]
).Siri
Opmerkingen
Dit zaad bevat ontwikkelingsversies van nieuwe mannelijke en vrouwelijke Siri-stemmen voor Amerikaans Engels, Frans en Duits.
Social
Opmerkingen
- Via iOS 6, bij gebruik
TWTweetComposeViewController
enSLComposeViewController
(deze laatste alleen voor Twitter en Weibo, maar niet voor Facebook), als de beller eencompletionHandler
, de meegeleverdecompletionHandler
is verantwoordelijk voor het ontslaan van de weergavecontroller. Vanaf iOS 7 zal de weergavecontroller zichzelf negeren als de app verbinding maakt met de iOS 7 SDK, zelfs als de beller eencompletionHandler
. Om dit te voorkomen, moet de bellercompletionHandler
mag de weergavecontroller niet negeren.- Als u de iOS 6.1 SDK op OS X v10.8 Mountain Lion gebruikt en de iOS 5.0 of iOS 5.1 Legacy SDK in iOS Simulator gebruikt, kunt u de functies van Twitter niet gebruiken: proberen in te loggen bij Twitter via het paneel Instellingen zal mislukken, en
Twitter.framework
zal niet correct werken. Als je Twitter-functies wilt testen, moet je een iOS 6.1- of iOS 6.0 Simulator-runbestemming kiezen, of je kunt testen met iOS 5.x op een apparaat.Springplank
Opmerkingen
- Actieve aanrakingen worden niet langer geannuleerd wanneer de gebruiker een screenshot maakt.
- Dynamische achtergrond is niet beschikbaar op iPhone 4.
Sprite-kit
Opmerkingen
+[AVPlayer playerWithPlayerItem:]
geeft eenAVPlayer
object, maar het huidige item zal nul retourneren als de speler op een andere thread is gemaakt.Winkels
bekende problemen
App-downloads kunnen vastlopen in de status 'Wachten'.
Tijdelijke oplossing: Start uw apparaat een of twee keer opnieuw op om het probleem op te lossen en de volgende downloads door te laten gaan.
UIKit
Opmerkingen
- Vóór Seed 4 was de snapshot-API (
snapshotView
enresizableSnapshotViewFromRect:withCapInsets:
) zou het maken van de momentopname uitstellen als de weergave nooit was vastgelegd of aan de weergavehiërarchie in de huidige transactie was toegevoegd. Dit gedrag is veranderd.Momentopnamen vertegenwoordigen nu altijd de huidige, vastgelegde status van de weergave. Pogingen om een momentopname te maken van een weergave die nog nooit is vastgelegd, logt een bericht en retourneert nu nul.
- De methoden voor het maken van momentopnamen zijn bijgewerkt en hebben nu een argument:
afterUpdates
. Indien ingesteld op JA, geeft dit de momentopname de opdracht te wachten totdat alle openstaande wijzigingen in de hiërarchie zijn vastgelegd. Om het pre-Seed 4-gedrag te behouden, geeft u NO door en de momentopname legt vast wat er momenteel op het scherm staat. EERUIView.h
voor meer details.- Als er niet genoeg ruimte is in de lay-out van de navigatiebalk voor de volledige tekst van de titel van de knop Vorige, vervangt de navigatiebalk een generieke korte titel terug (in het Engels: "Terug"). Als zelfs die string te lang is, zal de balk de back indicator chevron zonder titel tonen.
+[UIPasteboard pasteboardWithName:create:]
en+[UIPasteboard pasteboardWithUniqueName]
maak nu de opgegeven naam uniek, zodat alleen die apps in dezelfde applicatiegroep toegang hebben tot het plakbord. Als de ontwikkelaar probeert een plakbord te maken met een naam die al bestaat en deze geen deel uitmaakt van dezelfde appsuite, krijgt hij zijn eigen unieke en privé-plakbord. Merk op dat dit geen invloed heeft op de door het systeem geleverde plakborden, algemeen en zoeken.- Vanaf Seed 2 gebruiken apps standaard het nieuwe, op de viewcontroller gebaseerde statusbalkbeheersysteem. Als u zich hiervoor wilt afmelden, voegt u de waarde NO toe voor de
UIViewControllerBasedStatusBarAppearance
sleutel tot uw Info.plist.- Wanneer u Automatische lay-out gebruikt om a
UIButton
Als u de compressieweerstand van de inhoud of de prioriteit voor inhoudknuffelen op minimaal instelt, heeft de knop een dubbelzinnige lay-out.Tijdelijke oplossing: gebruik geen inhoudscompressieweerstand of inhoudsknuffelprioriteit van minder dan 2 voor
UIButton
.UIScreenEdgePanGestureRecognizer
Hiermee kunt u acties uitvoeren als reactie op veegbewegingen over de rand van het scherm met behulp van dezelfde heuristieken die het systeem gebruikt voor zijn eigen gebaren. Gebruik dit als u zelf een semantische navigatie heeft die deze niet gebruiktUINavigationController
maar zou dit gebaar moeten bevatten (bijvoorbeeld Safari).Deze gebarenherkenner heeft een eigenschap die de randen beschrijft waarop hij actief is.
UIRectEdge
is een nieuw enumtype dat deze eigenschap en-[UIViewController edgesForExtendedLayout]
kan delen.UIRectEdge
vervangtUIExtendedEdge
, die zal worden verwijderd. De leden van beide hebben dezelfde waarden. Gebruik Xcode om alle exemplaren van "UIExtendedEdge" in uw project te vervangen door "UIRectEdge".UIButtonTypeInfoLight
,UIButtonTypeInfoDark
enUIButtonTypeDetailDisclosure
knoppen zien er allemaal hetzelfde uit.- Wazige lagen zijn niet beschikbaar op iPhone 4.
- Parallax is niet beschikbaar op iPhone 4.
- Boekdruktekst is niet beschikbaar op iPhone 4.
bekende problemen
Wachtwoordvelden worden niet weergegeven in waarschuwingsweergaven voor apps in liggende modus (bijvoorbeeld Game Center-verificatie of in-app-aankoop). Tekstinvoer werkt nog steeds, hoewel u niet kunt zien wat u typt.
Weer
Opmerkingen
Weersomstandigheden zijn niet geanimeerd op iPhone 4.
WebKit
Opmerkingen
- Voorheen werden bij het wijzigen van de viewport-parameters de oude parameters nooit weggegooid. Dit zorgde ervoor dat de viewport-parameters additief waren.
Als u bijvoorbeeld bent begonnen met width=device-width en dit vervolgens hebt gewijzigd in initial-scale=1.0, kreeg u uiteindelijk een berekende viewport van width=device-width, initial-scale=1.0.
In iOS 7 is dit aangepakt. Nu krijg je een berekende viewport met initiële schaal = 1.0.
- Vroeger, bij gebruik , kan de schaal na rotatie onjuist zijn.
Als een gebruiker de pagina nu niet expliciet heeft geschaald, wordt de pagina hersteld naar de oorspronkelijke schaal. Ook is de huidige schaal nu correct beperkt binnen de
min-scale
,max-scale
grenzen.- Sommige afbeeldingen voor Retina-weergaveapparaten worden twee keer zo groot weergegeven als ze zouden moeten zijn, in plaats van dat ze 50% zijn verkleind. Dit probleem kan zich ook voordoen bij elke afbeelding die moet worden geschaald en die groter is dan de container en die gebruikmaakt van de
background-size
eigendom of de-webkit-background-size
eigendom. Dit probleem treft zowel native apps die webinhoud weergeven als webpagina's die worden bekeken in Safari voor iPhone.De
background
CSS-steno-eigenschap reset nu de waarde van debackground-size
eigendom aanauto
wanneer de achtergrondgrootte niet is opgegeven. Dit nieuwe gedrag komt overeen met de CSS-specificaties en het oude gedrag is alleen beschikbaar voor apps die aan een SDK zijn gekoppeld vóór iOS 7.0 en die draaien op iOS 7 of hoger.Tijdelijke oplossing: specificeer de
background-size
eigendom of de-webkit-background-size
eigendom na debackground
steno-eigenschap in het CSS-stylesheet voor de webinhoud die wordt weergegeven.- Webapps en webclips die vóór Seed 4 zijn gemaakt, blijven niet in mappen staan tijdens het opnieuw opstarten.
Tijdelijke oplossing: verwijder de oude webapp of webclip en maak deze opnieuw in dit zaad door de inhoud in Safari te laden, op de actieknop te tikken en vervolgens op 'Toevoegen aan startscherm'.
Wi-Fi
Opmerkingen
Seed 4 en later bevatten wijzigingen in AWDL, zodat technologieën die er gebruik van maken, zoals AirDrop en de MultiPeerConnectivity API's, niet goed zullen werken met oudere Seeds.