top sizes icon guidelines bar xcode ios9 bitcode

xcode - sizes - ios top bar



Nuevas advertencias en iOS 9: "se eliminarán todos los códigos de bits" (8)

Tengo esta nueva advertencia sobre Google Framework en mi aplicación:

(nulo): URGENTE: todo el código de bits se eliminará porque ''/ Users / myname / Library / Mobile Documents / com ~ apple ~ CloudDocs / foldername / appname / GoogleMobileAds.framework / GoogleMobileAds (GADSlot + AdEvents.o)'' se creó sin código de bits . Debe reconstruirlo con el código de bits habilitado (configuración de Xcode ENABLE_BITCODE), obtener una biblioteca actualizada del proveedor o deshabilitar el código de bits para este objetivo. Nota: Esto será un error en el futuro.

Xcode 7 me está dando alrededor de 204 advertencias sobre este mismo concepto, y no pude evitarlo. También tengo un problema para acceder a la red desde mi aplicación. Este es el error del área de depuración:

-canOpenURL: falló para URL: "kindle: // home" - error: "Esta aplicación no puede consultar el esquema kindle"

Todos estos problemas no estaban presentes en iOS 8.


Descargo de responsabilidad: está destinado a quienes admiten un flujo de trabajo de integración continua que requiere un proceso automatizado. Si no lo hace, use Xcode como se describe en la respuesta de Javier .

Esto funcionó para mí establecer ENABLE_BITCODE = NO través de la línea de comando:

find . -name *project.pbxproj | xargs sed -i -e ''s//(GCC_VERSION = "";/)//1/ ENABLE_BITCODE = NO;/g''

Tenga en cuenta que es probable que esto sea inestable en las versiones de Xcode. Fue probado con Xcode 7.0.1 y como parte de un proyecto Cordova 4.0.


Después de Xcode 7, la opción de código de bits se habilitará de manera predeterminada. Si su biblioteca se compiló sin código de bits, pero la opción de código de bits está habilitada en la configuración de su proyecto, puede:

  1. Actualice su biblioteca con código de bits,
  2. Di NO para habilitar Bitcode en tu configuración de compilación de destino

Y la configuración de compilación de la biblioteca para eliminar las advertencias.

Para obtener más información, vaya a la documentación del código de bits en la biblioteca del desarrollador .

Y WWDC 2015 Sesión 102: "Plataformas Estado de la Unión"


El método canOpenUrl está canOpenUrl en iOS 9 (debido a la privacidad) y ya no es gratuito. Su proveedor de banners busca aplicaciones instaladas para que no muestren banners para una aplicación que ya está instalada.

Eso da todas las declaraciones de registro como

-canOpenURL: falló para URL: "kindle: // home" - error: "Esta aplicación no puede consultar el esquema kindle"

Los proveedores deben actualizar su lógica para esto.

Si necesita consultar las aplicaciones instaladas / los esquemas disponibles, debe agregarlos a su archivo info.plist .

Agregue la clave ''LSApplicationQueriesSchemes'' a su plist como una matriz. Luego agregue cadenas en esa matriz como ''kindle''.

Por supuesto, esta no es realmente una opción para los anuncios de banner (ya que son dinámicos), pero aún puede consultar de esa manera sus propias aplicaciones u otras aplicaciones específicas como Twitter y Facebook.

Documentación del método canOpenUrl:

Documentación sobre la clave LSApplicationQueriesSchemes


En mi caso para evitar ese problema:

  1. Asegúrese de estar tratando con Xcode 7 , NO con versiones inferiores. En la versión inferior, esta bandera no existe.

  2. Configuración: Proyecto> Configuración de compilación> Todos> Opciones de compilación> Habilitar código de bits = NO


Google ha solucionado este problema recientemente (noviembre de 2010); consulte https://code.google.com/p/analytics-issues/issues/detail?id=671 . Pero tenga en cuenta que, como buena solución, trae más errores :)

También deberá seguir el método de inicialización que se detalla aquí: https://developers.google.com/analytics/devguides/collection/ios/v2 .

Las últimas instrucciones le darán dolor de cabeza porque hace referencia a utilidades no incluidas en el pod. A continuación fallará con el cocoapod

// Configure tracker from GoogleService-Info.plist. NSError *configureError; [[GGLContext sharedInstance] configureWithError:&configureError]; NSAssert(!configureError, @"Error configuring Google services: %@", configureError);



Si está utilizando CocoaPods y desea deshabilitar Bitcode para todas las bibliotecas, use el siguiente comando en el Podfile

post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings[''ENABLE_BITCODE''] = ''NO'' end end end


Su biblioteca se compiló sin código de bits, pero la opción de código de bits está habilitada en la configuración de su proyecto. Enable Bitcode NO para Enable Bitcode en la configuración de compilación de destino y la configuración de compilación de la biblioteca para eliminar las advertencias.

Para aquellos que se preguntan si se requiere habilitar el código de bits:

Para las aplicaciones de iOS, el código de bits es el predeterminado, pero opcional. Para las aplicaciones watchOS y tvOS, se requiere un código de bits. Si proporciona código de bits, todas las aplicaciones y marcos en el paquete de aplicaciones (todos los objetivos en el proyecto) deben incluir código de bits.

https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f