Apple frigiver Xcode 5.1, der løser forskellige problemer og implementerer en lang række nye funktioner

  Xcode er programmet, der indeholder alle de værktøjer, en applikationsudvikler skal bruge for at udvikle og starte en applikation i App Store, og i løbet af denne aften opdaterede Apple det. Version 5.1 a Xcode følger med iOS 7.1, hvilket giver udviklere mulighed for at gøre deres applikationer kompatible med den nye version af operativsystemet. Xcode 5.1 er udgivet med ideen om at løse et væld af problemer fra den tidligere version, og gennem ændringsloggen nedenfor kan du finde ud af præcis, hvad der vil fungere bedre, eller hvad du vil finde nyt.

Nye funktioner

Debugging

  • Quick Look kan implementeres for udviklerdefinerede klasser Når en forekomst af en brugerdefineret klasse ses med Quick Look i debugger-variablevisningen eller en datatype, præsenterer debuggeren den ved hjælp af en metode med navnet -debugQuickLookObject defineret i klasseimplementeringen. For detaljer om, hvordan du bruger denne funktion, se Hurtigt kig efter brugerdefinerede typer i Xcode Debugger. (12723736)
  • Log brudpunkt handlinger udskriver nu den logiske værdi af udtryk, for eksempel en log brudpunkt handling som f.eks "myString = @myString@" udskriver nu værdien af myString, i stedet for pointerværdien. (13211695) 

Redigering af brugergrænseflader

  • Interface Builder-dokumenter kan indeholde specifik information om nye funktioner, de bruger, og de OS-versioner, de kræver, hvilket gør det muligt for tidligere versioner af Xcode at vise bedre advarselsmeddelelser, når de forsøger at åbne sådanne dokumenter. (7659982)
  • Opbygning af grænseflader i Interface Builder ved hjælp af automatisk layout tilbyder den fulde pakke af mulige begrænsningstyper: aspektforhold, proportionale størrelser og positioner, krydsattributjusteringer og en ny begrænsningsinspektør med funktioner til redigering af næsten alle egenskaber for en begrænsning.
  • Interface Builder-begrænsningen Attributter-inspektøren viser en begrænsnings elementer og attributter og tillader redigering af attributterne. Denne funktion gør det muligt at oprette begrænsninger på tværs af attributter som f.eks view1.centerY = view2.bottom. (13739009)
  • Du kan bruge Interface Builder til at redigere relationen af ​​enhver type begrænsning, herunder justering begrænsninger (f.eks. view1.leading <= view2.leading) og begrænsninger af samme størrelse (f.eks. view1.width >= view2.width). (14721954)
  • Du kan oprette begrænsninger for størrelsesforhold og proportional størrelse og redigere multiplikatoren af ​​begrænsninger i Interface Builder. Multiplikatoren kan være et decimaltal (f.eks. 0.5), en brøkdel (f.eks. 1/2), eller et billedformat (f.eks. 1:2). (11935843)
  • Begrænsninger knyttet til flertydige visninger i Interface Builder tegnes kun orange i aksen med flertydighed. Dette gør det hurtigere at identificere et potentielt problem i lærredet. (15114120)
  • Interface Builder-lærredet viser nu overlay-rullere, når det er relevant, baseret på indstillingen "Vis rullepanel" i ruden Generelt i Systemindstillinger. (10069033)
  • Interface Builder-inspektøren har nu support til:
    • NSTableView - floatsGroupRows ejendom (9617000)
    • UISegmentedControl - apportionsSegmentWidthsByContent ejendom (9950528)
    • UITableView - sectionIndexBackgroundColor ejendom (14776025)
    • Indstilling af "Detaljer" knaptype for prototype UITableViewCell - editingAccessoryType ejendom (15039987)

Instrumenter og symbolisering

  • Instrumenter finder nu symboler meget mere pålideligt. Hvis symboler ikke vises automatisk, kan du prøve følgende: instruments kommandolinjeværktøjet understøtter nu angivelse af simulator-SDK og enhedstype ved hjælp af -w flag For at se en liste over de understøttede simulatorkonfigurationer samt tilsluttede enheder skal du udføre instruments -s devices i et terminalvindue. (14996865)
    • Når Spotlight-indeksering er deaktiveret for Xcode-afledte data, såsom ved brug /tmp, tilføj en global liste over yderligere søgestier, der er konfigureret i Instruments præferencer.
    • Kontekstmenuen for en adresse indeholder nu muligheden "Symboliserer med DSYM" for at tilføje en specifik symbolfil.
    • Brug kommandoen Filer i menuen Symboler for at se en mere detaljeret liste over tilstanden for individuelle eksekverbare filer og biblioteker.
      • Grønne lys indikerer tilstedeværelsen af ​​symboler og kildeoplysninger.
      • Gule lys indikerer biblioteker med nogle symboler, men kan stadig drage fordel af at lokalisere en dSYM.
      • Røde lys indikerer situationer, der forhindrer symbolik. (14269449)

Scriptet installation

  • Ved at installere Device SupportRun fra kommandolinjen, tager Xcode.app det nye kommandolinjeargument, -installComponents. Når Xcode køres fra et kommandolinjescript med denne mulighed, installerer det de nødvendige enhedssupportpakker og afsluttes derefter. (15127411) 

Generelt

  • Emoji og andre Unicode-surrogatpar understøttes i skemaindstillinger og i projektfiler. (14837623 og 13827044)

Ændringer

Bygning

  • Arm64 er nu inkluderet i indstillingen "Standard arkitekturer". Xcode 5.0 introducerede understøttelse til at bygge 64-bit iOS-applikationer, men det var ikke aktiveret som standard. For at aktivere muligheden for at bygge 64-bit i Xcode 5.0, blev der givet en arkitekturindstilling: "Standard Architectures Including 64-Bit" (ARCHS_STANDARD_INCLUDING_64_BIT).Med introduktionen af ​​Xcode 5.1 er arm64 inkluderet i standardindstillingen "Standard arkitektur". Dette resulterer i, at projekter, der bruger standardindstillingen, automatisk bygger for arm64 sammen med standard 32-bit arkitekturer.
  • Når du bygger til alle arkitekturer, skal du fjerne enhver eksplicit arkitekturindstilling og bruge standardindstillingen Standard Architectures. For projekter, der tidligere var tilmeldt ved hjælp af "Standardarkitekturer inklusive 64-bit", skal du skifte tilbage til indstillingen "Standardarkitekturer".
  • Når du åbner et eksisterende projekt for første gang, viser Xcode 5.1 muligvis en advarsel om brugen af ​​Xcode 5.0-arkitekturindstillingen. Valg af advarslen giver en arbejdsgang til at revidere indstillingen.
  • Projekter, der ikke kan understøtte 64-bit, skal specifikt indstille arkitekturens build-indstilling til ikke at inkludere 64-bit.
  • Projekter, der er konfigureret til at bruge "Standard Architectures, inklusive 64-bit" vil blive konverteret til "Standard Architectures $(ARCHS_STANDARD).

compiler

  • Fra og med Apple LLVM compiler version 5.1 (clang-502) og nyere er optimeringsniveauet -O4 indebærer ikke længere linktidsoptimering (LTO). For at bygge med LTO skal du udtrykkeligt bruge -flto mulighed ud over flaget for optimeringsniveau. (15633276)

Test

  •  gcov værktøj til test af kodedækning er blevet genimplementeret. Den nye version bruger llvm-cov værktøj fra LLVM-projektet. Det svarer funktionelt til den gamle version for alle væsentlige funktioner. Placeringen af gcov inden for Xcode er også flyttet, brug xcrun til at påberåbe det. Hvis du finder problemer, bedes du indsende fejlrapporter. Til denne udgivelse kan du stadig bruge den gamle version af gcov fra GCC, som fås som gcov-4.2. 11919694 opdateret

kendte problemer

Redigering af brugergrænseflader

  • Brugerdefinerede visninger, der føjes til en stakvisning i Interface Builder, kan sidde fast i en "forlagte visninger" (inkonsekvent) tilstand. Som en løsning kan du indstille en pladsholders iboende størrelse for den tilpassede visning med passende indholdskramme og komprimeringsmodstandsprioriteter. (15778653)

Test

  • Automatiske test, der køres i iOS Simulator, kan mislykkes med en fejl, der ligner denne:Test target [test name] encountered an error (Test process exited with code -1)Forsøg at genoprette ved at afslutte og genstarte simulatoren. (15929053)

Xcode server

  • Kontinuerlige integrationsfunktioner (bots) af Xcode 5.1 kræver OS X Server v3.1 (eller en version af OS X Server 3.1 beta) eller nyere. 16225068 opdateret
  • Hvis der er gamle kopier af Xcode på serverværten, viser Xcode Server nogle gange alle simulatorerne. Forsøg kun at bruge simulatorer, der er egnede til brug med Xcode 5.1. (15465692 og 15153869)
  • Xcode Server vil tilbyde Alle enheder eller Alle simulatorer, selvom der ikke er nogen, der passer til kriterierne for projektet. Hvis du vælger en upassende enhed eller simulator, får du muligvis en fejl, der ligner:xcodebuild: error: No destinations were specified with the -destination flag which were valid for the specified scheme <scheme_name>.For at forhindre dette i at ske, skal du kun angive gyldige enheder eller simulatorer til dit projekt. (15465222)
  • Nogle gange, når du forsøger at oprette et nyt lokalt lager på OS X Server gennem Xcode, kan Xcode vise en fejlmeddelelse, der ligner: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.For at løse dette problem skal du følge vejledningen i dialogboksen, der vises på OS X Server-værtssystemet. (15475078 og 15486464)
  • Nogle gange efter opgradering til Xcode 5.1 og OS X Server 3.1, første gang du tilføjer en server, kan du se en fejl, der ligner:"<Server> is running a version of OS X Server that cannot be used with this version of Xcode."Afslut og genstart Xcode én gang for at slette denne meddelelse. 16217715 opdatering 

iOS Simulator

  • Ydeevneproblemer kan opstå, når du kører apps i iOS-simulatoren på OS X Mavericks med en simuleret OS-version af iOS 6.1 eller tidligere. En løsning er at deaktivere timersammensmeltning, mens du bruger iOS 6.1 eller tidligere simulator ved at udføre følgende kommando i et terminalvindue :sudo sysctl -w kern.timer.coalescing_enabled=0 (15501929)
  • iOS Simulator holder nogle gange op med at reagere på hardwaretastaturet. Afslutning og genstart af simulatoren retter normalt op på dette. (14642684)

Generelt

  • Når du validerer flere applikationer i rækkefølge ved hjælp af Xcode Organizer, kan der udsendes fejlagtige advarsler om bundle-id'er. Hvis disse advarsler opstår, skal du afslutte og genstarte Xcode mellem valideringerne. 15113664 opdateret
  • Eksekverbare filer oprettet af Xcode 5.1 kan gå ned på OS X v10.5. (15852259) opdateret

Løste problemer

Test

  •  XCTAssertEqual makro (tidligere STAssertEquals ved hjælp af OCUnit) sammenligner skalarværdier af forskellige typer korrekt uden støbning, f.eks. int ,NSInteger. Det kan ikke længere acceptere ikke-skalære typer, såsom strukturer, til sammenligning. (14435933)

Generelt

  • OS X-apps, der kræver en klargøringsprofil, såsom dem, der bruger iCloud, nu build, kodesigneres korrekt og starter. (15841159)

Afskrivninger

  • OCUnit og SenTestingKit-rammeværket er forældet og vil blive fjernet fra en fremtidig udgivelse af Xcode. Kildekode ved hjælp af OCUnit genererer advarsler, mens den kompileres i Xcode 5.1. Migrer til XCTest ved at bruge menukommandoen "Rediger > Refaktor > Konverter til XCTest...". .
  • ATS-rammen er forældet. Kildekode ved hjælp af ATS API'er vil generere advarsler, mens den kompileres. For version 10.8 vil der ikke være noget tab af funktionalitet, men der kan være områder, hvor ydeevnen vil lide. Udskift al ATS-kode (inklusive ATSUI) med CoreText. ATS-funktionalitet vil blive fjernet i fremtidige OS X-udgivelser. Mere information om denne ændring er tilgængelig iVejledning til programmering af kernetekst.