Registro delle modifiche di iOS 7 beta 6

  Il lancio "a sorpresa". a iOS beta 7 6 da Apple è principalmente legato alla risoluzione dei problemi di sistema iTunes nel cloud, il resto delle modifiche sono minori e interessano vari meccanismi del sistema operativo. Questo è il log delle modifiche più breve pubblicato da Apple per l'eventuale versione beta del suo sistema operativo, quindi non aspettatevi molte novità.

Introduzione

iOS SDK 7.0 fornisce supporto per lo sviluppo di app iOS e include il set completo di strumenti, compilatori e framework Xcode per la creazione di app per iOS e OS X. Questi strumenti includono l'IDE Xcode e lo strumento di analisi Instruments, tra molti altri.

Con questo software puoi sviluppare app per iPhone, iPad o iPod touch con iOS 7. Puoi anche testare le tue app utilizzando il simulatore iOS incluso, che supporta iOS 7. iOS SDK 7.0 richiede un computer Mac con OS X v10.8.4 ( Leone di montagna) o successivo.

Questa versione di iOS è destinata all'installazione solo su dispositivi registrati con l'Apple Developer Program. Il tentativo di installare questa versione di iOS in modo non autorizzato potrebbe mettere il tuo dispositivo in uno stato inutilizzabile.

Per ulteriori informazioni e risorse di supporto aggiuntive, visitare http://developer.apple.com/programs/ios/.

Segnalazione di bug

Per segnalare eventuali bug non menzionati nel Note e problemi noti sezione, utilizzare Apple Bug Reporter sul sito web degli sviluppatori Apple (http://developer.apple.com/bugreporter/). Inoltre, puoi discutere di questi problemi e dell'SDK iOS 7.0 nei forum degli sviluppatori Apple:http://devforums.apple.com. Per ottenere ulteriori informazioni su iCloud for Developers, vai a http://developer.apple.com/icloud.

Informazioni importanti sulle librerie di musica e video

Questo aggiornamento risolve un problema con iTunes in the Cloud, a causa del quale alcuni acquisti potrebbero scaricare o riprodurre elementi imprevisti. Se disponi di dispositivi con versioni precedenti di iOS 7 beta, dovresti:

  1. Installa iOS 7 beta 6.
  2. Installa il profilo di configurazione ResetMusicAndVideosLibraries da iOS Dev Center.
  3. Da Impostazioni > Musica, tocca il pulsante Ripristina catalogo multimediale.
  4. Riavviare il dispositivo.

Note e problemi noti

I seguenti problemi riguardano l'utilizzo di iOS SDK 7.0 per sviluppare codice.

Rubrica

Note

  • Le classi in AddressBookUI il framework ora impedisce esplicitamente la creazione di sottoclassi. Per le app collegate all'SDK di iOS 7, il tentativo di inizializzare una sottoclasse di una di queste classi restituisce zero. Per le app collegate a SDK precedenti, l'unica modifica al comportamento è un avviso registrato nella console.
  • A partire dal Seed 4, supporto per la privacy per il file AddressBookUI framework viene riattivato per le app collegate all'SDK di iOS 7. Le app collegate agli SDK precedenti non vengono modificate. Se la tua app utilizza uno qualsiasi dei controller di visualizzazione della Rubrica, dovresti verificare che funzioni ancora come previsto.

Airdrop

Note

  • AirDrop in iOS 7 Seed 2 o versioni successive non è compatibile con AirDrop in iOS 7 Seed 1.
  • Contatti Solo il supporto richiede che:
    • Hai effettuato l'accesso a iCloud.
    • Il mittente e il destinatario hanno gli indirizzi e-mail dell'ID Apple l'uno dell'altro in Contatti sui propri dispositivi.

Fondazione AV

Note

AVCaptureSession ora utilizza la tua app AVAudioSession per impostazione predefinita.

Animazione di base

Note

Quando il UIViewGroupOpacity la chiave non è presente, il valore predefinito ora è YES. L'impostazione predefinita in precedenza era NO.

Ciò significa che le viste secondarie di una vista trasparente verranno prima composte su quella vista trasparente, quindi la struttura secondaria precomposta verrà disegnata nel suo insieme sullo sfondo. Un'impostazione NO si traduce in una composizione meno costosa, ma anche meno accurata: ogni vista nel sottoalbero trasparente è composta su ciò che c'è sotto, in base all'opacità del genitore, nell'ordine dell'algoritmo del normale pittore.

Exchange

Note

Nel Seed 4 e versioni successive, Exchange DeviceIdentifier è stato riportato al comportamento di iOS 6 in cui utilizza il numero di serie.

Caratteri

Note

Nel seed 4 sono state introdotte nuove altezze di riga del font. Se avessi allineato manualmente il tuo font nei seed precedenti, potrebbe spostarsi leggermente verso l'alto verticalmente nei seed successivi.

Fondazione

Note

  • An NSMetadataQuery con portata onnipresente ora può essere utilizzato kMDItemContentTypeTree nei predicati. Per esempio:
    • NSPredicate *p = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression ExpressionForKeyPath:@"kMDItemContentTypeTree"] rightExpression:[NSExpression ExpressionForConstantValue:@"public.rtf"] modificatore: NSAnyPredicateModifier type:NSLikePredicateOperatorType options:0];
  • Quando richiamato sui risultati restituiti da query con ambiti onnipresenti, -[NSMetadataItem valueForAttribute:NSMetadataItemDisplayNameKey] ora produce lo stesso valore di -[NSURL getResourceValue: forKey: NSURLLocalizedNameKey], corrispondente a query non onnipresenti.

iCloud

Note

  • Se utilizzi il portachiavi iCloud con il ripristino, potresti visualizzare una finestra di dialogo che indica che il ripristino è stato disabilitato a causa di una modifica del server. Questo è intenzionale. Per riattivare la funzionalità, segui le istruzioni nella notifica. Se visualizzi più avvisi o osservi problemi con la riattivazione del ripristino, invia una segnalazione di bug.
  • Il portachiavi iCloud in iOS 7 Seed 3 o versioni successive non è compatibile con le versioni precedenti di iOS 7 Seed 2 o OS X Mavericks Seed 2.

    Se avevi il portachiavi iCloud e/o il ripristino del portachiavi abilitati da iOS 7 Seed 2, entrambe le funzionalità vengono disabilitate durante l'aggiornamento a iOS 7 Seed 3 o versioni successive.

    Dopo l'aggiornamento a iOS 7 Seed 3 o versioni successive, vai su Impostazioni > iCloud > Portachiavi e riattiva il Portachiavi iCloud sui tuoi dispositivi.

    Per ulteriori dettagli, vedere le note sulla versione di OS X v10.9.

  • Blocco attivazione, una nuova funzionalità di Trova il mio iPhone, si attiva automaticamente quando Trova il mio iPhone è abilitato su qualsiasi dispositivo con iOS 7. Blocco attivazione richiede agli utenti di inserire il proprio ID Apple e la password per disattivare Trova il mio iPhone, uscire da iCloud , cancellare il dispositivo o riattivare il dispositivo dopo una cancellazione. È importante eseguire una delle seguenti operazioni prima di trasferire un dispositivo a un nuovo utente:
    • Esci da iCloud.
    • Disattiva Blocco attivazione in Impostazioni > iCloud > Trova il mio iPhone.

Problemi noti

I campi password non vengono visualizzati nelle visualizzazioni degli avvisi per le app in modalità orizzontale (ad esempio, autenticazione Game Center o acquisto in-app). L'inserimento del testo funziona ancora, anche se non puoi vedere cosa stai digitando.

MAPK

Note

Se le chiamate a renderInContext sullo strato di supporto an MKMapView vengono creati fuori dal thread principale, devono essere eliminati o spostati nel thread principale. In caso contrario, l'app potrebbe bloccarsi. Invece di usare renderInContext, usa il nuovo MKMapSnapshotter API.

Media

Note

iOS ora ricorda l'ultima app multimediale utilizzata durante i riavvii e gli arresti anomali delle app. Le app multimediali in grado di ricevere eventi di controllo remoto devono essere preparate per essere avviate in background e potenzialmente ricevere un evento di controllo remoto per avviare la riproduzione. Inoltre, è importante che le app multimediali monitorino e gestiscano l'evento di ripristino del server multimediale, poiché l'app multimediale potrebbe ricevere una richiesta remota per riprendere la riproduzione dopo un ripristino. Le notifiche per monitorare questi eventi del server multimediale sono disponibili in AVAudioSession e la corretta gestione è descritta in Consigli generali per la gestione di kAudioSessionProperty_ServerDied.

Connettività multi-peer

Note

MCSession Le API funzionano così come sono state presentate al WWDC. Le principali modifiche e miglioramenti includono:

  • Il seguente nuovo metodo attivo MCSession è stato implementato:
    • - (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID errore:(NSError **)errore

    Questo metodo delegato è stato implementato:

    • - (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
  • Il seguente nuovo metodo attivo MCSession è stato implementato:
    • - (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandler

    Il metodo delegato per iniziare a ricevere una risorsa dal peer remoto è stato implementato come:

    • - (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress

    Il metodo delegato per completare la ricezione di una risorsa dal peer remoto e salvare il contenuto in una posizione temporanea viene implementato come:

    • - (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)errore

  • MCAdvertiserAssistant è una classe pratica per implementare un inserzionista, che gestisce gli inviti e le connessioni a un MCSession.
  • MCSession ha un nuovo initWithPeer: metodo.
  • sendResource ha aggiunto "con" al completionHandler.
  • Il timeout è stato rimosso da connectPeer:withNearbyConnectionData.

Per ulteriori informazioni su queste API, guarda il video della sessione 2013 della WWDC 708, "Reti vicine con connettività multipeer".

Multitasking

Note

  • AVAudioSession non può più essere attivato dalle app in background che si riattivano a causa di eventi di recupero in background, trasferimenti in background e notifiche remote.
  • Il criterio per l'API di completamento delle attività è tornato a corrispondere al comportamento di iOS 6, ma il limite di tempo per il completamento delle attività è diminuito da 10 minuti in iOS 6.

Networking

Note

  • La tecnologia di fallback cellulare presente nei seed precedenti è stata rimossa a partire dal seed 5.
  • Due API di rete di basso livello che in passato restituivano un indirizzo MAC ora restituiscono il valore fisso 02:00:00:00:00:00. Le API in questione lo hanno sysctl (NET_RT_IFLIST) ed ioctl (SIOCGIFCONF). Gli sviluppatori che utilizzano il valore dell'indirizzo MAC dovrebbero migrare verso identificatori come -[UIDevice identifierForVendor]. Questa modifica interessa tutte le app in esecuzione su iOS 7.

Runtime di Objective-C

Note

A causa di cambiamenti nel modo in cui isa il campo è implementato, *self può cambiare durante l'enumerazione (ad esempio, se il contenitore viene mantenuto).

Soluzione alternativa: durante l'implementazione countByEnumeratingWithState, non impostare state->mutationsPtr = self.

Libretto di risparmio

Note

  • A partire da iOS 7 Seed 4, Passbook ha aggiunto il supporto per i campi maggiori e minori per adattarsi meglio al resto dell'ecosistema iBeacon. Il nuovo major ed minor i tasti sono variabili indipendentemente opzionali a fianco proximityUUID (obbligatorio) in ciascun dizionario del file beacons Vettore.
  • Nelle versioni precedenti di iOS SDK, Passbook non convalidava completamente i campi posteriori dei pass. Le regole di convalida non sono cambiate, ma la convalida ora include i campi posteriori. Controllare il registro della console per ulteriori registri.
  • A partire da iOS 7 Seed 3, PKPassLibraryDidCancelAddPasses è un nuovo codice di stato in PKPassLibraryAddPassesStatus enum. Significa che l'utente ha toccato Annulla in un avviso di aggiunta passaggi.

Foto

Note

Dopo l'aggiornamento da un seed precedente, le miniature delle foto nell'app Foto non verranno visualizzate per un breve periodo.

Sicurezza

Note

  • -[UIDevice uniqueIdentifier] non è più accettato negli invii all'App Store. In iOS 7, alle app già presenti nello store o sui dispositivi degli utenti che chiamano questa API rimossa non verrà più restituito l'UDID. Invece, -[UIDevice uniqueIdentifier] restituirà una stringa di 40 caratteri che inizia con FFFFFFFF, seguita dal valore esadecimale di -[UIDevice identifierForVendor]. È importante considerare come ciò influirà sulle app esistenti. Considero l'invio di aggiornamenti che non accedono più all'UDID.
  • iOS ora richiede il consenso dell'utente affinché le app utilizzino l'input audio su tutti i dispositivi iOS 7. Per i dispositivi venduti in Cina, iOS richiederà anche il consenso dell'utente affinché le app utilizzino l'hardware della fotocamera. Il sistema operativo presenterà l'avviso di consenso quando si imposta la categoria dell'istanziatoAVAudioSessionAVAudioSession le categorie che presenteranno l'avviso sono AVAudioSessionCategoryRecord ed AVAudioSessionCategoryPlayAndRecord.

    Se l'utente non consente l'accesso, i dati della sessione audio saranno tutti zeri (silenzio). Per i dispositivi in ​​cui l'accesso alla telecamera è richiesto e negato dall'utente, la sessione di acquisizione video è una schermata nera.

  • L'API gethostuuid() è stato rimosso e non sarà accettato per l'invio allo store, indipendentemente dal sistema operativo di destinazione. Per le app esistenti in esecuzione su iOS 7, la funzione restituirà una rappresentazione uuid_t dell'identificatore del fornitore (-[UIDevice identifierForVendor]).

Siri

Note

Questo seed include versioni di sviluppo di nuove voci maschili e femminili di Siri per inglese americano, francese e tedesco.

Social

Note

  • Tramite iOS 6, durante l'utilizzo TWTweetComposeViewController ed SLComposeViewController (quest'ultimo solo per Twitter e Weibo, ma non per Facebook), se il chiamante fornisce a completionHandler, il fornito completionHandler è responsabile della chiusura del controller di visualizzazione. A partire da iOS 7, se l'app si collega all'SDK di iOS 7, il controller della vista si chiuderà anche se il chiamante fornisce un completionHandler. Per evitare ciò, il chiamante completionHandler non dovrebbe chiudere il controller della vista.
  • Quando utilizzi l'SDK di iOS 6.1 su OS X v10.8 Mountain Lion, se utilizzi l'SDK Legacy di iOS 5.0 o iOS 5.1 nel simulatore iOS, non sarai in grado di utilizzare le funzionalità di Twitter: tentando di accedere a Twitter tramite il riquadro Impostazioni fallirà, e Twitter.framework non funzionerà correttamente. Se devi testare le funzionalità di Twitter, dovrai scegliere una destinazione di esecuzione del simulatore iOS 6.1 o iOS 6.0 oppure puoi testare con iOS 5.x su un dispositivo.

Trampolino

Note

  • I tocchi attivi non vengono più annullati quando l'utente acquisisce uno screenshot.
  • Lo sfondo dinamico non è disponibile su iPhone 4.

Kit dello sprite

Note

+[AVPlayer playerWithPlayerItem:] restituisce un AVPlayer oggetto, ma l'elemento corrente restituirà nil se il lettore è stato creato su un altro thread.

Negozi

Problemi noti

I download delle app possono rimanere bloccati nello stato "In attesa".

Soluzione alternativa: riavviare il dispositivo una o due volte per risolvere il problema e consentire il proseguimento dei download successivi.

UIKit

Note

  • Prima del seed 4, l'API snapshot (snapshotView ed resizableSnapshotViewFromRect:withCapInsets:) ritarderebbe l'acquisizione dello snapshot se la vista non fosse mai stata impegnata o fosse stata aggiunta alla gerarchia della vista nella transazione corrente. Questo comportamento è cambiato.

    Le istantanee ora rappresentano sempre lo stato di commit corrente della vista. Il tentativo di eseguire lo snapshot di una vista di cui non è mai stato eseguito il commit registra un messaggio e ora restituisce nil.

  • I metodi di snapshot sono stati aggiornati e ora accettano un argomento: afterUpdates. Se impostato su YES, indica allo snapshot di attendere fino al completamento di tutte le modifiche in sospeso alla gerarchia. Per mantenere il comportamento pre-Seed 4, passa NO e l'istantanea catturerà ciò che è attualmente sullo schermo. SEE UIView.h per ulteriori dettagli.
  • Quando non c'è abbastanza spazio nel layout della barra di navigazione per il testo completo del titolo del pulsante Indietro, la barra di navigazione sostituirà un titolo generico di ritorno breve (in inglese, "Indietro"). Se anche quella stringa è troppo lunga, la barra mostrerà l'indicatore posteriore chevron senza titolo.
  • +[UIPasteboard pasteboardWithName:create:] ed +[UIPasteboard pasteboardWithUniqueName] ora univoco il nome dato per consentire solo alle app nello stesso gruppo di applicazioni di accedere al tavolo di montaggio. Se lo sviluppatore tenta di creare un pasteboard con un nome già esistente e non fa parte della stessa suite di app, otterrà il proprio pasteboard unico e privato. Tieni presente che ciò non influisce sul sistema fornito di pasteboard, generale e trova.
  • A partire dal Seed 2, le app utilizzano per impostazione predefinita il nuovo sistema di gestione della barra di stato basato su controller di visualizzazione. Per disattivarlo, aggiungi il valore NO per il UIViewControllerBasedStatusBarAppearance chiave per il tuo Info.plist.
  • Quando si utilizza il layout automatico per posizionare a UIButton, se imposti la resistenza alla compressione del contenuto o la priorità di abbracciamento del contenuto al minimo, il pulsante avrà un layout ambiguo.

    Soluzione alternativa: non utilizzare una resistenza alla compressione del contenuto o una priorità di abbracciamento del contenuto inferiore a 2 per UIButton.

  • UIScreenEdgePanGestureRecognizer consente di eseguire azioni in risposta ai passaggi oltre il bordo dello schermo utilizzando la stessa euristica che il sistema utilizza per i propri gesti. Usalo se disponi di una tua navigazione semantica che non utilizza UINavigationControllerma dovrebbe includere questo gesto (ad esempio, Safari).

    Questo riconoscimento dei gesti ha una proprietà che descrive i bordi su cui è attivo. UIRectEdge è un nuovo tipo di enumerazione che questa proprietà e -[UIViewController edgesForExtendedLayout] può condividere. UIRectEdge sostituisce UIExtendedEdge, che verrà rimosso. I membri di entrambi hanno gli stessi valori. Utilizza Xcode per sostituire tutte le istanze di "UIExtendedEdge" nel tuo progetto con "UIRectEdge".

  • UIButtonTypeInfoLightUIButtonTypeInfoDarkUIButtonTypeDetailDisclosure i pulsanti sembrano tutti uguali.
  • I livelli sfocati non sono disponibili su iPhone 4.
  • Parallasse non è disponibile su iPhone 4.
  • Il testo tipografico non è disponibile su iPhone 4.

Problemi noti

I campi password non vengono visualizzati nelle visualizzazioni degli avvisi per le app in modalità orizzontale (ad esempio, autenticazione Game Center o acquisto in-app). L'inserimento del testo funziona ancora, anche se non puoi vedere cosa stai digitando.

Tempo

Note

Le condizioni meteorologiche non sono animate su iPhone 4.

WebKit

Note

  • In precedenza, quando i parametri del viewport venivano modificati, i vecchi parametri non venivano mai eliminati. Ciò ha fatto sì che i parametri del viewport fossero additivi.

    Ad esempio, se hai iniziato con larghezza=larghezza-dispositivo e poi l'hai modificato in scala-iniziale=1.0, ti ritroverai con un viewport calcolato di larghezza=larghezza-dispositivo, scala-iniziale=1.0.

    In iOS 7 questo problema è stato risolto. Ora ti ritroverai con un viewport calcolato di scala iniziale=1.0.

  • In precedenza, durante l'utilizzo , la scala potrebbe non essere corretta dopo la rotazione.

    Ora, se un utente non ha ridimensionato esplicitamente la pagina, la pagina viene ripristinata alla sua scala iniziale. Inoltre, la scala corrente è ora correttamente limitata all'interno del file min-scalemax-scale limiti.

  • Alcune immagini per i dispositivi con display Retina vengono visualizzate con dimensioni doppie rispetto a quelle che dovrebbero invece essere ridimensionate del 50%. Questo problema può verificarsi anche con qualsiasi immagine da ridimensionare che sia più grande del relativo contenitore e che utilizzi il file background-size proprietà o il -webkit-background-sizeproprietà. Questo problema riguarda sia le app native che visualizzano contenuti Web sia le pagine Web visualizzate in Safari per iPhone.

    background La proprietà abbreviata CSS ora reimposta il valore di background-size proprietà a auto quando la dimensione dello sfondo non è specificata. Questo nuovo comportamento è conforme alle specifiche CSS e il vecchio comportamento è disponibile solo per le app collegate a un SDK precedenti a iOS 7.0 quando vengono eseguite su iOS 7 o versioni successive.

    Soluzione alternativa: specificare il background-size proprietà o il -webkit-background-size proprietà dopo il background proprietà abbreviata nel foglio di stile CSS per il contenuto Web visualizzato.

  • Le app Web e i clip Web creati prima del Seed 4 non rimarranno nelle cartelle dopo il riavvio.

    Soluzione alternativa: elimina la vecchia app Web o clip Web e ricreala in questo seed caricando il contenuto in Safari, toccando il pulsante Azione, quindi "Aggiungi alla schermata principale".

Wi-Fi

Note

Il seed 4 e versioni successive includono modifiche ad AWDL in modo tale che le tecnologie che lo utilizzano, come AirDrop e le API MultiPeerConnectivity, non funzioneranno correttamente con i seed precedenti.