Apple släpper Xcode 5.1 som löser olika problem och implementerar en mängd nya funktioner

  Xcode är programmet som innehåller alla verktyg en applikationsutvecklare behöver för att utveckla och starta en applikation i app Store, och under denna kväll uppdaterade Apple det. Version 5.1 a Xcode följer med iOS 7.1, vilket gör att utvecklare kan göra sina applikationer kompatibla med den nya versionen av operativsystemet. Xcode 5.1 släpps med idén att lösa en mängd problem från den tidigare versionen, och genom ändringsloggen nedan kan du ta reda på exakt vad som kommer att fungera bättre eller vad du kommer att hitta nytt.

Nya funktioner

Debugging

  • Quick Look kan implementeras för utvecklardefinierade klasser När en instans av en anpassad klass visas med Quick Look i vyn för debuggervariabler eller en datatyp, presenterar debuggern den med en metod som heter -debugQuickLookObject definieras i klassimplementeringen. Mer information om hur du använder denna funktion finns i Snabbsökning efter anpassade typer i Xcode Debugger. (12723736)
  • Logga brytpunktsåtgärder skriver nu ut det logiska värdet av uttryck, till exempel en loggbrytpunktsåtgärd som t.ex "myString = @myString@" skriver nu ut värdet på myString, istället för pekarvärdet. (13211695) 

Redigera användargränssnitt

  • Interface Builder-dokument kan innehålla specifik information om nya funktioner de använder och de OS-versioner de kräver, vilket gör att tidigare versioner av Xcode kan visa bättre varningsmeddelanden när de försöker öppna sådana dokument. (7659982)
  • Att bygga gränssnitt i Interface Builder med hjälp av automatisk layout erbjuder alla möjliga begränsningstyper: bildförhållanden, proportionella storlekar och positioner, korsattributjusteringar och en ny begränsningsinspektör med funktioner för att redigera nästan alla egenskaper hos en begränsning.
  • Interface Builder-begränsningsattributinspektören visar en begränsnings objekt och attribut och tillåter redigering av attributen. Den här funktionen möjliggör möjligheten att skapa begränsningar för korsattribut som t.ex view1.centerY = view2.bottom. (13739009)
  • Du kan använda Interface Builder för att redigera relationen för alla typer av begränsningar, inklusive anpassningsbegränsningar (till exempel, view1.leading <= view2.leading) och begränsningar för lika storlek (till exempel, view1.width >= view2.width). (14721954)
  • Du kan skapa bildförhållande och proportionella storleksbegränsningar och redigera multiplikatorn av begränsningar i Interface Builder. Multiplikatorn kan vara ett decimaltal (t.ex. 0.5), en bråkdel (till exempel, 1/2), eller ett bildförhållande (till exempel, 1:2). (11935843)
  • Begränsningar kopplade till tvetydiga vyer i Interface Builder ritas endast orange i axeln med tvetydighet. Detta gör det snabbare att identifiera ett potentiellt problem i duken. (15114120)
  • Gränssnittsbyggaren visar nu överläggsrullare när så är lämpligt, baserat på inställningen "Visa rullningslist" i rutan Allmänt i Systeminställningar. (10069033)
  • Interface Builder-inspektören har nu stöd för:
    • NSTableView - floatsGroupRows egendom (9617000)
    • UISegmentedControl - apportionsSegmentWidthsByContent egendom (9950528)
    • UITableView - sectionIndexBackgroundColor egendom (14776025)
    • Ställa in "Detaljer" knapptyp för prototyp UITableViewCell - editingAccessoryType egendom (15039987)

Instrument och symbolik

  • Instruments hittar nu symboler mycket mer tillförlitligt. Om symboler inte visas automatiskt, prova följande: instruments kommandoradsverktyget stöder nu att specificera simulatorns SDK och enhetstyp med hjälp av -w flagga För att se en lista över simulatorkonfigurationer som stöds samt anslutna enheter, kör instruments -s devices i ett terminalfönster. (14996865)
    • När Spotlight-indexering är inaktiverat för Xcode-härledd data, till exempel vid användning /tmp, lägg till en global lista över ytterligare sökvägar som konfigurerats i Instrument-inställningarna.
    • Kontextmenyn för en adress innehåller nu alternativet "Symbolisera med DSYM" för att lägga till en specifik symbolfil.
    • Använd kommandot Arkiv-menyn Symboler för att se en mer detaljerad lista över tillståndet för enskilda körbara filer och bibliotek.
      • Gröna lampor indikerar förekomsten av symboler och källinformation.
      • Gula lampor indikerar bibliotek med vissa symboler men kan fortfarande dra nytta av att hitta en dSYM.
      • Röda lampor indikerar situationer som förhindrar symbolism. (14269449)

Skriptinstallerad installation

  • När du installerar Device SupportRun från kommandoraden tar Xcode.app det nya kommandoradsargumentet, -installComponents. När Xcode körs från ett kommandoradsskript med det här alternativet, installerar det de nödvändiga enhetsstödpaketen och avslutas sedan. (15127411) 

Allmänt

  • Emoji och andra Unicode surrogatpar stöds i schemainställningar och i projektfiler. (14837623 & 13827044)

Förändringar

Byggnad

  • Arm64 ingår nu i inställningen "Standardarkitekturer". Xcode 5.0 introducerade stöd för att bygga 64-bitars iOS-applikationer men det var inte aktiverat som standard. För att möjliggöra möjligheten att bygga 64-bitars i Xcode 5.0, tillhandahölls en arkitekturinställning: "Standard Architectures inklusive 64-bitars" (ARCHS_STANDARD_INCLUDING_64_BIT).Med introduktionen av Xcode 5.1 ingår arm64 i standardinställningen "Standardarkitektur". Detta resulterar i att projekt som använder standardinställningen automatiskt bygger för arm64 tillsammans med standard 32-bitars arkitekturer.
  • När du bygger för alla arkitekturer, ta bort alla explicita arkitekturer och använd standardinställningen Standard Architectures. För projekt som tidigare har valts med "Standardarkitekturer inklusive 64-bitars", byter du tillbaka till inställningen "Standardarkitekturer".
  • När du öppnar ett befintligt projekt för första gången kan Xcode 5.1 visa en varning om användningen av Xcode 5.0-arkitekturinställningen. Att välja varningen ger ett arbetsflöde för att revidera inställningen.
  • Projekt som inte kan stödja 64-bitars måste specifikt ställa in arkitekturens bygginställning så att den inte inkluderar 64-bitars.
  • Projekt som konfigurerats för att använda "Standardarkitekturer inklusive 64-bitars" kommer att konverteras till "Standardarkitekturer $(ARCHS_STANDARD).

Kompilator

  • Från och med Apple LLVM-kompilatorversion 5.1 (clang-502) och senare, optimeringsnivån -O4 innebär inte längre länktidsoptimering (LTO). För att bygga med LTO använd uttryckligen -flto alternativ utöver flaggan för optimeringsnivå. (15633276)

Testning

  • Smakämnen gcov verktyg för kodtäckningstestning har återimplementerats. Den nya versionen använder llvm-cov verktyg från LLVM-projektet. Den är funktionellt likvärdig med den gamla versionen för alla viktiga funktioner. Placeringen av gcov inom Xcode har också flyttat, använd xcrun för att anropa det. Om du hittar problem, skicka in felrapporter. För den här utgåvan kan du fortfarande använda den gamla versionen av gcov från GCC, som finns som gcov-4.2. 11919694 uppdaterad

kända problem

Redigera användargränssnitt

  • Anpassade vyer som läggs till en stackvy i Interface Builder kan fastna i ett "felplacerade vyer" (inkonsekvent) tillstånd. Som en lösning kan du ställa in en platshållares inneboende storlek för den anpassade vyn med lämpliga prioriteringar för innehållskramning och komprimeringsmotstånd. (15778653)

Testning

  • Automatiska tester som körs i iOS Simulator kan misslyckas med ett fel som liknar detta:Test target [test name] encountered an error (Test process exited with code -1)Försök att återställa genom att avsluta och starta om simulatorn. (15929053)

XcodeServer

  • Kontinuerliga integrationsfunktioner (bots) för Xcode 5.1 kräver OS X Server v3.1 (eller en version av OS X Server 3.1 beta) eller senare. 16225068 uppdaterad
  • Om det finns gamla kopior av Xcode på servervärden visar Xcode Server ibland alla simulatorer. Försök endast använda simulatorer som är lämpliga för användning med Xcode 5.1. (15465692 & 15153869)
  • Xcode Server kommer att erbjuda Alla enheter eller Alla simulatorer även om det inte finns några som passar kriterierna för projektet. Om du väljer en olämplig enhet eller simulator kan du få ett felmeddelande som liknar:xcodebuild: error: No destinations were specified with the -destination flag which were valid for the specified scheme <scheme_name>.För att förhindra att detta händer, ange endast giltiga enheter eller simulatorer för ditt projekt. (15465222)
  • Ibland när du försöker skapa ett nytt lokalt arkiv på OS X Server via Xcode kan Xcode visa ett felmeddelande som liknar:xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.För att lösa det här problemet, följ anvisningarna i dialogrutan som visas på OS X Server-värdsystemet. (15475078 & 15486464)
  • Ibland efter uppgradering till Xcode 5.1 och OS X Server 3.1, första gången du lägger till en server kan du se ett fel som liknar:"<Server> is running a version of OS X Server that cannot be used with this version of Xcode."Avsluta och starta om Xcode en gång för att ta bort detta meddelande. 16217715 uppdatering 

iOS -simulator

  • Prestandaproblem kan uppstå när appar körs i iOS-simulatorn på OS X Mavericks med en simulerad OS-version av iOS 6.1 eller tidigare. En lösning är att inaktivera timerkoalescing när du använder iOS 6.1 eller tidigare simulator genom att utföra följande kommando i ett terminalfönster :sudo sysctl -w kern.timer.coalescing_enabled=0 (15501929)
  • iOS Simulator slutar ibland att svara på hårdvarans tangentbord. Att avsluta och starta om simulatorn korrigerar vanligtvis detta. (14642684)

Allmänt

  • När du validerar flera applikationer i följd med Xcode Organizer, kan felaktiga varningar om paket-ID:n avges. Om dessa varningar inträffar, avsluta och starta om Xcode mellan valideringarna. 15113664 uppdaterad
  • Körbara filer skapade av Xcode 5.1 kan krascha på OS X v10.5. (15852259) uppdaterad

Lösta problem

Testning

  • Smakämnen XCTAssertEqual makro (tidigare STAssertEquals med OCUnit) jämför korrekt skalära värden av olika typer utan gjutning, till exempel, int ochNSInteger. Det kan inte längre acceptera icke-skalära typer, såsom strukturer, för jämförelse. (14435933)

Allmänt

  • OS X-appar som kräver en provisioneringsprofil, som de som använder iCloud, nu byggda, kodsigneras korrekt och startar. (15841159)

Avskrivningar

  • OCUnit och SenTestingKit-ramverket är utfasade och kommer att tas bort från en framtida version av Xcode. Källkod som använder OCUnit genererar varningar medan den kompileras i Xcode 5.1. Migrera till XCTest genom att använda menykommandot "Redigera > Refaktor > Konvertera till XCTest...". .
  • ATS-ramverket är utfasat. Källkod som använder ATS API:er genererar varningar medan den kompileras. För version 10.8 kommer det inte att ske någon funktionsförlust men det kan finnas områden där prestandan kommer att drabbas. Byt ut all ATS-kod (inklusive ATSUI) Med CoreText. ATS-funktionalitet kommer att tas bort i framtida OS X-versioner. Mer information om denna förändring finns påProgrammeringsguide för kärntext.