iOS 8.1.1 den släpptes för ungefär två timmar sedan av företaget Apple för sina apputvecklare för iPhone, iPad och iPod Touch, och jag berättade att prestandaförbättringen för iPad 2 och iPhone 4S är dess främsta "attraktiva" del. Till den här uppdateringen har Apple även släppt en ändringslogg där den listar alla mindre synliga ändringar, det vill säga alla de som ger oss ett snabbare operativsystem och med mycket färre problem.
iOS 8.1.1 det är för närvarande endast tillgängligt för nedladdning från apputvecklarens webbplats, och det är inte känt om du kommer att kunna installera det på dina terminaler utan att ha ett UDID registrerat på ett apputvecklarkonto.
iOS 8.1.1 changelog – ALLA nya
Anteckningar och kända problem
Följande problem gäller att använda iOS SDK 8.1.1 för att utveckla kod.
AVCapture
Känd fråga
Användning av den nya konstanten,
AVCaptureISOCurrent
, kommer att resultera i inkonsekventa ISO-värden (som observerats på ISO-egenskapen) omsetExposureModeCustomWithDuration:ISO:completionHandler:
kallas upprepade gånger.CloudKit
Anmärkningar
En enda
CKAsset
instans kan inte längre ställas in som ett värde på flera CKRecords.Kontakt
Anmärkningar
Personväljaren Adressbok UI har ändrats för iOS 8. Ett nytt läge med nytt API har lagts till där appen inte behöver åtkomst till användarens kontakter och användaren kommer inte att bli tillfrågad om åtkomst. En tillfällig kopia av den valda personen returneras till appen. EES
ABPeoplePickerNavigationController.h
för mer detaljer.Se det nya PeoplePicker: Picking a Person or Property-exempelprojektet som visar hur det nya läget används.
Dokumentleverantörer
Anmärkningar
Din app behöver iCloud-rättigheten för att kunna användas som dokumentleverantör.
Behörigheten com.apple.developer.icloud-container-identifiers krävs.
kända problem
Efter att ha roterat dokumentväljaren till liggande är statusfältet dold.
När du tar upp dokumentväljaren i liggande läge kan den innehållande vyn flyttas under navigeringsfältet.
förlängningar
Anmärkningar
Tillägg behöver en arm64-del för att köras på 64-bitarsenheter. Om du försöker köra armv7-delen på en 64-bitars enhet kommer det inte att fungera.
Appar måste ha en arm64-del om paketet innehåller ett ramverk som både appen och apptillägget länkar mot.
FILSYSTEM
Anmärkningar
Filsystemlayouten för appbehållare har ändrats på disken. Istället för att förlita sig på hårdkodad katalogstruktur, använd
NSSearchPathForDirectoriesInDomains
funktion ellerURLForDirectory:inDomain:appropriateForURL:create:error:
metod förNSFileManager
klass. Ser Få åtkomst till filer och kataloger in Programmeringsguide för filsystem.Teckensnitt
Anmärkningar
Det thailändska systemteckensnittet har ökat i storlek för att förbättra läsbarheten. Detta kommer att orsaka klippning på många ställen i ditt användargränssnitt om du inte vidtar lämpliga åtgärder:
Använda
UILabel
så mycket som möjligt. Om du använder Interface Builder, se till att Clip Subviews inte är markerat. UIKit kommer att utöka urklippsområdet efter behov för att inte klippa ut text.Använd Dynamic Type. Detta säkerställer att du inte har överlappande glyfer i flerradsetiketter eller textfält.
Om du inte kan göra 1 och 2 för att du implementerar dina egna åsikter måste du genomföra åtgärder för att inte klippa. Du kan använda CoreText för att ta reda på lämplig urklippsregion för en textrad genom att anropa:
CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);Justera radhöjden för att undvika överlappande glyfer i flerradstextelement. Ytterligare 30 % rekommenderas.
Den här åtgärden hjälper också din app att prestera bättre på andra språk, inklusive arabiska, hindi och vietnamesiska.
HealthKit
Anmärkningar
Kod som försöker läsa träningsinformation i HealthKit kanske inte kan göra efterföljande frågor till HealthKit.
Om du använder HKWorkouts bör du undvika att läsa träningspass när du kör på iOS-versioner före 8.1 med:
NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0}; if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) { // Läs och skriv träningsinformation till HealthKit. } Else { // Skriv träningsinformation till HealthKit }Känd fråga
Blodsockerdata visas för närvarande inte i Health-appen. Tredje parts åtkomst och API:er påverkas inte. Åtkomstkontroller för blodsocker och all annan hälsodata kan fortfarande hanteras i Health-appen och i Inställningar > Sekretess > Hälsa.
För mer information, se https://support.apple.com/kb/HT6533.
icloud
Anmärkningar
Mail handoff och AirDrop kan sluta fungera efter att du har ändrat ditt iCloud-lösenord på appleid.apple.com.
Lösning: Logga ut och tillbaka till iCloud på enheten.
iCloud Drive
Anmärkningar
URLForUbiquityContainerIdentifier:
kan komma tillbakanil
när du kör din applikation i Xcode. Om så är fallet, öppna Systeminställningar, navigera till iCloud > iCloud Drive och aktivera Xcode.tangentbord
Känd fråga
Ytterligare tangentbord, inklusive tangentbord från tredje part, kanske inte visas i Safari, Maps eller appar från tredje part på simulatorn.
Lösning: Tangentbord bör vara testbara i Kalender, Spotlight, Kontakter och Foton.
anmälan Center
Anmärkningar
Schemat och avsedd användning av
widgetPerformUpdateWithCompletionHandler:
är tänkt som ett bekvämt hem för all data/modelluppdateringslogik. Om det implementeras kommer systemet vid lämpliga tidpunkter att uppmana widgeten att uppdatera sitt tillstånd, både när meddelandecentret är synligt, såväl som i bakgrunden. En implementering krävs för att möjliggöra bakgrundsuppdateringar. Det förväntas att widgeten kommer att utföra arbetet med att uppdatera asynkront och utanför huvudtråden så mycket som möjligt. Widgetar ska anropa argumentblocket när arbetet är klart och passera lämpligtNCUpdateResult
. Widgetar bör INTE blockera återkomst frånviewWillAppear:
om resultatet av denna operation. Istället bör widgetar ladda cachad tillstånd iviewWillAppear:
för att matcha tillståndet för vyn från sistviewWillDisappear:
, och övergå sedan smidigt till den nya datan när den kommer.NSURLSession
Anmärkningar
Smakämnen
NSURLSessionTask
class tillhandahåller en ny "prioritet"-egenskap med tre associerade konstanter:NSURLSessionTaskPriorityDefault
,NSURLSessionTaskPriorityLow
ochNSURLSessionTaskPriorityHigh
.NSURLSessionTask
prioriteringar kan användas för att specificera hur flera förfrågningar och svar till samma värd ska prioriteras. Observera att prioriteringen är en antydan och inte en strikt garanti förNSURLSessionTask
prestanda.För fullständig användningsinformation om
NSURLSessionTask
prioriteringar, seNSURLSession.h
header-fil, som tillhandahålls av Foundation-ramverket.Telefon
Anmärkningar
Följ dessa steg för att aktivera Wi-Fi-samtal för T-Mobile (endast USA):
Gå till Inställningar > Telefon > Wi-Fi-samtal.
Ställ omkopplaren för Wi-Fi-samtal till PÅ.
Om operatören inte har användarens registrerade nödadress kommer du att bli ombedd att lägga till den innan funktionen aktiveras.
Bilder
Anmärkningar
Håll en säkerhetskopia av ditt fotobibliotek innan du aktiverar och använder iCloud Photo Library beta genom att:
Importera till din Mac med iPhoto
Importera till din Mac med Image Capture
iCloud Photo Library beta kommer inte att ladda ner foton och videor som har synkroniserats till din enhet från iTunes. Alla foton och videor som synkroniseras till din enhet från iTunes kommer att tas bort när du aktiverar iCloud Photo Library beta.
iPhoto för iOS kommer inte att lanseras på iOS 8 Beta. Om du startar Photos.app migreras dina iPhoto-redigeringar till iOS 8 Photo Library. Se till att din iPhoto för iOS-data ingår i enhetens säkerhetskopia.
Möjligheten att automatiskt optimera enhetsutrymme är aktiverad för alla konton som är större än 5 GB.
När du använder iCloud Family Sharing är både iCloud Photo Sharing och My Photo Stream aktiverade.
Tillhandahållande av profiler
Känd fråga
Om du har uppgraderat till 8.1.1 Beta från iOS 8 Betas kan du se dina appar krascha på grund av problem med provisioneringsprofilen.
Lösning:
Anslut enheten via USB till din Mac
Starta Xcode
Välj Fönster -> Enheter
Högerklicka på enheten i den vänstra kolumnen, välj "Visa provisioneringsprofiler"
Klicka på provisioneringsprofilen i fråga
Tryck på knappen
Fortsätt att ta bort alla berörda profiler.
Installera appen igen
UIKit
Anmärkningar
UILabel
har ett standardvärde på JA förclipsToBounds
. Detta skiljer sig från normaltUIView
standard på NO.Smakämnen
leftLayoutGuide
ochrightLayoutGuide
API:er har tagits bort. Vänligen användlayoutMargins
egendom istället.WebKit
Anmärkningar
Navigation Timing API har endast inaktiverats på iOS på grund av prestandaproblem.
Wi-Fi-samtal (endast T-Mobile USA)
Anmärkningar
Operatörens namn i statusfältet visar "T-Mobile Wi-Fi" när enheten kan ringa och ta emot Wi-Fi-samtal.