Nuevas advertencias en iOS 9

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 construyó sin bitcode . 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 objective. Nota: Esto será un error en el futuro.

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

-canOpenURL: error en la URL: “kindle: // home” – error: “Esta aplicación no puede consultar para el esquema kindle”

Todos estos problemas no estaban presentes en iOS 8.

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. Di NO a Enable Bitcode de Enable Bitcode en tus Configuraciones de comstackción objective y Configuración de comstackción de biblioteca para eliminar las advertencias.

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

Nota: Para las aplicaciones de iOS, el código de bits es el predeterminado, pero opcional. Si proporciona código de bits, todas las aplicaciones y marcos en el paquete de la aplicación deben incluir código de bits. Para las aplicaciones watchOS, se requiere código de bits.

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

Después de Xcode 7, la opción de bitcode 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. Actualiza tu biblioteca con código de bit,
  2. Di NO para habilitar Bitcode en tu configuración de comstackción objective

Ingrese la descripción de la imagen aquí

Y la biblioteca Build Settings 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”

Ingrese la descripción de la imagen aquí

En mi caso para evitar ese problema:

  1. Asegúrese de que está tratando con Xcode 7 , NO versiones más bajas. En la versión inferior, esta bandera no existe.

  2. Configuración: Proyecto> Configuraciones de comstackción> Todas> Opciones de comstackción> Habilitar código de bits = NO

enter image description here

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

Eso da todas las declaraciones de registro como

-canOpenURL: error en la URL: “kindle: // home” – error: “Esta aplicación no puede consultar para el esquema kindle”

Los proveedores deberían actualizar su lógica para esto.

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

Agregue la clave ‘LSApplicationQueriesSchemes’ a su lista como una matriz. Luego agrega cadenas en esa matriz como ‘kindle’.

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

Documentación del método canOpenUrl: canOpenUrl:

Documentación sobre la clave LSApplicationQueriesSchemes

Si está utilizando CocoaPods y desea deshabilitar Bitcode para todas las bibliotecas, use el siguiente comando en el archivo 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 

Descargo de responsabilidad: Esto está destinado a aquellos que respaldan 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í para 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. Se probó con Xcode 7.0.1 y como parte de un proyecto de Cordova 4.0.

Para solucionar los problemas con la falla canOpenURL. Esto se debe a la nueva característica de seguridad de transporte de aplicaciones en iOS9

Lee esta publicación para solucionar ese problema http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

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

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

Las últimas instrucciones te darán un dolor de cabeza porque hacen 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);