Skip to main content

Problemas conocidos

info

Esta página contiene los problemas conocidos que ocurren en el SDK iOS.

Cuando es necesario, se abordan los problemas y se ponen a disposición nuevas versiones con correcciones.

Ofuscación de código

Importante

El material de ofuscación está motivado para ayudar al desarrollador a superar los problemas de ofuscación en su aplicación.

El ofuscador del cliente puede afectar el funcionamiento de la SDK, es necesario que el mismo no ofusque el código de la SDK.

Unico se exime de responsabilidad con respecto a los conflictos de ofuscación con la SDK.

La ofuscación es un proceso de transformación del bytecode en una forma menos legible por humanos, lo que dificulta la ingeniería inversa.

Este proceso consiste en eliminar informaciones relacionadas con la depuración, como tablas de variables, número de líneas y renombrar los paquetes, clases y métodos.

Al integrar la SDK de iOS en la aplicación, pueden ocurrir fallas o cierres abruptos.

Ofuscación via iXGuard

Cuando la ofuscación se realizó a través de iXGuard, sugerimos usar la versión 4.11.0 o superior.

Sombra al final del flujo después de actualizar a la versión 2.4.0

La responsabilidad de controlar el flujo se delega en quien llama al SDK. Por lo tanto, cuando aparece algún tipo de sombra o la pantalla no se cierra después de una captura exitosa, una solución es agregar una forma de liberar esta pantalla, que puede variar según la pila de navegación utilizada. Para esta implementación, agregue el método de la versión preferiblemente dentro del método delegate onSuccessSelfie. A continuación se muestran algunos ejemplos que se pueden utilizar:

- (void)onSuccessSelfie:(SelfieResult *)result {
[self dismissViewControllerAnimated:YES completion:nil];
// your code
}

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

Después del lanzamiento de la versión oficial de Xcode 16 el 17 de septiembre de 2024 y su uso para la distribución de aplicaciones en la App Store, encontramos un bloqueo al utilizar la SDK de iOS que señalaba el uso de bitcode en dos dependencias internas al usar Cocoapods como administrador de dependencias internas, que 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 de 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 hay algún código, insértalo antes del fragmento existente;

2.2. Si ya se está realizando la eliminación manual del bitcode, añadir explícitamente las rutas mencionadas en framework_paths;

  1. Si no hay el comando post_install do |installer| en el archivo Podfile, insertarlo 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 encontró algo o aún necesita ayuda? Si ya es cliente o asociado, puede contactarnos a través del Centro de Ayuda.