Wijzigingenlogboek voor iOS 7 bèta 6

  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:

  1. Installeer iOS 7 bèta 6.
  2. Installeer het configuratieprofiel ResetMusicAndVideosLibraries vanuit het iOS Dev Center.
  3. Tik in Instellingen > Muziek op de knop Mediabibliotheek opnieuw instellen.
  4. 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 app AVAudioSession 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 gebruiken kMDItemContentTypeTree 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 vormt MKMapView 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 gebruiken renderInContext, gebruik de nieuwe MKMapSnapshotter 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 **)fout

    Deze 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))completionHandler

    De 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 *)progress

    De 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 *)error

  • MCAdvertiserAssistant is een gemaksklasse voor het implementeren van een adverteerder, die uitnodigingen en verbindingen met een MCSession.
  • MCSession heeft een nieuwe initWithPeer: methode.
  • sendResource heeft "met" toegevoegd aan de completionHandler.
  • 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) en ioctl (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 instellen state->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 en minor toetsen zijn onafhankelijk variabel optioneel naast proximityUUID (vereist) in elk woordenboek in de beacons 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 de PKPassLibraryAddPassesStatus 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 insteltAVAudioSession. De AVAudioSession categorieën waarvoor de waarschuwing wordt weergegeven, zijn AVAudioSessionCategoryRecord en AVAudioSessionCategoryPlayAndRecord.

    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 en SLComposeViewController (deze laatste alleen voor Twitter en Weibo, maar niet voor Facebook), als de beller een completionHandler, de meegeleverde completionHandler 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 een completionHandler. Om dit te voorkomen, moet de beller completionHandler 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 een AVPlayer 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 en resizableSnapshotViewFromRect: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. EER UIView.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 UIButtonAls 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 gebruikt UINavigationControllermaar 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 vervangt UIExtendedEdge, 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".

  • UIButtonTypeInfoLightUIButtonTypeInfoDark en UIButtonTypeDetailDisclosure 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-scalemax-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-sizeeigendom. 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 de background-size eigendom aan auto 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 de background 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.