แอพของฉันประกอบด้วยหลายโครงการ (เฟรมเวิร์ก) หนึ่งอันสำหรับแต่ละฟีเจอร์หลักและเฟรมเวิร์กทั่วไปที่มีทุกสิ่งที่ฉันจำเป็นต้องเข้าถึงในฟีเจอร์หลายอย่างของฉัน
ฉันใช้ Swift Package Manager ของ Xcode 11 เพื่อเพิ่มการอ้างอิง
กรอบงานทั่วไปประกอบด้วยการพึ่งพา RxSwift ซึ่งฉันใช้ตลอดทั้งโครงการ
ฉันประสบปัญหาเมื่อฉันพยายามใช้ RxTest ในเฟรมเวิร์กคุณลักษณะใด ๆ ของฉัน
ถ้าฉันเพิ่ม RxTest ผ่าน SPM ไปยังเป้าหมายการทดสอบโดยตรงและรันการทดสอบฉันจะได้รับ
ล้มเหลวในการแยกสถานะ superclass ของ 'ชื่อคลาส' จากชื่อ mangled 'ชื่อคลาสอื่น'
และอีกมากมาย
คลาส 'ชื่อคลาส' ถูกนำไปใช้ในทั้ง 'กรอบเส้นทางทั่วไป' และ 'เส้นทางทดสอบเป้าหมาย'
ที่คลาสเหล่านี้ทั้งหมดเกี่ยวข้อง Rx ข้อผิดพลาด 'ล้มเหลวในการปลดล็อก' เกิดข้อผิดพลาดในการทดสอบและจะเกิดขึ้นเมื่อฉันพยายามเริ่มต้นคลาส RxTest เท่านั้น
ถ้าฉันเพิ่ม RxTest ให้กับเฟรมเวิร์กทั่วไปการทดสอบจะทำงานได้ดี แต่เมื่อฉันรันแอพฉันจะได้รับ
dyld: ไลบรารีไม่ถูกโหลด: @ rpath / XCTest.framework / XCTest
ซึ่งเหมาะสมแล้วเนื่องจากฉันเพิ่มกรอบการทดสอบลงในกรอบการทดสอบที่ไม่ใช่และไม่ใช่สิ่งที่ดีที่จะทำ
โดยพื้นฐานแล้วฉันไม่สามารถรับการกำหนดค่าที่ทั้งการทดสอบและแอปทำงานได้ดี แอพพลิเคชั่นทำงานหรือการทดสอบรัน
ฉันจะทำงานนี้ได้อย่างไร มีวิธีใดที่จะรวม RxTest ไว้ในเฟรมเวิร์กทั่วไปเฉพาะเมื่อฉันสร้างมันบนเป้าหมายการทดสอบหรือไม่? หรือ RxTest ควรรวมอยู่ในเป้าหมายการทดสอบเท่านั้นและฉันขาดการตั้งค่าบางอย่าง?