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 kauttaDNSService*()
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 arvoonkDNSServiceInterfaceIndexP2P
. 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 anNSPredicate
-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 ohittaanil
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:
- Asenna profiili. (Helppoin tapa tehdä tämä on lähettää se postitse itsellesi ja avata liite laitteellasi.)
- Toista bugi.
- Synkronoi iTunesin kanssa poistaaksesi lokit laitteeltasi.
- 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:
- Synkronoi kaikki laitteet, joissa on beta 7 asennettuna iTunesin beta 7:n mukana tulleeseen versioon.
- Päivitä iTunes GM-julkaisun mukana tulevaan versioon.
- Liitä laite ja asenna GM-ohjelmisto. (Ymmärrä, että saatat nähdä virheen synkronoinnissa, kun yhdistät laitteen ensimmäisen kerran.)
- 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()
jaunlock()
toiminnotUIATarget
on korvattulockForDuration(
)
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, jainterfaceOrientation
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 ohitettavatableView: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äänUIWebView
läpinäkyvät asetukset. - iOS 5:ssa
UINavigationBar
,UIToolbar
jaUITabBar
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 ohitadrawRect:
alaluokassa.
- -
indexPathForRow:inSection:
,section
jarow
menetelmätNSIndexPath
nyt käytössäNSInteger
sijastaNSUInteger
, jotta nämä tyypit vastaavat kohdassa määritettyjä menetelmiäUITableView
. - Käyttäytyminen
UITableView
luokanscrollToRowAtIndexPath:atScrollPosition:animated:
menetelmä on muuttunut. Jos selaa asemaUITableViewScrollPositionTop
orUITableViewScrollPositionBottom
on määritetty, menetelmä mukautuu nyt arvon ylä- ja alaosaancontentInset
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äohjainUIPopoverController
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ä. Arvotouch
antaa verkkokehittäjälle mahdollisuuden valita natiivityylinen vieritysoverflow:scroll
elementtejä. Tämän ominaisuuden oletusarvo onauto
, 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.