iOS 10.1 beta 1 ha sido lanzado

iOS 10.1 beta 1 se lanzó hace apenas unos minutos para desarrolladores de aplicaciones de iPhone, iPad y iPod Touch.

iOS 10.1 beta 1 fue lanzado hace apenas unos minutos por parte de la compañía Apple para los desarrolladores de aplicaciones de iPhone, iPad y iPod Touch de todo el mundo. La actualización llega apenas una semana después de que se ofreciera al público en general la versión final de iOS 10, y Apple probablemente esté preparando una serie de cambios importantes.

Teniendo en cuenta que estamos hablando de un iOS 10.1 beta 1 que es una actualización de la versión anterior, si eres desarrollador de aplicaciones, es posible que tengas que descargar un nuevo perfil. Puedes hacerlo directamente desde tu cuenta de desarrollador que tienes en el portal disponible en la web de Apple.

Por ahora los de Apple no han dicho qué novedades trae iOS 10.1 beta 1 para los usuarios, pero seguro que estamos hablando de solucionar problemas con el Modo Avión, con los nuevos auriculares EarPods y con el adaptador Lightning. Todos estos problemas se informaron para el iPhone 7 y el iPhone 7 Plus inmediatamente después de su lanzamiento y se resolverán con esta actualización.

iOS 10.1 beta 1 ha sido lanzado

iOS 10.1 beta 1A continuación tenéis la lista completa de novedades de iOS 10.1 beta 1, y como veis, hablamos de muchos cambios implementados por los de Cupertino. Muchos de los cambios están relacionados con correcciones de errores del sistema operativo, por lo que no hay ninguna referencia al Modo Avión o a los auriculares Lightning, pero las soluciones ciertamente existen.

ACTUALIZACIÓN: también se lanzó watchOS 3.1 beta 1

ACTUALIZACIÓN 2: También se lanzó macOS 10.12.1 beta 1.

más pronto…

Corregido en esta versión
Movimiento
Los datos de presión barométrica de CMAltimeter ahora se informan en iPad Air 2, iPad mini 4 y
iPad Pro.
Notas y problemas conocidos
Compatibilidad binaria
• Apple reserva prefijos de dos letras para su uso en clases de marco. Al nombrar el tuyo
clases, utilice un prefijo de tres letras. Las pautas se pueden revisar aquí:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/
ProgramaciónConObjetivoC/Convenciones/Convenciones.html
Si no sigues estas pautas, tu aplicación podría fallar durante la versión beta.
Lanzamientos
• Al volver a compilar con iOS 10, llamar a [NSObject valueForKey:] con una tecla nula
año excepcional. Anteriormente, esto conducía a un comportamiento indefinido; ahora, hace que tu aplicación falle.
• Hacer referencia a una fuente del sistema por su nombre en una llamada a +[UIFont fontWithName:size:] causa
chocar. Para obtener más información, consulte https://developer.apple.com/videos/play/
wwdc2015/804/
• Para mejorar la privacidad del cliente, https:// URL, NSURLSession y NSURLConnection no
ya no admiten conjuntos de cifrado RC4 durante el protocolo de enlace TLS. Aplicaciones y servicios afectados
debería actualizar los servidores web para utilizar conjuntos de cifrado más modernos.
• Las aplicaciones pueden bloquearse si cambian la geometría de una supervista en viewWillLayoutSubviews o
diseñoSubvistas.
• NSURLConnection no permite conexiones que utilicen versiones del protocolo TLS inferiores a la
versión del protocolo especificada por una política ATS a través de NSExceptionMinimumTLSVersion o
NSThirdPartyExceptionMinimumTLSVersion claves. Las aplicaciones y servicios afectados deben
actualice los servidores web para utilizar versiones más modernas del protocolo TLS.
Protocolo HTTP de red CF
La clase NSMutableURLRequest requiere que la propiedad HTTPBodyStream no esté abierta
stream, y las clases NSURLConnection y NSURLSession ahora aplican estrictamente esto
requisito de flujo sin abrir. Las aplicaciones afectadas deben asegurarse de que cualquier NSInputStream que sea
proporcionado aún no se ha abierto.
NubeKit
 Copyright © 2016 Apple Inc. Reservados todos los derechos. Condiciones de uso. Política de privacidad. Página 3 de 8
Al compilar y ejecutar desde Xcode repetidamente, las operaciones de larga duración pueden fallar con un mensaje "Tú
No tengo permiso para guardar el archivo” error porque la ruta del contenedor cambia repetidamente.
HomeKit
Es posible que no se puedan agregar accesorios WAC HomeKit al usar la aplicación Home si las credenciales de red no son válidas.
no se proporciona primero mediante la opción Configuración > Wi-Fi > Configurar nuevo dispositivo.
Solución alternativa: si falla al agregar dicho accesorio HomeKit, proporcione las credenciales de red usando
Configuración > Wi-Fi > Configurar nuevo dispositivo. Después de que el accesorio se haya unido a la red, el
Se pueden agregar accesorios usando la aplicación Home.
libdispacho
Libdispatch afirma si se detecta un bloqueo debido a un punto muerto en despacho_barrier_sync.
Mensajes
• Cuando se utilizan UISearchController y UITableViewController en Mensajes
extensiones, su contenido se puede ocultar debajo de la barra superior.
Solución alternativa: utilice recuadros de alrededor de 80 px en la parte superior y 40 px en la parte inferior.
• Solo en Simulator, cuando se localiza ChangeDescription en insertMessage:
localizedChangeDescription:completionHandler: el método está establecido en
$localParticipantIdentifier.UUIDString, el
$localParticipantIdentifier.UUIDString no se reemplaza con los mensajes del usuario
ID y UUIDString se imprime tal cual.
• Cuando se fuerza el cierre de la aplicación Mensajes en el Simulador, se pierde el historial de mensajes.
• Cuando un objeto UIAlertController se presenta en una extensión de Mensajes, se trunca
por la barra inferior de la extensión.
• Si aparece un cuadro de diálogo de inicio de sesión mientras realiza una compra dentro de la aplicación o intenta comprar
Se descartará el contenido de la tienda, o la tienda o la extensión.
• El UUID del participante local es el mismo para ambos participantes de la conversación en el Simulador.
solamente.
Solución alternativa: utilice un dispositivo para probar las comparaciones de UUID.
Notas
Es posible que las notas se cierren inesperadamente.
Solución alternativa: desactive y active Notas en Configuración > iCloud.
NSUserActividad
Es posible que un objeto NSUserActivity no tenga información de usuario después de Handoff.
 Copyright © 2016 Apple Inc. Reservados todos los derechos. Condiciones de uso. Política de privacidad. Página 4 de 8
Solución alternativa: llame explícitamente a convertiseCurrent en el objeto de actividad.
Fotos
• La sincronización de personas no está habilitada a través de la biblioteca de fotos de iCloud en iOS 10.
• Memorias, Relacionados, Personas y Escena no son compatibles con dispositivos de 32 bits.
Safari
• WebGeolocation ahora requiere un sitio web seguro (HTTPS) para funcionar tanto en iOS como en iOS.
macOS para evitar el uso malicioso de los datos de ubicación.
• WKWebView ahora respeta por defecto user-scalable=no desde una ventana gráfica. Clientes de
WKWebView puede mejorar la accesibilidad y permitir a los usuarios pellizcar para hacer zoom en todas las páginas
establecer la propiedad WKWebViewConfiguration ignora ViewportScaleLimits en YES.
• La configuración de SFSafariViewController y -[SFSafariViewController
initWithURL:configuration:] Las API se han eliminado y –
[SFSafariViewController initWithURL:entersReaderIfAvailable:] ya no está
marcado como obsoleto. La propiedad preferidaBarTintColor se ha movido a
SFSafariViewController, junto con una nueva propiedad preferidaControlTintColor
qué clientes deberían usar en lugar de configurar tintColor directamente en la vista. Aplicaciones vinculadas en
iOS 10 o posterior ya no enviará el color de tinte de su vista a SFSafariViewController.
kit de interfaz de usuario
Notas
• Antes de iOS 10, era posible anular [UIStackView
initWithArrangedSubviews:], pero esto fue pensado como un inicializador de conveniencia y
implementado como tal. Ahora hemos aplicado esto en los encabezados. Como resultado, los clientes de Swift
ya no puede anular este método, porque las reglas del inicializador Swift impiden la anulación de un
inicializador de conveniencia.
• En iOS 10, UIKit ha actualizado y unificado la gestión de fondo para UINavigationBar,
UITabBar y UIToolbar. En particular, cambios en las propiedades de fondo de estas vistas.
(como imágenes de fondo o sombras, o establecer el estilo de la barra) pueden iniciar un diseño
pase por la barra para resolver la nueva apariencia del fondo.
En particular, esto significa que los intentos de cambiar la apariencia de fondo de estos
barras dentro de -[UIView layoutSubviews], -[UIView updateConstraints], –
[UIViewController voluntadLayoutSubviews], -[UIViewController
didLayoutSubviews], -[UIViewController updateViewConstraints], o cualquier otro
El método que se llama en respuesta al diseño puede generar un bucle de diseño.
En algunos casos, puedes romper estos bucles de diseño asegurándote de usarlos siempre.
misma instancia de objeto cuando se requieren objetos (como UIImage o UIColor). Absorber
generalmente debes evitar hacer esto.
Debido a que todos los parámetros de apariencia ahora se resuelven al mismo tiempo, puede haber algunos
casos en los que la apariencia de su bar ha cambiado. En general, los mejores resultados se obtienen mediante
 Copyright © 2016 Apple Inc. Reservados todos los derechos. Condiciones de uso. Política de privacidad. Página 5 de 8
especificando lo menos posible para personalizar su barra. Por ejemplo, si está especificando
un valor barTintColor y especificando un objeto UIImage vacío para backgroundImage
propiedad (como es el caso cuando llamas a [UIImage new], por ejemplo), entonces deberías obtener
mejores resultados especificando solo barTintColor. Cualquier cambio que realice para resolver
Estos problemas en iOS 10 también deberían funcionar correctamente en iOS 9; si este no es el caso, por favor
informar errores con un proyecto de muestra y una captura de pantalla que indica cómo deberían verse las barras
gusta.
• En iOS 10, hay un ligero cambio en el comportamiento de UIGestureRecognizer al eliminar un
reconoce actualmente (es decir, en pleno vuelo) el reconocedor de gestos desde su UIView. Previamente,
eliminar el reconocedor de gestos en pleno vuelo no cancelaría explícitamente el gesto
reconocedor, lo que le permite volver a agregar el reconocedor de gestos a la misma vista o a una
diferente vista. En iOS 10, llamar a -[UIView removeGestureRecognizer:] en la vista de
un reconocedor de gestos en pleno vuelo cancela explícitamente el reconocedor de gestos. Si un usuario desea
cambiar la vista de un reconocedor de gestos en pleno vuelo, simplemente puede llamar -[UIView
addGestureRecognizer:] en la vista a la que desea mover el reconocedor de gestos.
• Los controladores de vista presentados ahora pueden afectar la apariencia de la barra de estado incluso si estuvieran
presentado desde un controlador de vista que no afectó la barra de estado (por ejemplo, un
popover). De forma predeterminada, se supone que las presentaciones del controlador de vista personalizado no afectan la
barra de estado; use la propiedad modalPresentationCapturesStatusBarAppearance en
UIViewController para permitir que un controlador de vista presentado participe en la barra de estado
la apariencia.
• Siempre ha sido un requisito que las subclases de UIViewController llamen a super
implementación de -awakeFromNib a partir de sus propias anulaciones. A partir de iOS 10, –
awakeFromNib está anotado correctamente con el atributo NS_REQUIRES_SUPER para detectar
implementaciones que no cumplen con este requisito. Para solucionar esta advertencia, asegúrese de que todos los códigos
rutas de su llamada de anulación [super awakeFromNib].
• Cuando se ejecuta en iPad, el color de fondo establecido para UITableViewCell en un guión gráfico
ahora se respeta.
• A partir de iOS 10, UITableViewHeaderFooterView admite NSCoding, por lo que si una vista con
esta clase está en un XIB, ahora se decodifica correctamente. La consecuencia es que las aplicaciones pueden presentar
algún contenido adicional para estas vistas que no apareció antes debido al error que fue
fijo.
• Para vistas de tablas muy amplias donde los márgenes del diseño de las celdas se han aumentado automáticamente a
Siga el ancho legible, los insertos de separador ahora se interpretan en relación con estos lados izquierdo y derecho.
márgenes derechos en lugar de desde los bordes de la vista de tabla.
• La fusión de la entrega UITouch se ha mejorado significativamente, especialmente en los casos
donde los usuarios tocarían la pantalla y usarían el Apple Pencil al mismo tiempo en el iPad
Pro y la aplicación no pudieron procesarlos a la velocidad entrante. En ciertos escenarios,
los eventos aún pueden llegar a un ritmo mayor que el de actualización de la pantalla. Esto es lo esperado y
su aplicación debe anticipar esto y manejarlo en consecuencia.
• En iOS 10, las ventanas que no son de pantalla completa no afectan la apariencia de la barra de estado.
• No se espera que enviar -layoutIfNeeded a una vista mueva la vista, pero sí antes
lanzamientos, si la vista tuviera TranslatesAutoresizingMaskIntoConstraints == false,
y si estaba siendo posicionado por restricciones, -layoutIfNeeded movería la vista a
haga coincidir el motor de diseño antes de enviar el diseño al subárbol.
 Copyright © 2016 Apple Inc. Reservados todos los derechos. Condiciones de uso. Política de privacidad. Página 6 de 8
Estos cambios corrigen este comportamiento y la posición del receptor y generalmente su tamaño no cambiarán.
verse afectado por -layoutIfNeeded.
Es posible que algún código existente dependa de este comportamiento incorrecto que ahora está corregido. El r
No hay ningún cambio de comportamiento para los archivos binarios vinculados antes de iOS 10, pero al compilar en iOS 10,
Es posible que sea necesario corregir algunas situaciones enviando -layoutIfNeeded a una supervisión del
TranslatesAutoresizingMaskIntoConstraints == vista falsa que era la anterior
receptor, o bien posicionarlo y dimensionarlo antes (o después, dependiendo de su deseo).
comportamiento) -layoutIfNeeded.
• Aplicaciones de terceros con subclases UIView personalizadas que utilizan diseño automático que anula
Las subvistas de diseño y el diseño sucio en uno mismo antes de llamar a super corren el riesgo de desencadenar un
bucle de retroalimentación de diseño cuando se reconstruyen en iOS 10. Cuando se envían correctamente
llamadas posteriores a -layoutSubviews, deben asegurarse de dejar de ensuciar el diseño en sí mismos en
algún punto (tenga en cuenta que esta llamada se omitió en la versión anterior a iOS 10).
• Las imágenes que se pueden voltear funcionan al tener dos imágenes en un recurso, cada una con un valor diferente.
direccionalidad vivida. Cuando crea un objeto UIImage derivado usando -imageWith…
métodos, ya no está asociado con el recurso de imagen del que proviene. Para crear un
Imagen de plantilla volteable en tiempo de ejecución, use UIImageAsset.
• El origen de la notificación UIContentSizeCategoryDidChangeNotification ahora es
UIScreen.main() en lugar de UIApplication.shared().
Problema conocido
Para los objetos UIImage que se crean a partir de objetos CIImage, los métodos de dibujo UIImage
(drawInRect, drawAtPoint) siempre se convertirá al espacio de color DeviceRGB antes de dibujar.
Esto da como resultado la pérdida de información de color ampliada al dibujar en gráficos de colores amplios.
contexto.
Solución alternativa: puede recuperar el CIImage subyacente a través de la propiedad UIImage.CIImage y
renderícelo usando un CIContext creado con el espacio de color apropiado (sRGB extendido) y
formato de píxel (full-float).
Un objeto UIImage creado a partir de CGImageRef no se ve afectado y se dibujará correctamente
sin pérdida de información de color.
Widgets
La primera vez que depuras un widget de Hoy en un dispositivo, no se muestra como una posible aplicación.
extensión.
Solución alternativa: depure nuevamente para que aparezca la extensión de la aplicación.
Xcode
• Ocasionalmente, usar Comando-Mayús-HH desde la pantalla de inicio no invoca la aplicación
conmutador.
Solución alternativa: inicie cualquier aplicación antes de usar Command-Shift-HH