Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

388
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!