Respuestas:
En su objetivo principal, debe establecer la Enable Testability
opción de compilación en Sí.
Según el comentario de @earnshavian a continuación, esto solo debe usarse en las compilaciones de depuración según las notas de la versión de Apple: "La configuración de compilación Habilitar Testability solo debe usarse en su configuración de depuración, ya que prohíbe las optimizaciones que dependen de no exportar símbolos internos de la aplicación o el marco " https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326
@testable
) pero deben enviarse a la App Store? Si Enable Testability
es solo para compilaciones de depuración, ¿cuál es la forma de evitar esto? ¿Tengo que extraer mi código de prueba para liberarlo?
En mi caso, utilicé una configuración de compilación personalizada para las pruebas (llamada Test
) y también cocoapods
como administrador de dependencias
Tuve que agregar las siguientes líneas al final de mi Podfile
para permitir la capacidad de prueba
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.name == 'Test'
config.build_settings['ENABLE_TESTABILITY'] = 'YES'
end
end
end
end
Por defecto cocoapods
conjuntos ENABLE_TESTABILITY
a YES
sólo para Debug
construcciones
Asegúrese de establecer correctamente sus casillas de verificación en el esquema de su aplicación. DEBES DESHABILITAR tus objetivos de prueba para Archive Build.
Para aquellos de ustedes que están experimentando esto solo al ejecutar Xcode Profiler: cambie la configuración de compilación de perfil en su administración de esquemas a la que tiene habilitada la capacidad de prueba, y eso sería una depuración en la mayoría de los casos:
Esto probablemente se deba a que su objetivo principal Enable Testability
está establecido en NO
. Debe configurarlo YES
en el esquema de depuración (que se utiliza para ejecutar sus pruebas).
Si utiliza Carthage, este problema puede deberse a la importación de marcos con @testable
, ya que se crean con un esquema de lanzamiento.
La mayoría de las veces es una mala práctica importar marcos con ese prefijo, por lo que podría evitarlo. Si no puede, debería hacerlo Enable Testability
en el esquema de lanzamiento de los marcos. https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326
Comencé a recibir este error al ejecutar pruebas con Bitrise.
A diferencia de lo que dicen otros usuarios, esto no es por Target
base, o por Schema
base, es por Configuration
base. Seleccione Target
-> Build Settings
pestaña -> busque testability
-> Habilítelo en la Configuración que está utilizando .
Tenga en cuenta que Apple recomienda habilitar esto en la configuración que está utilizando para la depuración, no para AppStore.
Si intentas probar el framework:
Vaya al objetivo de prueba -> Fase de compilación -> Crear nueva fase de copia de archivos -> Elegir marcos -> Agregar todos los marcos utilizados recursivamente
Si por casualidad tienes
install! 'cocoapods',
generate_multiple_pod_projects: true,
incremental_installation: true
Entonces, esta es la forma de hacerlo.
# generated_projects only returns results if the we run "pod install --clean-install"
# or install a pod for the first time
installer.generated_projects.each do |project|
project.build_configurations.each do |configuration|
configuration.build_settings["ENABLE_TESTABILITY"] = "YES"
end
end
Esto no ocurrió en mis proyectos antes de Xcode 8, pero después de actualizar a Xcode 8, me dejó perplejo.
Las respuestas publicadas aquí no resolvieron mis problemas. Para mí, acabo de abandonar estas pruebas, ya que no es necesario. Así que desmarca los botones de prueba: