RxTest: неопределенные символы для архитектуры x86_64 и arm64

Я пытаюсь запустить следующий тест из главы 16: Тестирование с помощью RxTest из книги Raywenderlich RxSwift:

import XCTest
import RxSwift
import RxTest
@testable import Testing

class TestingViewModel : XCTestCase {

var viewModel: ViewModel!
var scheduler: ConcurrentDispatchQueueScheduler!

override func setUp() {
super.setUp()

viewModel = ViewModel()
scheduler = ConcurrentDispatchQueueScheduler(qos: .default)
}

func testColorNameIsRayWenderlichGreenWhenHexStringIs006636() {

// 1
let colorNameObservable = viewModel.colorName.asObservable().subscribeOn(scheduler)

// 2
viewModel.hexString.value = "#006636"

// 3
XCTAssertEqual("rayWenderlichGreen", try! colorNameObservable.toBlocking().first()!)
 }
}

Но я получаю эту ошибку на симуляторе:

Неопределенные символы для архитектуры x86_64: "метаданные типа для RxCocoa.DriverSharingStrategy", на которые ссылаются из: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () в протоколе TestingViewModel.co.RoC от: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () в TestingViewModel.o "RxCocoa.SharedSequence.asObservable() -> RxSwift.Observable", ссылки из: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () в TestingViewModel.o ld: символ (ы) не найдены для архитектуры x86_64 clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

И этот на iPhone 6s:

Неопределенные символы для архитектуры arm64: "метаданные типа для RxCocoa.DriverSharingStrategy", на которые ссылаются из: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () в таблице TestingViewModel. от: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () в TestingViewModel.o "RxCocoa.SharedSequence.asObservable() -> RxSwift.Observable", ссылки из: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () в TestingViewModel.o ld: символы не найдены для архитектуры arm64 clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

К сожалению, этот вопрос не поддерживается на форумах Raywenderlich.

1 ответ

Решение

После многих поисков, как кто-то предлагает здесь для другой аналогичной проблемы, я обнаружил, что эта ошибка будет решена путем импорта RxCocoa,

Другие вопросы по тегам