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) sesetExposureModeCustomWithDuration: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. SEE
ABPeoplePickerNavigationController.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 ilURLForDirectory:inDomain:appropriateForURL:create:error:
metodo delNSFileManager
classe. 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:
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.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 tornarenil
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'appropriatoNCUpdateResult
. I widget NON dovrebbero bloccare il ritorno daviewWillAppear:
sui risultati di questa operazione. Invece, i widget dovrebbero caricare lo stato memorizzato nella cacheviewWillAppear:
per corrispondere allo stato della vista dall'ultimoviewWillDisappear:
, 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
,NSURLSessionTaskPriorityLow
eNSURLSessionTaskPriorityHigh
.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 rigorosaNSURLSessionTask
e le prestazioni.Per i dettagli completi sull'utilizzo di
NSURLSessionTask
priorità, fare riferimento aNSURLSession.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:
Collega il dispositivo tramite USB al tuo Mac
Avvia Xcode
Scegli Finestra -> Dispositivi
Fare clic con il tasto destro sul dispositivo nella colonna di sinistra, selezionare "Mostra profili di provisioning"
Fare clic sul profilo di provisioning in questione
Premi il bottone
Continua a rimuovere tutti i profili interessati.
Reinstallare l'app
UIKit
Note
UILabel
ha un valore predefinito di YES perclipsToBounds
. Questo è diverso dal normaleUIView
predefinito di NO.I
leftLayoutGuide
edrightLayoutGuide
Le API sono state rimosse. Si prega di utilizzare illayoutMargins
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.