Registro de cambios de iOS 7 beta 6

  El lanzamiento "sorpresa" a iOS beta 7 6 de Apple está relacionado principalmente con la resolución de problemas del sistema iTunes en la nube, siendo el resto de cambios menores y afectando a varios mecanismos del sistema operativo. Este es el registro de cambios más corto publicado por Apple para cualquier versión beta de su sistema operativo, así que no esperes muchas novedades.

Introducción

iOS SDK 7.0 brinda soporte para desarrollar aplicaciones de iOS e incluye el conjunto completo de herramientas, compiladores y marcos de trabajo de Xcode para crear aplicaciones para iOS y OS X. Estas herramientas incluyen Xcode IDE y la herramienta de análisis de instrumentos, entre muchas otras.

Con este software puede desarrollar aplicaciones para iPhone, iPad o iPod touch con iOS 7. También puede probar sus aplicaciones usando el simulador de iOS incluido, que es compatible con iOS 7. iOS SDK 7.0 requiere una computadora Mac con OS X v10.8.4 ( Mountain Lion) o posterior.

Esta versión de iOS está diseñada para ser instalada únicamente en dispositivos registrados en el Programa de Desarrolladores de Apple. Intentar instalar esta versión de iOS de manera no autorizada podría dejar su dispositivo en un estado inutilizable.

Para obtener más información y recursos de soporte adicionales, visite http://developer.apple.com/programs/ios/.

Informe de errores

Para informar cualquier error no mencionado en el Notas y problemas conocidos sección, utilice Apple Bug Reporter en el sitio web para desarrolladores de Apple (http://developer.apple.com/bugreporter/). Además, puede analizar estos problemas y el SDK de iOS 7.0 en los foros de desarrolladores de Apple:http://devforums.apple.com. Para obtener más información sobre iCloud para desarrolladores, vaya a http://developer.apple.com/icloud.

Información importante sobre bibliotecas de música y vídeos

Esta actualización soluciona un problema con iTunes en la nube, donde algunas compras pueden descargar o reproducir elementos inesperados. Si tiene algún dispositivo que ejecute versiones anteriores de iOS 7 beta, debe:

  1. Instale iOS 7 beta 6.
  2. Instale el perfil de configuración ResetMusicAndVideosLibraries desde el Centro de desarrollo de iOS.
  3. Desde Configuración > Música, toque el botón Restablecer biblioteca multimedia.
  4. Reinicie el dispositivo.

Notas y problemas conocidos

Los siguientes problemas se relacionan con el uso de iOS SDK 7.0 para desarrollar código.

Direcciones

Notas

  • Las clases en el AddressBookUI El marco ahora no permite explícitamente la subclasificación. Para las aplicaciones vinculadas al SDK de iOS 7, intentar inicializar una subclase de una de estas clases devuelve cero. Para las aplicaciones vinculadas a SDK más antiguos, el único cambio de comportamiento es una advertencia registrada en la consola.
  • A partir de Seed 4, el soporte de privacidad para el AddressBookUI El marco se vuelve a habilitar para aplicaciones vinculadas al SDK de iOS 7. Las aplicaciones vinculadas a SDK más antiguos no se modifican. Si su aplicación utiliza alguno de los controladores de vista de la Libreta de direcciones, debe verificar que aún se comporte como se esperaba.

Lanzamiento desde el aire

Notas

  • AirDrop en iOS 7 Seed 2 o posterior no es compatible con AirDrop en iOS 7 Seed 1.
  • Contactos Sólo el soporte requiere que:
    • Has iniciado sesión en iCloud.
    • El remitente y el destinatario tienen las direcciones de correo electrónico del ID de Apple del otro en los contactos de sus dispositivos.

Fundación AV

Notas

AVCaptureSession ahora usa tu aplicación AVAudioSession por defecto

Animación central

Notas

Cuando el UIViewGroupOpacity La clave no está presente, el valor predeterminado ahora es SÍ. El valor predeterminado anteriormente era NO.

Esto significa que las subvistas de una vista transparente se combinarán primero en esa vista transparente, luego el subárbol precompuesto se dibujará como un todo en el fondo. Una configuración NO da como resultado una composición menos costosa, pero también menos precisa: cada vista en el subárbol transparente se compone en lo que está debajo, de acuerdo con la opacidad del padre, en el orden normal del algoritmo del pintor.

Intercambie

Notas

En Seed 4 y posteriores, Exchange DeviceIdentifier volvió a cambiar al comportamiento de iOS 6, donde utiliza el número de serie.

Fuentes

Notas

Se introdujeron nuevas alturas de línea de fuente en la semilla 4. Si alineó manualmente su fuente en semillas anteriores, es posible que se mueva ligeramente hacia arriba verticalmente en semillas posteriores.

Fundación

Notas

  • An NSMetadataQuery con alcance ubicuo ahora puede usar kMDItemContentTypeTree en predicados. Por ejemplo:
    • NSPredicate *p = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression expresiónForKeyPath:@"kMDItemContentTypeTree"] rightExpression:[NSExpression expresiónForConstantValue:@"public.rtf"] modificador: NSAnyPredicateModifier tipo:NSLikePredicateOperatorType opciones:0];
  • Cuando se solicitan resultados devueltos por consultas con alcances ubicuos, -[NSMetadataItem valueForAttribute:NSMetadataItemDisplayNameKey] ahora produce el mismo valor que -[NSURL getResourceValue: forKey: NSURLLocalizedNameKey], coincidiendo con consultas no ubicuas.

iCloud

Notas

  • Si usa el llavero de iCloud con recuperación, es posible que vea un cuadro de diálogo que indica que la recuperación se ha desactivado debido a un cambio de servidor. Esto es intencional. Para volver a habilitar la funcionalidad, siga las instrucciones de la notificación. Si ve varias alertas u observa problemas al volver a habilitar la recuperación, presente un informe de error.
  • El llavero de iCloud en iOS 7 Seed 3 o posterior no es compatible con versiones anteriores de iOS 7 Seed 2 o OS X Mavericks Seed 2.

    Si tenía habilitado iCloud Keychain y/o Keychain Restore desde iOS 7 Seed 2, ambas funciones se deshabilitan al actualizar a iOS 7 Seed 3 o posterior.

    Después de actualizar a iOS 7 Seed 3 o posterior, vaya a Configuración > iCloud > Llavero y vuelva a habilitar el Llavero de iCloud en sus dispositivos.

    Consulte las Notas de la versión de OS X v10.9 para obtener más detalles.

  • El bloqueo de activación, una nueva característica de Find My iPhone, se activa automáticamente cuando Find My iPhone está habilitado en cualquier dispositivo con iOS 7. El bloqueo de activación requiere que los usuarios ingresen su ID de Apple y contraseña para desactivar Find My iPhone, cerrar sesión en iCloud , borrar el dispositivo o reactivar el dispositivo después de un borrado. Es importante realizar una de las siguientes acciones antes de transferir un dispositivo a un nuevo usuario:
    • Salir de iCloud
    • Desactive el Bloqueo de activación en Configuración > iCloud > Buscar mi iPhone.

Problemas conocidos

Los campos de contraseña no se muestran en las vistas de alerta para aplicaciones en formato horizontal (por ejemplo, autenticación de Game Center o compras desde la aplicación). La entrada de texto todavía funciona, aunque no puedes ver lo que estás escribiendo.

MAPK

Notas

Si las llamadas a renderInContext en la capa que respalda un MKMapView se hacen fuera del hilo principal, deben eliminarse o trasladarse al hilo principal. No hacerlo puede provocar que la aplicación falle. En lugar de usar renderInContext, utiliza el nuevo MKMapSnapshotter APIs

Medios

Notas

iOS ahora recuerda la última aplicación multimedia utilizada durante reinicios y fallas de la aplicación. Las aplicaciones multimedia que pueden recibir eventos de control remoto deben estar preparadas para iniciarse en segundo plano y potencialmente recibir un evento de control remoto para comenzar la reproducción. Además, es importante que las aplicaciones multimedia supervisen y controlen el evento de reinicio del servidor multimedia, ya que la aplicación multimedia puede recibir una solicitud remota para reanudar la reproducción después de un reinicio. Las notificaciones para monitorear estos eventos del servidor de medios están disponibles en AVAudioSession y el manejo adecuado se describe en Recomendaciones generales para el manejo de kAudioSessionProperty_ServerDied.

Conectividad multipar

Notas

El  MCSession Las API funcionan tal como se presentaron en la WWDC. Los principales cambios y mejoras incluyen:

  • El siguiente nuevo método en MCSession ha sido implementado:
    • - (NSOutputStream *)startStreamWithName:(NSString *)streamName toPeer:(MCPeerID *)peerID error:(NSError **)error

    Este método delegado ha sido implementado:

    • - (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID
  • El siguiente nuevo método en MCSession ha sido implementado:
    • - (NSProgress *)sendResourceAtURL:(NSURL *)resourceURL withName:(NSString *)resourceName toPeer:(MCPeerID *)peerID withCompletionHandler:(void(^)(NSError *error))completionHandler

    El método de delegado para comenzar a recibir un recurso de un par remoto se ha implementado como:

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

    El método de delegado para terminar de recibir un recurso de un par remoto y guardar el contenido en una ubicación temporal se implementa como:

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

  • MCAdvertiserAssistant es una clase de conveniencia para implementar un Anunciante, que maneja invitaciones y conexiones a un MCSession.
  • MCSession tiene un nuevo initWithPeer: método.
  • sendResource ha añadido "con" al completionHandler.
  • El tiempo de espera ha sido eliminado de connectPeer:withNearbyConnectionData.

Para obtener más información sobre estas API, vea el video de la sesión 2013 de la WWDC 708, "Redes cercanas con conectividad multipar".

Hacer múltiples tareas

Notas

  • AVAudioSession Las aplicaciones en segundo plano ya no pueden activarse debido a eventos de recuperación en segundo plano, transferencias en segundo plano y notificaciones remotas.
  • La política para la API de finalización de tareas ha vuelto a cambiar para coincidir con el comportamiento de iOS 6, pero el límite de tiempo para completar tareas ha disminuido de 10 minutos en iOS 6.

Networking

Notas

  • La tecnología de respaldo celular presente en semillas anteriores se eliminó a partir de la Semilla 5.
  • Dos API de red de bajo nivel que solían devolver una dirección MAC ahora devuelven el valor fijo 02:00:00:00:00:00. Las API en cuestión tienen sysctl (NET_RT_IFLIST) y ioctl (SIOCGIFCONF). Los desarrolladores que utilizan el valor de la dirección MAC deben migrar a identificadores como -[UIDevice identifierForVendor]. Este cambio afecta a todas las aplicaciones que se ejecutan en iOS 7.

Tiempo de ejecución de Objective-C

Notas

Debido a cambios en la forma en que isa campo está implementado, *self puede cambiar durante la enumeración (por ejemplo, si se conserva el contenedor).

Solución alternativa: al implementar countByEnumeratingWithState, no ajustar state->mutationsPtr = self.

Libreta de depósitos

Notas

  • A partir de iOS 7 Seed 4, Passbook ha agregado soporte para los campos mayor y menor para adaptarse mejor al resto del ecosistema iBeacon. El nuevo major y minor Las teclas son variables independientemente opcionales junto con proximityUUID (obligatorio) en cada diccionario del beacons formación.
  • En versiones anteriores del SDK de iOS, Passbook no validaba completamente los campos posteriores de los pases. Las reglas de validación no han cambiado, pero la validación ahora incluye campos posteriores. Consulte el registro de la consola para obtener registros adicionales.
  • A partir de iOS 7 Semilla 3, PKPassLibraryDidCancelAddPasses es un nuevo código de estado en el PKPassLibraryAddPassesStatus enumeración. Significa que el usuario presionó Cancelar en una alerta de agregar pases.

Fotos

Notas

Al actualizar desde una semilla anterior, las miniaturas de las fotos en la aplicación Fotos no aparecerán por un momento.

Seguridad

Notas

  • -[UIDevice uniqueIdentifier] ya no se acepta en envíos a la App Store. En iOS 7, las aplicaciones que ya están en la tienda o en los dispositivos de los usuarios que llaman a esta API eliminada ya no recibirán el UDID. En cambio, -[UIDevice uniqueIdentifier] devolverá una cadena de 40 caracteres que comienza con FFFFFFFF, seguida del valor hexadecimal de -[UIDevice identifierForVendor]. Es importante considerar cómo afectará esto a las aplicaciones existentes. Considero enviar actualizaciones que ya no acceden al UDID.
  • iOS ahora solicita el consentimiento del usuario para que las aplicaciones utilicen entrada de audio en todos los dispositivos iOS 7. Para los dispositivos vendidos en China, iOS también solicitará el consentimiento del usuario para que las aplicaciones utilicen el hardware de la cámara. El sistema operativo presentará la alerta de consentimiento cuando establezca la categoría de la instancia.AVAudioSessionAVAudioSession categorías que presentarán la alerta son AVAudioSessionCategoryRecord y AVAudioSessionCategoryPlayAndRecord.

    Si el usuario no permite el acceso, los datos de la sesión de audio serán todos ceros (silencio). Para los dispositivos en los que el usuario solicita y deniega el acceso a la cámara, la sesión de captura de video es una pantalla negra.

  • La API gethostuuid() se ha eliminado y no se aceptará para su envío a la tienda, independientemente del sistema operativo de destino. Para aplicaciones existentes que se ejecutan en iOS 7, la función devolverá una representación uuid_t del identificador del proveedor (-[UIDevice identifierForVendor]).

Siri

Notas

Esta semilla incluye versiones en desarrollo de nuevas voces masculinas y femeninas de Siri para inglés, francés y alemán de EE. UU.

Social

Notas

  • A través de iOS 6, al usar TWTweetComposeViewController y SLComposeViewController (este último sólo para Twitter y Weibo, pero no para Facebook), si la persona que llama proporciona un completionHandler, el suministrado completionHandler es responsable de descartar el controlador de vista. A partir de iOS 7, si la aplicación se vincula con el SDK de iOS 7, el controlador de vista se descartará incluso si la persona que llama proporciona un completionHandler. Para evitar esto, la persona que llama completionHandler No debe descartar el controlador de vista.
  • Al usar el SDK de iOS 6.1 en OS X v10.8 Mountain Lion, si usa el SDK heredado de iOS 5.0 o iOS 5.1 en iOS Simulator, no podrá usar las funciones de Twitter: intentar iniciar sesión en Twitter a través del panel de Configuración fallará, y Twitter.framework no funcionará correctamente. Si necesita probar las funciones de Twitter, deberá elegir un destino de ejecución del simulador de iOS 6.1 o iOS 6.0, o puede realizar la prueba con iOS 5.x en un dispositivo.

trampolín

Notas

  • Los toques activos ya no se cancelan cuando el usuario toma una captura de pantalla.
  • El fondo de pantalla dinámico no está disponible en iPhone 4.

Kit de Sprite

Notas

+[AVPlayer playerWithPlayerItem:] devuelve un AVPlayer objeto, pero el elemento actual devolverá nulo si el jugador fue creado en otro hilo.

Tiendas

Problemas conocidos

Las descargas de aplicaciones pueden quedarse atascadas en el estado "En espera".

Solución alternativa: reinicie su dispositivo una o dos veces para resolver el problema y permitir que continúen las descargas posteriores.

kit de interfaz de usuario

Notas

  • Antes de Seed 4, la API de instantáneas (snapshotView y resizableSnapshotViewFromRect:withCapInsets:) diferiría la toma de la instantánea si la vista nunca se hubiera confirmado o se hubiera agregado a la jerarquía de vistas en la transacción actual. Este comportamiento ha cambiado.

    Las instantáneas ahora siempre representan el estado actual y confirmado de la vista. Intentar tomar una instantánea de una vista que nunca se ha confirmado registra un mensaje y ahora devuelve nil.

  • Los métodos de captura de instantáneas se han actualizado y ahora toman un argumento: afterUpdates. Cuando se establece en YES, esto indica a la instantánea que espere hasta que se hayan confirmado todos los cambios pendientes en la jerarquía. Para mantener el comportamiento anterior a Seed 4, pase NO y la instantánea capturará lo que está actualmente en la pantalla. EEE UIView.h para más información.
  • Cuando no hay suficiente espacio en el diseño de la barra de navegación para el texto completo del título del botón Atrás, la barra de navegación lo sustituirá por un título de atrás corto genérico (en inglés, "Atrás"). Si incluso esa cadena es demasiado larga, la barra mostrará el cheurón indicador trasero sin título.
  • +[UIPasteboard pasteboardWithName:create:] y +[UIPasteboard pasteboardWithUniqueName] ahora el nombre de pila es único para permitir que solo aquellas aplicaciones en el mismo grupo de aplicaciones accedan al portapapeles. Si el desarrollador intenta crear un portapapeles con un nombre que ya existe y no forma parte del mismo conjunto de aplicaciones, obtendrá su propio portapapeles único y privado. Tenga en cuenta que esto no afecta a los tableros de trabajo proporcionados por el sistema, en general y a buscar.
  • A partir de Seed 2, las aplicaciones utilizan de forma predeterminada el nuevo sistema de gestión de barra de estado basado en el controlador de vista. Para excluirse de esto, agregue un valor de NO para el UIViewControllerBasedStatusBarAppearance a su Info.plist.
  • Al utilizar el diseño automático para colocar un UIButton, si establece la resistencia a la compresión de contenido o la prioridad de abrazar contenido al mínimo, el botón tendrá un diseño ambiguo.

    Solución alternativa: no utilice una resistencia a la compresión de contenido ni una prioridad de aceptación de contenido inferior a 2 para UIButton.

  • UIScreenEdgePanGestureRecognizer le permite realizar acciones en respuesta a deslizamientos sobre el borde de la pantalla utilizando la misma heurística que utiliza el sistema para sus propios gestos. Utilice esto si tiene una navegación semántica propia que no utiliza UINavigationControllerpero debería incluir este gesto (por ejemplo, Safari).

    Este reconocedor de gestos tiene una propiedad que describe los bordes en los que está activo. UIRectEdge es un nuevo tipo de enumeración que esta propiedad y -[UIViewController edgesForExtendedLayout] puede compartir. UIRectEdge reemplaza UIExtendedEdge, que será eliminado. Los miembros de ambos tienen los mismos valores. Utilice Xcode para reemplazar todas las instancias de "UIExtendedEdge" en su proyecto con "UIRectEdge".

  • UIButtonTypeInfoLightUIButtonTypeInfoDarkUIButtonTypeDetailDisclosure Todos los botones tienen el mismo aspecto.
  • Las capas borrosas no están disponibles en el iPhone 4.
  • Parallax no está disponible en iPhone 4.
  • El texto tipográfico no está disponible en el iPhone 4.

Problemas conocidos

Los campos de contraseña no se muestran en las vistas de alerta para aplicaciones en formato horizontal (por ejemplo, autenticación de Game Center o compras desde la aplicación). La entrada de texto todavía funciona, aunque no puedes ver lo que estás escribiendo.

Tiempo

Notas

Las condiciones climáticas no están animadas en el iPhone 4.

WebKit

Notas

  • Anteriormente, cuando se modificaban los parámetros de la ventana gráfica, los parámetros antiguos nunca se descartaban. Esto hizo que los parámetros de la ventana gráfica fueran aditivos.

    Por ejemplo, si comenzó con ancho=ancho-dispositivo y luego lo cambió a escala-inicial=1.0, terminó con una ventana gráfica calculada de ancho=ancho-dispositivo, escala-inicial=1.0.

    En iOS 7, esto se ha solucionado. Ahora terminará con una ventana gráfica calculada de escala inicial = 1.0.

  • Anteriormente, cuando se usaba , la escala podría ser incorrecta después de la rotación.

    Ahora, si un usuario no ha escalado la página explícitamente, la página se restaura a su escala inicial. Además, la escala actual ahora está restringida correctamente dentro del min-scalemax-scale límites.

  • Algunas imágenes para dispositivos con pantalla Retina aparecen al doble del tamaño que deberían en lugar de reducirse un 50%. Este problema también puede ocurrir con cualquier imagen a escalar que sea más grande que su contenedor y que utilice el background-size propiedad o la -webkit-background-sizepropiedad. Este problema afecta tanto a las aplicaciones nativas que muestran contenido web como a las páginas web vistas en Safari para iPhone.

    El  background La propiedad abreviada de CSS ahora restablece el valor del background-size propiedad a auto cuando no se especifica el tamaño del fondo. Este nuevo comportamiento se ajusta a las especificaciones de CSS y el comportamiento anterior solo está disponible para aplicaciones vinculadas a un SDK anterior a iOS 7.0 cuando se ejecuta en iOS 7 o posterior.

    Solución alternativa: especifique el background-size propiedad o la -webkit-background-size propiedad después de la background Propiedad abreviada en la hoja de estilos CSS para el contenido web que se muestra.

  • Las aplicaciones web y los clips web creados antes de Seed 4 no permanecerán en las carpetas durante el reinicio.

    Solución alternativa: elimine la aplicación web o el clip web antiguo y vuelva a crearlo en esta semilla cargando el contenido en Safari, tocando el botón Acción y luego "Agregar a la pantalla de inicio".

Wi-Fi

Notas

Seed 4 y posteriores incluyen cambios en AWDL de modo que las tecnologías que lo utilizan, como AirDrop y las API MultiPeerConnectivity, no funcionarán correctamente con seeds más antiguos.