Il registro delle modifiche di iOS 8.1.1 mostra TUTTE le modifiche

  iOS 8.1.1 a fost lansat cu aproximativ două ore în urmă de către compania Apple pentru dezvoltatorii săi de aplicații pentru iPhone, iPad e iPod Touch, iar eu v-am spus că îmbunătățirea performantețelor iPad 2 și iPhone 4S este principala sa parte “atractivă”. Pentru această actualizare Apple a lansat inclusiv un changelog în care listează toate schimbările mai puțin vizibile, adică toate acelea care ne oferă un sistem de operare mai rapid și cu mult mai puține probleme.

  iOS 8.1.1 este disponibil deocamdată pentru descărcare doar din website-ul dedicat dezvoltatorilor de aplicații și nu se știe dacă îl veți putea instala în terminalele voastre fără a avea un UDID înregistrat în contul unui dezvoltator de aplicații.

iOS 8.1.1 changelog – TOATE noutățile

Note e problemi noti

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

AVCapture

Problema conosciuto

Uso della nuova costante, AVCaptureISOCurrent, si tradurranno in valori ISO incoerenti (come osservato nella proprietà ISO) se setExposureModeCustomWithDuration:ISO:completionHandler: viene chiamato ripetutamente.

Cloud Kit

Note:

Un singolo CKAsset l'istanza non può più essere impostata come valore su più CKRecord.

Contatti

Note:

Il selettore persone dell'interfaccia utente della Rubrica è stato modificato per iOS 8. È stata aggiunta una nuova modalità con una nuova API in cui l'app non necessita dell'accesso ai contatti dell'utente e all'utente non verrà richiesto l'accesso. Una copia temporanea della persona selezionata viene restituita all'app. SEEABPeoplePickerNavigationController.h per ulteriori dettagli.

Guarda il nuovo progetto di esempio PeoplePicker: Picking a Person or Property che dimostra l'utilizzo della nuova modalità.

Fornitori di documenti

Note

  • La tua app necessita del diritto iCloud per poter essere utilizzata come fornitore di documenti.

  • The com.apple.developer.icloud-container-identifiers entitlement is required.

Problemi noti

  • Dopo aver ruotato il selettore documenti in orizzontale, la barra di stato viene nascosta.

  • Quando si apre il selettore documenti in orizzontale, la vista contenitore può essere spostata sotto la barra di navigazione.

Estensioni

Note

  • Le estensioni necessitano di una slice arm64 per essere eseguite su dispositivi a 64 bit. Se provi a eseguire la slice armv7 su un dispositivo a 64 bit, non funzionerà.

  • Le app devono avere una slice arm64 se il pacchetto contiene un framework a cui sono collegate sia l'app che l'estensione dell'app.

File System

Note:

Il layout del file system dei contenitori delle app è cambiato sul disco. Invece di fare affidamento su una struttura di directory codificata, utilizzare il file NSSearchPathForDirectoriesInDomains funzione o il URLForDirectory:inDomain:appropriateForURL:create:error: metodo del NSFileManagerclasse. SEE Accesso a file e directory in Guida alla programmazione del file system.

Caratteri

Note:

Il carattere del sistema tailandese è stato aumentato di dimensioni per migliorare la leggibilità. Ciò causerà il ritaglio in molti punti dell'interfaccia utente se non intraprendi le azioni appropriate:

  1. Usa il UILabel per quanto possibile. Se utilizzi Interface Builder, assicurati che Sottovisualizzazioni clip non sia selezionato. UIKit aumenterà l'area di ritaglio secondo necessità per non ritagliare il testo.

  2. Utilizza il tipo dinamico. Ciò garantirà che non vi siano glifi sovrapposti nelle etichette multilinea o nei campi di testo.

Se non puoi fare 1 e 2 perché implementi le tue opinioni, devi implementare misure per non ritagliare. Puoi utilizzare CoreText per individuare l'area di ritaglio appropriata per una riga di testo chiamando:

CTLineGetBoundsWithOptions(lineRef, kCTLineBoundsIncludeLanguageExtents);

Per evitare la sovrapposizione di glifi negli elementi di testo multilinea, regolare l'altezza della linea. Si consiglia un ulteriore 30%.

Questa misura aiuterà anche la tua app a funzionare meglio in altre lingue, tra cui arabo, hindi e vietnamita.

HealthKit

Note:

Il codice che tenta di leggere le informazioni sull'allenamento in HealthKit potrebbe non essere in grado di effettuare query successive a HealthKit.

Se utilizzi HKWorkouts dovresti evitare di leggere gli allenamenti quando esegui versioni iOS precedenti alla 8.1 con:

NSOperatingSystemVersion ios8_1_0 = (NSOperatingSystemVersion){8, 1, 0};
if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios8_1_0]) {
// Read and write workout information to HealthKit.
} Else {
// Write workout information to HealthKit
}

Problema conosciuto

Blood glucose data is currently not displayed in the Health app. 3rd party access and APIs are not affected. Access controls for Blood Glucose and all other Health data can still be managed in the Health app and in Settings > Privacy > Health.

Per ulteriori informazioni, vedere https://support.apple.com/kb/HT6533.

iCloud

Note:

Il trasferimento della posta e AirDrop potrebbero smettere di funzionare dopo aver modificato la password iCloud su appleid.apple.com.

Soluzione: Esci e torna su iCloud sul dispositivo.

iCloud unità

Note:

URLForUbiquityContainerIdentifier: potrebbe tornare nil quando esegui l'applicazione in Xcode. In tal caso, apri Preferenze di Sistema, vai su iCloud > iCloud Drive e abilita Xcode.

tastiere

Problema conosciuto

Additional Keyboards, including 3rd party keyboards, may not appear in Safari, Maps or 3rd party apps on the Simulator.

Soluzione: Le tastiere dovrebbero essere testabili in Calendario, Spotlight, Contatti e Foto.

Centro di notifica

Note:

Il programma e la destinazione d'uso di widgetPerformUpdateWithCompletionHandler: è inteso come una comoda sede per tutta la logica di aggiornamento dei dati/modelli. Se implementato, il sistema chiamerà al momento opportuno il widget per aggiornare il suo stato, sia quando il Centro notifiche è visibile, sia in background. È necessaria un'implementazione per abilitare gli aggiornamenti in background. Si prevede che il widget esegua il lavoro di aggiornamento in modo asincrono e il più possibile fuori dal thread principale. I widget dovrebbero chiamare il blocco dell'argomento una volta completato il lavoro, passando l'appropriato NCUpdateResult. I widget NON dovrebbero bloccare il ritorno da viewWillAppear: sui risultati di questa operazione. Invece, i widget dovrebbero caricare lo stato memorizzato nella cache viewWillAppear: per corrispondere allo stato della vista dall'ultimo viewWillDisappear:, quindi passa senza problemi ai nuovi dati quando arrivano.

NSURLSession

Note:

I NSURLSessionTask La classe fornisce una nuova proprietà "priorità" con tre costanti associate: NSURLSessionTaskPriorityDefault, NSURLSessionTaskPriorityLowe NSURLSessionTaskPriorityHigh. NSURLSessionTask le priorità possono essere utilizzate per specificare la priorità a più richieste e risposte allo stesso host. Tieni presente che la priorità è un suggerimento e non una garanzia rigorosa NSURLSessionTask e le prestazioni.

Per i dettagli completi sull'utilizzo di NSURLSessionTask priorità, fare riferimento a NSURLSession.h file di intestazione, fornito dal framework Foundation.

Telefono

Note

Per attivare la funzionalità di chiamata Wi-Fi per T-Mobile (solo Stati Uniti), attenersi alla seguente procedura:

  • Vai su Impostazioni > Telefono > Chiamate Wi-Fi.

  • Imposta l'interruttore Chiamate Wi-Fi su ON.

  • Se il corriere non dispone dell'indirizzo di emergenza registrato dell'utente, ti verrà chiesto di aggiungerlo prima dell'attivazione della funzione.

Foto

Note

  • Mantieni un backup della tua libreria di foto prima di abilitare e durante l'utilizzo della versione beta della libreria di foto di iCloud:

    • Importazione sul tuo Mac utilizzando iPhoto

    • Importazione sul tuo Mac utilizzando Acquisizione Immagine

  • La versione beta della libreria foto di iCloud non scaricherà foto e video che sono stati sincronizzati sul tuo dispositivo da iTunes. Tutte le foto e i video sincronizzati sul tuo dispositivo da iTunes verranno rimossi quando abiliti la versione beta della libreria foto di iCloud.

  • iPhoto per iOS non verrà avviato su iOS 8 Beta. L'avvio di Photos.app migrerà le modifiche di iPhoto alla libreria foto di iOS 8. Assicurati che i dati di iPhoto per iOS siano inclusi nel backup del dispositivo.

  • La possibilità di ottimizzare automaticamente lo spazio sul dispositivo è abilitata per tutti gli account superiori a 5 GB.

  • Quando utilizzi Condivisione famiglia iCloud, sono abilitati sia Condivisione foto iCloud che Il mio streaming foto.

Profili di approvvigionamento

Problema conosciuto

If you have upgraded to the 8.1.1 Beta from iOS 8 Betas you may see your apps crashing due to provisioning profile issues.

Soluzione:

  1. Collega il dispositivo tramite USB al tuo Mac

  2. Avvia Xcode

  3. Scegli Finestra -> Dispositivi

  4. Fare clic con il tasto destro sul dispositivo nella colonna di sinistra, selezionare "Mostra profili di provisioning"

  5. Fare clic sul profilo di provisioning in questione

  6. Premi il bottone

  7. Continua a rimuovere tutti i profili interessati.

  8. Reinstallare l'app

UIKit

Note

  • UILabel ha un valore predefinito di YES per clipsToBounds. Questo è diverso dal normale UIView predefinito di NO.

  • I leftLayoutGuide ed rightLayoutGuide Le API sono state rimosse. Si prega di utilizzare il layoutMargins proprietà invece.

WebKit

Note

L'API Navigation Timing è stata disabilitata solo su iOS a causa di problemi di prestazioni.

Chiamate Wi-Fi (solo T-Mobile USA)

Note:

Il nome dell'operatore nella barra di stato mostrerà "T-Mobile Wi-Fi" quando il dispositivo è in grado di effettuare e ricevere chiamate Wi-Fi.