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

Hamed Gh спросил: 28 апреля 2018 в 08:59 в: ios

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

import XCTest
import RxSwift
import RxTest
@testable import Testingclass 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.o "таблица свидетельских показаний протокола для RxCocoa.DriverSharingStrategy: RxCocoa.SharingStrategyProtocol в RxCocoa", на которую ссылаются: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636 () - > () в TestingViewModel.o"RxCocoa.SharedSequence.asObservable () - > RxSwift.Observable", на который ссылаются: TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636 () - > () в TestingViewModel.old: символы не найдены для архитектуры x86_64clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

И этот на iPhone 6s:

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

К сожалению, нет поддержка этой проблемы на форумах Raywenderlich.

1 ответ

Есть решение
Hamed Gh ответил: 28 апреля 2018 в 08:59

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