SPM으로 RxSwift를 추가하고 빌드를 하면 아래와 같은 에러가 날때가 있습니다.
Undefined symbol: _$s6XCTest14XCTAssertEqual___4file4lineyxyKXK_xyKXKSSyXKs12StaticStringVSutSQRzlF
Undefined symbol: _$s6XCTest7XCTFail_4file4lineySS_s12StaticStringVSutF
Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupport
이 때 아래와 같이 “Enable Testing Search Paths”를 “Yes”로 수정하면 빌드가 성공합니다.
하지만 실제로 프로젝트를 실행하면 아래의 에러가 발생합니다.
dyld[7777]: Library not loaded: @rpath/libXCTestSwiftSupport.dylib
Referenced from: <AD11F668-D4B7-390C-B322-7F29219F0098> /private/var/containers/Bundle/Application/FA8DA4E2-F6C4-4DE6-BD1D-FBBA679A031D/CleanFlashlight.app/CleanFlashlight
Reason: tried: '/usr/lib/system/introspection/libXCTestSwiftSupport.dylib' (no such file, not in dyld cache), '/private/var/containers/Bundle/Application/FA8DA4E2-F6C4-4DE6-BD1D-FBBA679A031D/CleanFlashlight.app/Frameworks/libXCTestSwiftSupport.dylib' (no such file), '/private/var/containers/Bundle/Application/FA8DA4E2-F6C4-4DE6-BD1D-FBBA679A031D/CleanFlashlight.app/Frameworks/libXCTestSwiftSupport.dylib' (no such file), '/usr/local/lib/libXCTestSwiftSupport.dylib' (no such file), '/usr/lib/libXCTestSwiftSupport.dylib' (no such file, not in dyld cache)
Library not loaded: @rpath/libXCTestSwiftSupport.dylib
Referenced from: <AD11F668-D4B7-390C-B322-7F29219F0098> /private/var/containers/Bundle/Application/FA8DA4E2-F6C4-4DE6-BD1D-FBBA679A031D/CleanFlashlight.app/CleanFlashlight
Reason: tried: '/usr/lib/system/introspection/libXCTestSwiftSupport.dylib' (no such file, not in dyld cache), '/private/var/containers/Bundle/Application/FA8DA4E2-F6C4-4DE6-BD1D-FBBA679A031D/CleanFlashlight.app/Frameworks/libXCTestSwiftSupport.dylib' (no such file), '/private/var/containers/Bundle/Application/FA8DA4E2-F6C4-4DE6-BD1D-FBBA679A031D/CleanFlashlight.app/Frameworks/libXCTestSwiftSupport.dylib' (no such file), '/usr/local/lib/libXCTestSwiftSupport.dylib' (no such file), '/usr/lib/libXCTestSwiftSupport.dylib' (no such file, not in dyld cache)
dyld config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/usr/lib/libBacktraceRecording.dylib:/usr/lib/libMainThreadChecker.dylib:/usr/lib/libRPAC.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
일단 원인은 RxSwift를 추가할 때 Test 관련 라이브러리가 추가되면서 기존의 Test 관련 라이브러리와 충돌이 일어나는 것 같습니다.
결국 해결방법은 아래와 같이 RxSwift 추가 시 RxTest 항목을 빼고 추가하는 것입니다.
기존에 SPM으로 추가했던 RxSwift를 삭제하고 다시 추가할 때 RxTest 관련 항목은 체크하지 않고 추가하면 아무런 에러가 나지 않습니다.
기존에 “Enable Testing Search Paths”를 “Yes”로 설정했떤 부분도 “No”로 원복해도 에러가 나지 않습니다.
'iOS > Xcode' 카테고리의 다른 글
[SPM] RxSwift 설치하기 (0) | 2023.11.09 |
---|---|
[iOS] Lottie 사용하기 (0) | 2023.10.23 |
[iOS] 스토리보드에서 Safe Area 높이의 70%로 View Height 설정하기 (0) | 2023.10.23 |
[ios] .gitignore 설정하기 (0) | 2023.10.17 |
[iOS] privacy-sensitive 해결 방법 (0) | 2023.10.15 |