Tässä on kaikki, mitä uusi iOS 5 GM tuo

     Apple julkaisi iOS 5 GM:n tunti sitten iOS-sovelluskehittäjille ja Dev Teamille ilmoitti jo tällaisia ​​voidaan jailbroke käyttämällä redsn0w. Toistaiseksi olen nähnyt Applen konferenssissa joitain Applen toteuttamia uutisia, mutta varmasti iOS 5:ssä tulee olemaan paljon enemmän uutisia, jotka esittelen teille seuraavina päivinä sen jälkeen, kun minulla on mahdollisuus pelata hieman uusi käyttöjärjestelmä. Siihen asti alla on uuden käyttöjärjestelmän muutosloki, joten kaikki Applen toteuttama uusi.

HUOMAUTUKSET JA TUNNETUT ONGELMAT

Seuraavat ongelmat liittyvät 5 SDK:n käyttöön koodin kehittämiseen.

Tilit

  • Kun luot iCloud-tilin, voit käyttää mitä tahansa Apple ID:tä, kunhan se on täydellinen sähköpostiosoite eikä MobileMe-tili. Jos sinulla on MobileMe-tili, voit siirtää sen iCloudiin. Löydät lisätietoja osoitteesta: http://me.com/move

AirPlay

  • iOS 5:stä alkaen AirPlay on oletusarvoisesti käytössä sovellusten ja verkkosivustojen videosisällölle.
  • iOS 5:ssä AV Foundation lisää tuen videon toistoon AirPlayn kautta.

API

  • NSNetService luokan ja CFNetService API:t eivät sisällä oletusarvoisesti P2P-liittymiä. Sovelluksen on käytettävä Bonjouria voidakseen selata, rekisteröidä tai ratkaista palveluita P2P-liitäntöjen kautta DNSService*() Alla mainitut API:t.
  • Asettaminen käyttöliittymähakemisto parametri kDNSServiceInterfaceIndexAny seuraavissa API:t eivät sisällä oletusarvoisesti P2P-liittymiä. Jos haluat sisällyttää P2P-liitännät, sinun on nyt asetettavakDNSServiceFlagsIncludeP2P lippua käytettäessä kDNSServiceInterfaceIndexAny tai aseta InterfaceIndex arvoon kDNSServiceInterfaceIndexP2P. Sovellusliittymillä, joita asia koskee, on:
    • DNSServiceBrowse
    • DNSServiceRegister
    • DNSServiceResolve
    • DNSServiceRegisterRecord
    • DNSServiceQueryRecord

API validointi

  • iOS 5 -kehitystyökaluissa on mahdollista poimia sovelluksen käyttämät API:t ja tarkistaa ne yksityisten API:iden käytön varalta. Tätä vaihtoehtoa tarjotaan, kun vahvistat hakemuksesi sovelluksen lähettämistä varten.

Apple TV

  • Apple TV -ohjelmiston avulla käyttäjät voivat peilata iPad 2:n sisällön Apple TV:hen (2. sukupolvi) AirPlayn avulla. Tämä ohjelmisto mahdollistaa myös Photo Streamin Apple TV:ssä, jotta käyttäjät voivat käyttää iCloudiin tallennettuja valokuvia. Apple TV -ohjelmiston beta-versio tarjotaan uusimpien AirPlay-toimintojen testaamiseksi iOS 5 -sovelluksillasi ja -sivustoillasi. Jos haluat asentaa Apple TV -ohjelmiston betaversion laitteellesi, sinun on ensin rekisteröitävä laitteesi UDID iOS-kehittäjäohjelmaportaalissa.

Automaattinen viitelaskenta

  • Jos Xcodessa asetukseksi on asetettu Laite ja yhden lähdetiedoston polussa on välilyönti (yleisemmin projekti on hakemistossa, jossa on välilyöntejä), "Muunna automaattiseen viitelaskentaan" -vaihe (esitarkistuksen jälkeen ) epäonnistuu virheellä: Error in format of file: <path>.Jos kohtaa, käyttäjän tulee vaihtaa Simulaattoriin ja yrittää siirtoa uudelleen.

Binaariyhteensopivuus

  • Sovelluksissa, jotka on linkitetty iOS 5 SDK:ta vastaan, vieritysnäkymän sisällön siirtymiä ei enää pyöristetä kokonaisiksi pikseleiksi nipistyksen aikana.

GameKit

  • Vuoropohjaisten otteluiden ottelutiedot on rajoitettu 4 kilotavuun.
  • Kiinteä: Automaattinen sovitus vuoropohjaisen näkymäohjaimen kanssa ei toimi. Kiertotavana voidaan käyttää kutsuja tai suoran automaattisen vastaavuuden sovellusliittymää.

iCloud varmuuskopiointi

  • Ennen 22. syyskuuta tehdyt varmuuskopiot eivät ole enää saatavilla. On erittäin suositeltavaa päivittää tähän iOS 5 -versioon, jotta voit jatkaa laitteidesi varmuuskopiointia

iCloud varastointi

  • iCloud-avainarvovarastossa avainten enimmäismäärä on nostettu 256:een.
  • Kaikki äskettäin luodut hallintaprofiilit otetaan nyt automaattisesti käyttöön iCloudissa. Jos käytät Xcode-hallittua Team Provisioning -profiilia, napsauta päivitä Xcode Organizerissa saadaksesi uuden iCloud-yhteensopivan profiilin. Ota kaikki muut iCloudin hallintaprofiilit käyttöön luomalla profiilisi uudelleen iOS-käyttöönottoportaalissa.
  • Jos sovelluksesi käyttää NSMetadataQuery luokassa, sinun on asetettava predikaatti ja predikaatti on nyt kunnioitettu. Mutta predikaatti on an NSPredicate-tyylinen predikaatti, ei Spotlight-tyylinen predikaatti. Esimerkki erosta on, että sinun on käytettävä LIKE sijasta = jokerimerkkien vastaavuuteen. Erot on määritelty tarkemmin osoitteessa:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pSpotlightComparison.html#//apple_ref/doc/uid/TP40002370-SW1.
  • setSortDescriptors: menetelmä NSMetadataQuery ei ole tuettu.
  • Ota iCloud-tallennus käyttöön sovelluksissasi iOS 5:ssä napsauttamalla Ota käyttöön oikeudet -valintaruutua projektisi Yhteenveto-osiossa. Xcode luo projektillesi mukautetun käyttöoikeustiedoston, joka sisältää automaattisesti tiimitunnuksesi. Voit lisätä muita iCloud Container -arvoja sovelluksesi edellyttämällä tavalla. (Huomaa, että sinun on luotava uudelleen olemassa olevat hallintaprofiilisi joko Xcodella tai iOS-käyttöönottoportaalissa, jotta voit käyttää iCloud-tallennustilaa.)
  • Säilön tunnistemerkkijono, jonka välität URLForUbiquityContainerIdentifier: menetelmä NSFileManager täytyy lisää joukkueen tunnus merkkijonon alkuun. Mukavuuden vuoksi voit ohittaa nil noutaaksesi ensimmäisen sovelluksesi oikeuksissa määritetyn asiakirjasäilön tunnuksen.
  • iOS 5:ssä Data Protectionilla suojattuja tiedostoja ei voi käyttää iCloud Storage API:iden kanssa.
  • Tiedoston esittäjät – objektit, jotka ottavat käyttöön NSFilePresenter protokolla – älä vastaanota joitain viestejä, jotka heidän pitäisi vastaanottaa, mukaan lukien:

    Kiertotyönä toteuttaa relinquishPresentedItemToWriter: menetelmää ja tarkista, kirjoittiko kirjoittaja todella, kun tiedoston esittäjä hankkii tiedoston uudelleen.

  • Jos ilmoitat iCloud-tallennusliitäntöihin liittyvästä virheestä, liitä mukaan virheenkorjausistunnon aikana kerätyt lokit. Näiden lokien luomiseksi sinun on asennettava laitteellesi erityinen virheenkorjausprofiili. http://connect.apple.com. Tämä profiili mahdollistaa virheenkorjauslokien luomisen, joita tarvitaan iCloud-tallennustilan ongelmien diagnosoimiseen. Ohjeet lokien keräämiseen ovat:
    1. Asenna profiili. (Helppoin tapa tehdä tämä on lähettää se postitse itsellesi ja avata liite laitteellasi.)
    2. Toista bugi.
    3. Synkronoi iTunesin kanssa poistaaksesi lokit laitteeltasi.
    4. Liitä lokit virheraporttiisi. Löydät kirjautumistunnukset ~/Library/Logs/CrashReporter/MobileDevice/DeviceName/DiagnosticLogs.

    Nämä lokit voivat kasvaa suuriksi hyvin nopeasti, joten sinun tulee poistaa profiili, kun olet toistanut ongelman ja vetänyt laitteesi lokit.

  • Tiedostonimien kirjainkoolla ei ole merkitystä Mac OS X:ssä, mutta iOS:ssä. Tämä voi johtaa ongelmiin, kun tiedostoja jaetaan näiden kahden välillä iCloudin avulla. Sinun tulee ryhtyä toimiin iOS:ssä välttääksesi sellaisten tiedostojen luomisen, joiden nimet eroavat vain tapauskohtaisesti.

iTunes

  • GM-julkaisun mukana tuleva iTunes-versio ei voi synkronoida laitteita, joihin on asennettu beta 7 -ohjelmisto. Voit välttää tämän ongelman toimimalla seuraavasti:
    1. Synkronoi kaikki laitteet, joissa on beta 7 asennettuna iTunesin beta 7:n mukana tulleeseen versioon.
    2. Päivitä iTunes GM-julkaisun mukana tulevaan versioon.
    3. Liitä laite ja asenna GM-ohjelmisto. (Ymmärrä, että saatat nähdä virheen synkronoinnissa, kun yhdistät laitteen ensimmäisen kerran.)
    4. Kun olet asentanut GM-ohjelmiston, palauta vaiheessa 1 tekemäsi varmuuskopio.

Musiikkisoitin

  • Kiinteä: Kun kappale tai video poistetaan laitteen musiikista/videoista, Music Player -sovellus kaatuu.

Turvallisuus

  • iOS 5:ssä ei tueta varmenteiden allekirjoittamista MD5-allekirjoituksilla. Varmista, että varmenteissa käytetään SHA1- tai SHA2-pohjaisia ​​allekirjoitusalgoritmeja.

ponnahduslauta

  • Sovellusten push- ja paikalliset ilmoitukset näkyvät iOS 5:n uudessa ilmoituskeskuksessa. Ilmoituskeskus näyttää ilmoitukset, joita pidetään "lukemattomina". Voit ottaa vastaan ​​push- ja paikallisilmoituksia, joilla ei ole lukematonta tilaa, asettamalla sovelluksesi merkkien määräksi 0 poistaaksesi sovelluksen ilmoitukset ilmoituskeskuksesta.

Käyttöliittymän automaatio

  • Käytettäessä performTaskWithPathArgumentsTimeout menetelmä UIAHost käyttöliittymän automaatiokomentosarjassa, jossa API tulostaa liikaa (esimerkiksi tuhansia tekstirivejä) standardilähtöön tai vakiovirheeseen, tehtävä saattaa lukkiutua aikakatkaisuun asti, jolloin se aiheuttaa JavaScript-poikkeuksen.
  • lock() ja unlock() toiminnot UIATarget on korvattu lockForDuration() toiminto.
  • iOS 5:ssä voit nyt käynnistää UI Automation -skriptin suorittamisen iOS-laitteella isäntäpäätteestä käyttämällä instrumenttityökalua. Komento on:
    • instruments -w <device id> -t <template> <application>
  • Kun käytät käyttöliittymäautomaation cli-instrumentteja, voit nyt kohdistaa oletusautomaatiomalliin ja välittää komentosarjan ja tulospolun työkaluun ympäristömuuttujavaihtoehtoina. Esimerkiksi:
    • instruments -w <device id> -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <application> -e UIASCRIPT <script> -e UIARESULTSPATH <results path>

UIKit

  • IOS 5:n kiertokutsuja ei sovelleta näyttöohjaimiin, jotka esitetään koko näytöllä. Tämä tarkoittaa sitä, että jos koodisi esittää näkymäohjaimen toisen näkymäohjaimen yläpuolella ja käyttäjä tämän jälkeen kääntää laitteen eri suuntaan, taustalla oleva ohjain (eli esittävä ohjain) ei saa kiertokutsuja hylättynä. Huomaa kuitenkin, että esittävä ohjain saa a viewWillLayoutSubviews soittaa, kun se tulee uudelleen näkyviin, ja interfaceOrientation ominaisuus voidaan tiedustella tällä menetelmällä ja käyttää ohjaimen asettamiseen oikein.
  • iOS 5:ssa UIPickerView luokka ei lähetä sitä pickerView:didSelectRow:inComponent: delegoida viesti vastauksena kohteen ohjelmalliseen valintaan.
  • Palaavien nil mistä tableView:viewForHeaderInSection: menetelmä (tai sitä vastaava alatunniste) ei enää riitä piilottamaan otsikkoa. Sinun on ohitettava tableView:heightForHeaderInSection: ja palata0.0 piilottaaksesi otsikon.
  • iOS 5:ssa UITableView luokassa on kaksi tapaa siirtää yksi solu riviltä toiselle määritetyillä parametreilla. Näillä sovellusliittymillä on:
  • Käyttäen UIWebView luokkaa Interface Builderissa, läpinäkyvän taustavärin asettaminen on mahdollista iOS 5:ssä. Uutta SDK:ta vastaan ​​kääntävät kehittäjät voivat tarkistaa XIB:stään UIWebView läpinäkyvät asetukset.
  • iOS 5:ssa UINavigationBarUIToolbarja UITabBar toteutukset ovat muuttuneet niin, että drawRect: menetelmää ei kutsuta, ellei sitä ole toteutettu alaluokassa. Sovellukset, jotka on otettu käyttöön uudelleendrawRect: missä tahansa näistä luokista, huomaat, että drawRect: menetelmää ei kutsuta. UIKit suorittaa linkkien tarkistuksen estääkseen menetelmän kutsumisen sovelluksissa, jotka on linkitetty ennen iOS 5:tä, mutta se ei tue tätä mallia iOS 5:ssä tai uudemmissa. Sovellukset voivat joko:
    • Käytä mukautussovellusliittymää palkkeihin iOS 5:ssä ja uudemmissa, mikä on suositeltava tapa.
    • alaluokka UINavigationBar (tai muut baariluokat) ja ohita drawRect: alaluokassa.
  • indexPathForRow:inSection:sectionja row menetelmät NSIndexPath nyt käytössä NSInteger sijasta NSUInteger, jotta nämä tyypit vastaavat kohdassa määritettyjä menetelmiä UITableView.
  • Käyttäytyminen UITableView luokan scrollToRowAtIndexPath:atScrollPosition:animated: menetelmä on muuttunut. Jos selaa asema UITableViewScrollPositionTop orUITableViewScrollPositionBottom on määritetty, menetelmä mukautuu nyt arvon ylä- ja alaosaan contentInset omaisuutta.
  • iOS 5:tä edeltävissä julkaisuissa UIPopoverController luokka asettaisi ehdoitta ponnahdusohjaimen sisällön tarjoavien näkymäohjainten automaattisen kokoamismaskit. Se asettaisi myös ehdoitta näytölle siirrettyjen näkymäohjainten näkymien automaattisen koon muuttamisen maskit. UINavigationController objekti, joka oli ponnahdusohjaimen sisältönäkymäohjain UIPopoverController luokka ei enää tee tätä sovelluksille, jotka on linkitetty iOS 5:een tai uudempaan. Kehittäjien tulee varmistaa, että näkymien automaattisen koon muuttamisen maskit on asetettu oikein, jotta ne mahdollistavat mielivaltaisen koon muuttamisen missä tahansa säilössä, ei vain ponnahdusikkunoissa. Naamio pois (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight) on kohtuullinen.
  • Täydennyksen käsittelijä kohteelle saveToURL:forSaveOperation:completionHandler: kutsutaan koordinoidun kirjoituslohkon ulkopuolelle.
  • autosaveWithCompletionHandler: menetelmää käytetään nyt vain kausiperusteisessa säästämisessä, kun on turvallista palauttaa säästämättä. Asiakirjat on kuitenkin tallennettava, jossaveToURL:forSaveOperation:completionHandler: menetelmää käytetään.

Safari ja WebKit

  • iOS 5:ssä uusi peritty CSS-ominaisuus, -webkit-overflow-scrolling, on käytettävissä. Arvo touch antaa verkkokehittäjälle mahdollisuuden valita natiivityylinen vieritys overflow:scroll elementtejä. Tämän ominaisuuden oletusarvo on auto, joka mahdollistaa vierityksen yhdellä sormella ilman vauhtia.
  • WebKit-kehys on päivitetty versioon, joka vastaa läheisesti Safari 5.1:n työpöydällä käyttämää moottoria. Uudessa WebKit-kehyksessä iOS 5:ssä on joitakin asioita, jotka on huomioitava. Erityisesti UIWebView:tä käyttävät verkkosivustot ja natiivisovellukset:
    • Siellä on uusi HTML5-yhteensopiva jäsentäjä.
    • Tekstin asettelun leveys voi muuttua hieman, koska sanan pyöristys on nyt liukulukupohjainen.
    • On parannettu validointi <input type=number> lomakekenttä, joka sisältää etunollien ja numeromuotoilun poistamisen.
    • Kosketustapahtumia tuetaan nyt syöttökentissä.
    • <input type=range> on nyt tuettu.
    • window.onerror on nyt tuettu.
    • On uusi käyttäjäagentti, jonka käyttäjäagenttimerkkijonossa ei ole aluetietoja.
    • URL-osoitteet on nyt kanonisoitu tekemällä mallista kaikki pienet kirjaimet. Jos väärennettyä URL-osoitetta käytetään tietojen välittämiseen osoitteesta a UIWebView takaisin alkuperäiseen koodiin, varmista, että malli on aina pienillä kirjaimilla tai että natiivikoodi vertaa mallia isot ja pienet kirjaimet huomioimatta.

Wi-Fi-synkronointi

  • Langattoman synkronoinnin tuki vaatii Mac OS X 10.6.8:n tai Lionin. Näet vaihtoehdon ottaa käyttöön langaton synkronointi, kun liität laitteesi iTunesiin USB-kaapelilla. On suositeltavaa suorittaa ensimmäinen synkronointi kaapelilla laitteen palauttamisen jälkeen.
    • Langaton synkronointi käynnistyy automaattisesti, kun laite on kytketty virtalähteeseen ja samassa verkossa kuin pariksi liitetty tietokone. Tai voit käynnistää synkronoinnin manuaalisesti iTunesista tai kohdasta Asetukset > Yleiset > iTunes Synkronointi (sama verkko kuin pariksi liitetty tietokone vaaditaan).
    • Jos huomaat ongelmia laitteeseesi synkronoitujen sovellusten, median ja/tai valokuvien kanssa, voit nollata ja synkronoida sitten uudelleen. Valitse Asetukset > Yleiset > Nollaa ja valitse Poista kaikki sisältö ja asetukset. Yhdistä sitten iTunesiin ja synkronoi uudelleen.

Xcode-työkalut

Lisätietoja Xcoden, Interface Builderin, Instrumentsin ja iOS Simulatorin muutoksista on kohdassa Xcoden julkaisutiedot.