환경
- iOS 17 ↑
- Swift vesrion 5.9
- Xcode version 15
문제
iOS 17, Swift 5.9, Xcode 15 환경에서 프로젝트를 실제 기기에서 실행할 때 dyld[5106]: library not loaded: @rpath/rxswift.framework/rxswift와 같은 긴 오류 메시지가 발생했다. 이 오류는 프로젝트가 이전에 임포트했던 패키지 프레임워크(특히 RxSwift)를 찾지 못하여 앱이 기기에 로드되지 않는 문제였다.
접근
'dyld[5106]: library not loaded: @rpath' 키워드로 검색해봤다. 찾아보니까 General 탭의 Frameworks, Libraries, and Embedded Content 설정을 확인해야 하는 것 같았다. 하지만 내 프로젝트에서는 Embed 상태를 'None'에서 'Embed & Sign'으로 변경하는 옵션이 제공되지 않았다. 그러다가 한 블로그에서 Runpath Search Paths 설정을 확인하여 이 오류를 해결했음을 알게 됐다.
해결
- Build Settings에서 Runpath Search Paths 설정을 확인했다. (기본 설정 메시지는 "$(inherited)@executable_path/Frameworks"였다.)
- 찾아본 블로그와 비교했을 때, 따옴표가 포함되어 있고 $(inherited)와 @executable_path/Frameworks가 별도의 줄에 작성되어 있지 않다는 것을 발견했다.
- 참조 포스트의 지침에 따라 Runpath Search Paths 설정을 다음과 같이 수정했다.
- 따옴표 제거
- 각 경로를 별도의 줄에 작성
- 설정을 수정한 결과, 프로젝트가 실제 기기에서 성공적으로 빌드되고 앱이 정상적으로 로드됐다.
Reference
https://ios-development.tistory.com/1515
[iOS - swift] "dyld: Library not loaded @rpath" 에러 해결 방법 (#framework, #import)
사전지식) dyld와 @rpath dyld: dynamic linker (동적 프레임워크 링커) @rpath: (run search path) 실행 중인 앱이 특정 라이브러리나 프레임워크를 찾을 때 동적 라이브러리 검색 경로를 나타내는 토큰 동적 프
ios-development.tistory.com
https://sarunw.com/posts/how-to-fix-dyld-library-not-loaded-error/
'Dev > Issue' 카테고리의 다른 글
[Error] Could not get GOOGLE_APP_ID in Google Services file from build environme (0) | 2023.11.10 |
---|---|
[Error] object has been deleted or invalidated. (0) | 2023.11.01 |
[Issue] Assets을 실수로 삭제했다면? (0) | 2023.08.22 |
[Error] Could not insert new outlet connection (2) | 2023.08.16 |