Solución de problemas

En esta sección, encontrará la solución a algunos problemas comunes en la integración del SDK de la plataforma Unico IDCloud en sus aplicaciones Flutter.


Ofuscación de código


La ofuscación es un proceso que convierte el bytecode en una forma menos legible para los humanos, dificultando así la ingeniería inversa.

Este proceso consiste en eliminar información relacionada con la depuración, como tablas de variables, números de línea, y renombrar paquetes, clases y métodos.

Al integrar el SDK Flutter en la aplicación, pueden ocurrir fallos.

Ofuscación mediante DexGuard


Cuando la ofuscación se ha realizado mediante DexGuard, en caso de que ocurra una falla, utilice las siguientes reglas:

-keep class kotlin.coroutines.**
-keep class kotlinx.coroutines.**

-keep class com.facetec.sdk.** { *; }
-keep class com.acesso.acessobio_android.** { *; }
-keep class io.unico.** { *; }

-keep class br.com.makrosystems.haven.** { *; }
-keep class HavenSDK.**{ *; }
-keep class HavenSDK** { *; }

Ofuscación mediante ProGuard


Cuando la ofuscación se ha realizado mediante ProGuard, en caso de que ocurra una falla, utilice las siguientes reglas:

-keep class kotlin.coroutines.**
-keep class kotlinx.coroutines.**

-keep class com.facetec.sdk.** { *; }
-keep class com.acesso.acessobio_android.** { *; }
-keep class io.unico.** { *; }

-keep class br.com.makrosystems.haven.** { *; }
-keep class HavenSDK.**{ *; }
-keep class HavenSDK** { *; }

Error de bitcode en la distribución de aplicaciones usando Xcode 16


Después del lanzamiento oficial de Xcode 16 el 17 de septiembre de 2024 y con su uso para la distribución de aplicaciones en la AppStore, hemos observado un bloqueo al utilizar la SDK iOS, señalando el uso de bitcode en dos dependencias internas al utilizar Cocoapods como gestor de dependencias internas. Estas dependencias son DeviceProfiling y UnicoSdkLogger. Con el fin de no bloquear nuevos lanzamientos, es posible aplicar el siguiente paso a paso hasta su corrección definitiva en una futura versión de la SDK iOS:

  1. Abrir el archivo Podfile.;

  2. Insertar las siguientes líneas después del comando post_install do |installer| y antes del último end:

    bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
      def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
        framework_path = File.join(Dir.pwd, framework_relative_path)
        command = "#{bitcode_strip_path} #{framework_path} -r -o #{framework_path}"
        puts "Stripping bitcode: #{command}"
        system(command)
      end
    
      framework_paths = [
        "Pods/unicocheck-ios/DeviceProfiling.xcframework/ios-arm64/DeviceProfiling.framework/DeviceProfiling",
        "Pods/unicocheck-ios/UnicoSdkLogger.xcframework/ios-arm64/UnicoSdkLogger.framework/UnicoSdkLogger"
      ]
    
      framework_paths.each do |framework_relative_path|
        strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
      end

    2.1. Si ya existe algún código, insértelo antes del fragmento existente;

    2.2. Si ya se realiza la eliminación del bitcode manualmente, agregue los caminos explícitamente citados en framework_paths;

  3. Si no existe el comando post_install do |installer| en el archivo Podfile, agréguelo como se muestra a continuación antes del último end:

    post_install do |installer|
    bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
      def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
        framework_path = File.join(Dir.pwd, framework_relative_path)
        command = "#{bitcode_strip_path} #{framework_path} -r -o #{framework_path}"
        puts "Stripping bitcode: #{command}"
        system(command)
      end
    
      framework_paths = [
        "Pods/unicocheck-ios/DeviceProfiling.xcframework/ios-arm64/DeviceProfiling.framework/DeviceProfiling",
        "Pods/unicocheck-ios/UnicoSdkLogger.xcframework/ios-arm64/UnicoSdkLogger.framework/UnicoSdkLogger"
      ]
    
      framework_paths.each do |framework_relative_path|
        strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
      end

Fuente: Bitrise, Xcode 16 release notes, Stackoverflow.


¿Dudas?

¿No encontraste algo o aún necesitas ayuda? Si ya eres cliente o socio, puedes ponerte en contacto a través del Centro de Ayuda.

Atualizado

Isto foi útil?