Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

390
Vistas
¿Cómo vincular la dependencia de XCTest a la producción/objetivo principal?

Estoy tratando de escribir una extensión para el marco XCTest en Swift. Para hacerlo, creé un proyecto con dos objetivos: el objetivo principal/de producción y un objetivo de prueba.

Como estoy escribiendo una extensión para XCTest, también necesito importar XCTest dentro de mi objetivo principal/de producción. Sin embargo, tengo problemas para hacerlo. Cuando estoy en Xcode y hago clic en mi proyecto, luego selecciono el objetivo principal, voy a Build Phases, Link Binary With Libraries y agrego XCTest allí, aparece un error de compilación:

ld: marco no encontrado XCTest clang: error: el comando del enlazador falló con el código de salida 1 (use -v para ver la invocación)

También probé la solución provista aquí que desafortunadamente tampoco funciona.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La información auxiliar sobre XCTest en sí es escasa y difícil de encontrar, también estaba persiguiendo la misma funcionalidad y finalmente logré que funcionara.

Estoy en XCode 10.1 y ejecuto un iPhone real con iOS 11. Estoy seguro de que la técnica general funcionará para otras versiones, pero probablemente requerirá algunos ajustes.

Los pasos generales se describen en esta respuesta de stackoverflow, pero requirieron varios pasos y ajustes adicionales para que funcionen para mí en un iPhone real:

¿Es posible ejecutar pruebas XCTest en una aplicación de iOS?

Sigue los pasos del enlace anterior. Los pasos a continuación son desviaciones de las instrucciones que se requieren para mí.

  1. Copie en el marco XCTest como se describe en el enlace anterior. NOTA: Use el marco para la plataforma iPhone.OS y no el simulador como se describe. Puede encontrar este archivo de marco dentro del paquete de la aplicación XCode real en su mac. (Haga clic derecho, "Mostrar contenido del paquete", luego busque en ./Contents/Developer/Platforms/iPhoneOS.platform

  2. Deshabilite el código de bits en el destino de su aplicación. Esto resuelve un error del enlazador. Aquí hay un ejemplo de cómo habilitarlo: ¿cómo ENABLE_BITCODE en xcode 7?

  3. Al arrastrar el archivo XCTest.framework a los binarios vinculados en su destino, asegúrese de arrastrarlo también a los "Binarios integrados", que se encuentra directamente encima de la opción "Bibliotecas y marcos vinculados". Si no hace esto, obtendrá un error de tiempo de ejecución.

agregar marco a binarios incrustados

  1. El código de ViewController para iniciar las pruebas es ligeramente diferente en el nuevo Swift, esto es lo que estoy usando:
 import UIKit import XCTest class ViewController: UIViewController { override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { print("running tests!") let suite = XCTestSuite.default; for test in suite.tests { test.run() } } }

¡Eso debería ser! Cuando ejecuto la aplicación anterior, luego toco la pantalla, ¡todas las pruebas de mi objetivo UITesting se ejecutan sin problemas y pasan!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda