iOS 7 beta 6 ändringslogg

  Lanseringen av "överraskning". a iOS beta 7 6 av Apple är främst relaterad till att lösa systemproblem iTunes i molnet, resten av ändringarna är mindre och påverkar olika mekanismer i operativsystemet. Detta är den kortaste ändringsloggen publicerad av Apple för alla betaversioner av dess operativsystem, så förvänta dig inte mycket nyheter.

Beskrivning

iOS SDK 7.0 ger stöd för att utveckla iOS-appar, och det inkluderar den kompletta uppsättningen Xcode-verktyg, kompilatorer och ramverk för att skapa appar för iOS och OS X. Dessa verktyg inkluderar Xcode IDE och Instruments analysverktyg, bland många andra.

Med denna programvara kan du utveckla appar för iPhone, iPad eller iPod touch som kör iOS 7. Du kan också testa dina appar med den medföljande iOS Simulator, som stöder iOS 7. iOS SDK 7.0 kräver en Mac-dator som kör OS X v10.8.4 ( Mountain Lion) eller senare.

Den här versionen av iOS är endast avsedd för installation på enheter som är registrerade med Apples utvecklarprogram. Om du försöker installera den här versionen av iOS på ett obehörigt sätt kan din enhet bli oanvändbar.

För mer information och ytterligare supportresurser, besök http://developer.apple.com/programs/ios/.

Bug Reporting

För att rapportera eventuella buggar som inte nämns i Anteckningar och kända problem avsnittet, använd Apple Bug Reporter på Apple Developer-webbplatsen (http://developer.apple.com/bugreporter/). Dessutom kan du diskutera dessa frågor och iOS SDK 7.0 i Apples utvecklarforum:http://devforums.apple.com. För att få mer information om iCloud for Developers, gå till http://developer.apple.com/icloud.

Viktig information om musik- och videobibliotek

Den här uppdateringen åtgärdar ett problem med iTunes i molnet, där vissa köp kan ladda ner eller spela upp oväntade objekt. Om du har några enheter som kör tidigare versioner av iOS 7 beta, bör du:

  1. Installera iOS 7 beta 6.
  2. Installera ResetMusicAndVideosLibraries-konfigurationsprofilen från iOS Dev Center.
  3. Från Inställningar > Musik, tryck på knappen Återställ mediabibliotek.
  4. Starta om enheten.

Anteckningar och kända problem

Följande problem gäller att använda iOS SDK 7.0 för att utveckla kod.

adressbok

Anmärkningar

  • Klasserna i AddressBookUI ramverket tillåter nu uttryckligen underklassning. För appar som är länkade mot iOS 7 SDK, ger ett försök att initiera en underklass av en av dessa klasser noll. För appar som är länkade mot äldre SDK:er är den enda beteendeändringen en varning som loggas till konsolen.
  • Från och med Seed 4, integritetsstöd för AddressBookUI ramverk är återaktiverat för appar länkade mot iOS 7 SDK. Appar som är länkade mot äldre SDK:er ändras inte. Om din app använder någon av vykontrollerna för adressboken bör du verifiera att den fortfarande fungerar som förväntat.

LUFTLANDSÄTTNING

Anmärkningar

  • AirDrop i iOS 7 Seed 2 eller senare är inte kompatibelt med AirDrop i iOS 7 Seed 1.
  • Support endast för kontakter kräver att:
    • Du är inloggad på iCloud.
    • Avsändaren och mottagaren har varandras Apple ID-e-postadresser i Kontakter på sina enheter.

AV Foundation

Anmärkningar

AVCaptureSession använder nu din app AVAudioSession som standard.

Core Animation

Anmärkningar

När UIViewGroupOpacity nyckeln inte finns, är standardvärdet nu JA. Standardinställningen var tidigare NO.

Detta innebär att undervyer av en genomskinlig vy först kommer att sammansättas på den genomskinliga vyn, sedan kommer det förkompositerade underträdet att ritas som en helhet på bakgrunden. En NO-inställning resulterar i billigare, men också mindre exakt, sammansättning: varje vy i det genomskinliga underträdet är sammansatt på vad som finns under det, enligt förälderns opacitet, i den normala målarens algoritmordning.

utbyte

Anmärkningar

I Seed 4 och senare har Exchange DeviceIdentifier ändrats tillbaka till beteendet för iOS 6 där den använder serienumret.

Teckensnitt

Anmärkningar

Nya teckensnittsradhöjder introducerades i Seed 4. Om du hade justerat ditt teckensnitt manuellt i tidigare frön, kan det flytta något uppåt vertikalt i senare frön.

fundament

Anmärkningar

  • An NSMetadataQuery med allestädes närvarande omfattning kan nu använda kMDItemContentTypeTree i predikat. Till exempel:
    • NSPredicate *p = [NSComparisonPredicate PredicateWithLeftExpression:[NSExpression expressionForKeyPath:@"kMDItemContentTypeTree"] rightExpression:[NSExpression expressionForConstantValue:@"public.rtf"] modifierare: NSAnyPredicateModifier-alternativ:NSerLikeTPredicate;
  • När anropade resultat som returneras av frågor med allestädes närvarande omfattning, -[NSMetadataItem valueForAttribute:NSMetadataItemDisplayNameKey] ger nu samma värde som -[NSURL getResourceValue: forKey: NSURLLocalizedNameKey], matchande icke-allmänt förekommande frågor.

icloud

Anmärkningar

  • Om du använder iCloud-nyckelring med återställning kan du se en dialogruta som indikerar att återställning har inaktiverats på grund av en serverändring. Detta är avsiktligt. För att återaktivera funktionalitet, följ instruktionerna i meddelandet. Om du ser flera varningar eller observerar problem med att återaktivera återställning, skicka en felrapport.
  • iCloud-nyckelring i iOS 7 Seed 3 eller senare är inte bakåtkompatibel med iOS 7 Seed 2 eller OS X Mavericks Seed 2.

    Om du hade iCloud Keychain och/eller Keychain Restore aktiverade från iOS 7 Seed 2, inaktiveras båda funktionerna vid uppdatering till iOS 7 Seed 3 eller senare.

    Efter uppdatering till iOS 7 Seed 3 eller senare, gå till Inställningar > iCloud > Nyckelring och återaktivera iCloud-nyckelring på dina enheter.

    Se OS X v10.9 Release Notes för mer information.

  • Aktiveringslås, en ny funktion i Hitta min iPhone, aktiveras automatiskt när Hitta min iPhone är aktiverat på alla enheter som kör iOS 7. Aktiveringslås kräver att användare anger sitt Apple-ID och lösenord för att stänga av Hitta min iPhone, logga ut från iCloud , radera enheten eller återaktivera enheten efter en radering. Det är viktigt att göra något av följande innan du överför en enhet till en ny användare:
    • Logga ut från iCloud.
    • Stäng av aktiveringslåset i Inställningar > iCloud > Hitta min iPhone.

kända problem

Lösenordsfält visas inte i varningsvyer för appar i liggande läge (till exempel Game Center-autentisering eller In-App Purchase). Textinmatning fungerar fortfarande, även om du inte kan se vad du skriver.

MAPK

Anmärkningar

Om samtalen till renderInContext på lagret baksida en MKMapView är gjorda av huvudtråden, bör de elimineras eller flyttas till huvudtråden. Underlåtenhet att göra det kan orsaka en appkrasch. Istället för att använda renderInContext, använd den nya MKMapSnapshotter API: er.

Media

Anmärkningar

iOS kommer nu ihåg den senast använda medieappen vid omstarter och appkrascher. Medieappar som kan ta emot fjärrkontrollhändelser bör vara förberedda för att startas i bakgrunden och eventuellt ta emot en fjärrkontrollhändelse för att starta uppspelningen. Dessutom är det viktigt att medieappar övervakar och hanterar mediaserverns återställningshändelse, eftersom mediaappen kan få en fjärrbegäran om att återuppta uppspelningen efter en återställning. Aviseringar för att övervaka dessa medieserverhändelser finns tillgängliga i AVAudioSession och korrekt hantering beskrivs i Allmänna rekommendationer för hantering av kAudioSessionProperty_ServerDied.

Multipeer-anslutning

Anmärkningar

Smakämnen MCSession API:er fungerar som de presenterades på WWDC. Viktiga förändringar och förbättringar inkluderar:

  • Följande nya metod på MCSession har implementerats:
    • - (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID error:(NSError **)error

    Denna delegatmetod har implementerats:

    • - (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
  • Följande nya metod på MCSession har implementerats:
    • - (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandler

    Delegeringsmetoden för att börja ta emot en resurs från extern peer har implementerats som:

    • - (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress

    Delegeringsmetoden för att avsluta mottagningen av en resurs från fjärransluten peer och spara innehållet på en tillfällig plats implementeras som:

    • - (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error

  • MCAdvertiserAssistant är en bekvämlighetsklass för att implementera en annonsör, som hanterar inbjudningar och kopplingar till en MCSession.
  • MCSession har en ny initWithPeer: metod.
  • sendResource har lagt till "med" till completionHandler.
  • Timeout har tagits bort från connectPeer:withNearbyConnectionData.

För mer information om dessa API:er, titta på videon för WWDC 2013 Session 708, "Nearby Networking with Multipeer Connectivity."

Multitasking

Anmärkningar

  • AVAudioSession kan inte längre bli aktiva av appar i bakgrunden som vaknar på grund av bakgrundshämtning, bakgrundsöverföringar och fjärraviseringshändelser.
  • Policyn för API för slutförande av uppgifter har ändrats tillbaka för att matcha iOS 6-beteendet, men tidsgränsen för slutförande av uppgifter har minskat från 10 minuter i iOS 6.

nätverk

Anmärkningar

  • Den cellulära reservtekniken som finns i tidigare frön har tagits bort från och med Seed 5.
  • Två nätverks-API:er på låg nivå som tidigare returnerade en MAC-adress returnerar nu det fasta värdet 02:00:00:00:00:00. API:erna i fråga har sysctl (NET_RT_IFLIST) och ioctl (SIOCGIFCONF). Utvecklare som använder värdet på MAC-adressen bör migrera till identifierare som t.ex -[UIDevice identifierForVendor]. Denna ändring påverkar alla appar som körs på iOS 7.

Objective-C Runtime

Anmärkningar

På grund av förändringar i hur isa fältet är implementerat, *self kan ändras under uppräkning (till exempel om behållaren behålls).

Lösning: Vid implementering countByEnumeratingWithState, ställ inte in state->mutationsPtr = self.

Passbook

Anmärkningar

  • Från och med iOS 7 Seed 4 har Passbook lagt till stöd för de större och mindre områdena för att bättre matcha resten av iBeacons ekosystem. Den nya major och minor nycklar är oberoende variabel valfria bredvid proximityUUID (obligatoriskt) i varje ordbok i beacons array.array.
  • I tidigare versioner av iOS SDK validerade inte Passbook de bakre fälten på pass helt. Valideringsreglerna har inte ändrats, men valideringen inkluderar nu bakre fält. Kontrollera konsolloggen för ytterligare loggar.
  • Från och med iOS 7 Seed 3, PKPassLibraryDidCancelAddPasses är en ny statuskod i PKPassLibraryAddPassesStatus uppräkning. Det betyder att användaren tryckte på Avbryt i en varning om tillägg.

Bilder

Anmärkningar

När du uppgraderar från ett tidigare frö, visas inte fotominiatyrer i appen Foton på en kort stund.

Säkerhet

Anmärkningar

  • -[UIDevice uniqueIdentifier] accepteras inte längre i inlämningar till App Store. I iOS 7 kommer appar som redan finns i butiken eller på användarnas enheter som anropar detta borttagna API inte längre att få UDID. Istället, -[UIDevice uniqueIdentifier] returnerar en sträng på 40 tecken som börjar med FFFFFFFF, följt av hex-värdet -[UIDevice identifierForVendor]. Det är viktigt att överväga hur detta kommer att påverka befintliga appar. Jag överväger att skicka in uppdateringar som inte längre har åtkomst till UDID.
  • iOS begär nu användarmedgivande för appar att använda ljudingång på alla iOS 7-enheter. För enheter som säljs i Kina kommer iOS också att begära användarmedgivande för appar att använda kamerahårdvaran. Operativsystemet kommer att visa samtyckesvarningen när du ställer in kategorin för instansieringenAVAudioSession. De AVAudioSession kategorier som kommer att presentera varningen är AVAudioSessionCategoryRecord och AVAudioSessionCategoryPlayAndRecord.

    Om användaren inte tillåter åtkomst kommer ljudsessionsdata att vara nollor (tystnad). För enheter där kameraåtkomst begärs och nekas av användaren, är videoinspelningssessionen en svart skärm.

  • API:et gethostuuid() har tagits bort och kommer inte att accepteras för inlämning till butiken, oavsett vilket operativsystem som är inriktat på. För befintliga appar som körs på iOS 7 kommer funktionen att returnera en uuid_t-representation av leverantörsidentifieraren (-[UIDevice identifierForVendor]).

Siri

Anmärkningar

Detta frö innehåller utvecklingsversioner av nya manliga och kvinnliga Siri-röster för amerikansk engelska, franska och tyska.

Social hållbarhet

Anmärkningar

  • Genom iOS 6, vid användning TWTweetComposeViewController och SLComposeViewController (det senare endast för Twitter och Weibo, men inte Facebook), om den som ringer tillhandahåller en completionHandler, den medföljande completionHandler ansvarar för att avskeda visningskontrollanten. Från och med iOS 7, om appen länkar mot iOS 7 SDK, kommer visningskontrollenheten att stänga av sig själv även om den som ringer tillhandahåller en completionHandler. För att undvika detta, uppringarens completionHandler ska inte avvisa visningskontrollanten.
  • När du använder iOS 6.1 SDK på OS X v10.8 Mountain Lion, om du använder iOS 5.0 eller iOS 5.1 Legacy SDK i iOS Simulator, kommer du inte att kunna använda Twitter-funktioner: försöker logga in på Twitter via fönstret Inställningar kommer att misslyckas, och Twitter.framework kommer inte att fungera korrekt. Om du behöver testa Twitter-funktioner måste du välja antingen en destination för iOS 6.1 eller iOS 6.0 Simulator, eller så kan du testa med iOS 5.x på en enhet.

Språng

Anmärkningar

  • Aktiva beröringar avbryts inte längre när användaren tar en skärmdump.
  • Dynamisk bakgrund är inte tillgänglig på iPhone 4.

Sprite Kit

Anmärkningar

+[AVPlayer playerWithPlayerItem:] returnerar en AVPlayer objekt, men det aktuella objektet kommer att returnera noll om spelaren skapades på en annan tråd.

butiker

kända problem

Appnedladdningar kan fastna i läget "Väntar".

Lösning: Starta om enheten en eller två gånger för att lösa problemet och låt efterföljande nedladdningar fortsätta.

UIKit

Anmärkningar

  • Före Seed 4, snapshot API (snapshotView och resizableSnapshotViewFromRect:withCapInsets:) skulle skjuta upp ta ögonblicksbilden om vyn aldrig hade begåtts eller hade lagts till i vyhierarkin i den aktuella transaktionen. Detta beteende har förändrats.

    Ögonblicksbilder representerar nu alltid vyns aktuella, engagerade tillstånd. Ett försök att ta en ögonblicksbild av en vy som aldrig har begåtts loggar ett meddelande och returnerar nu noll.

  • Snapshot-metoder har uppdaterats och tar nu ett argument: afterUpdates. När den är inställd på JA, instruerar detta ögonblicksbilden att vänta tills alla väntande ändringar i hierarkin har genomförts. För att bibehålla pre-Seed 4-beteendet, passera NO och ögonblicksbilden kommer att fånga det som för närvarande finns på skärmen. EES UIView.h för mer detaljer.
  • När det inte finns tillräckligt med utrymme i navigeringsfältets layout för den fullständiga texten i bakåtknappens titel, kommer navigeringsfältet att ersätta en generisk kort baksida (på engelska, "Tillbaka"). Om även den strängen är för lång, kommer stapeln att visa den bakre indikatorn chevron utan titel.
  • +[UIPasteboard pasteboardWithName:create:] och +[UIPasteboard pasteboardWithUniqueName] nu unikt det angivna namnet för att endast tillåta appar i samma applikationsgrupp att komma åt klippbordet. Om utvecklaren försöker skapa en pasteboard med ett namn som redan finns och de inte ingår i samma app-svit, kommer de att få sin egen unika och privata pasteboard. Observera att detta inte påverkar systemet tillhandahållna klistrator, generella och hitta.
  • Från och med Seed 2 använder appar som standard det nya visningskontrollerbaserade hanteringssystemet för statusfältet. För att välja bort detta, lägg till värdet NO för UIViewControllerBasedStatusBarAppearance nyckeln till din Info.plist.
  • När du använder Auto Layout för att placera a UIButton, om du ställer in innehållskomprimeringsmotståndet eller prioritet för innehållskramning till minimum, kommer knappen att ha en tvetydig layout.

    Åtgärd: Använd inte ett innehållskomprimeringsmotstånd eller prioritet för innehållskramning på mindre än 2 för UIButton.

  • UIScreenEdgePanGestureRecognizer låter dig utföra åtgärder som svar på svepningar över kanten av skärmen med samma heuristik som systemet använder för sina egna gester. Använd detta om du har en egen semantisk navigering som inte används UINavigationControllermen bör inkludera denna gest (t.ex. Safari).

    Den här gestigenkännaren har en egenskap som beskriver kanterna på vilka den är aktiv. UIRectEdge är en ny uppräkningstyp som den här egenskapen och -[UIViewController edgesForExtendedLayout] kan dela. UIRectEdge ersätter UIExtendedEdge, som kommer att tas bort. Medlemmarna i båda har samma värderingar. Använd Xcode för att ersätta alla instanser av "UIExtendedEdge" i ditt projekt med "UIRectEdge".

  • UIButtonTypeInfoLightUIButtonTypeInfoDarkoch UIButtonTypeDetailDisclosure alla knappar ser likadana ut.
  • Suddiga lager är inte tillgängliga på iPhone 4.
  • Parallax är inte tillgängligt på iPhone 4.
  • Boktryckstext är inte tillgänglig på iPhone 4.

kända problem

Lösenordsfält visas inte i varningsvyer för appar i liggande läge (till exempel Game Center-autentisering eller In-App Purchase). Textinmatning fungerar fortfarande, även om du inte kan se vad du skriver.

Väder

Anmärkningar

Väderförhållandena är inte animerade på iPhone 4.

WebKit

Anmärkningar

  • Tidigare, när visningsportparametrarna ändrades, kasserades de gamla parametrarna aldrig. Detta gjorde att viewportparametrarna var additiva.

    Till exempel, om du började med width=device-width och sedan ändrade den till initial-scale=1.0, slutade du med en beräknad visningsport av width=device-width, initial-scale=1.0.

    I iOS 7 har detta åtgärdats. Nu slutar du med en beräknad visningsport av initial-scale=1.0.

  • Tidigare, vid användning , kan skalan vara felaktig efter rotation.

    Nu, om en användare inte har skalat sidan explicit, återställs sidan till sin ursprungliga skala. Dessutom är den nuvarande skalan nu korrekt begränsad inom min-scalemax-scale gräns.

  • Vissa bilder för Retina-skärmar visas i dubbelt så stor storlek som de borde istället för att skalas ner 50 %. Det här problemet kan också uppstå med alla bilder som ska skalas som är större än behållaren och som använder antingen background-size egendom eller -webkit-background-sizefast egendom. Det här problemet påverkar både inbyggda appar som visar webbinnehåll och webbsidor som visas i Safari för iPhone.

    Smakämnen background CSS-stenografiegenskapen återställer nu värdet på background-size egendom till auto när bakgrundsstorlek inte är angiven. Detta nya beteende är enligt CSS-specifikationen, och det gamla beteendet är endast tillgängligt för appar som är länkade till en SDK före iOS 7.0 när de körs på iOS 7 eller senare.

    Lösning: Ange background-size egendom eller -webkit-background-size egendom efter background stenografiegenskap i CSS-formatmallen för webbinnehållet som visas.

  • Webbappar och webbklipp skapade före Seed 4 stannar inte i mappar vid omstart.

    Lösning: Ta bort den gamla webbappen eller webbklippet och återskapa den i detta frö genom att ladda innehållet i Safari, trycka på knappen Åtgärd och sedan på "Lägg till på startskärmen".

Wi-Fi

Anmärkningar

Seed 4 och senare inkluderar ändringar av AWDL så att tekniker som använder det – som AirDrop och MultiPeerConnectivity API:er – inte kommer att fungera korrekt med äldre frön.