IT Share you

dyld : 라이브러리가로드되지 않음 : @rpath with iOS8

shareyou 2021. 1. 6. 08:09
반응형

dyld : 라이브러리가로드되지 않음 : @rpath with iOS8


Xcode6 및 iOS8을 사용하여 iOS 프레임 워크를 만들고 있습니다. 이것을 iOS 앱과 연결하고 기기에서 실행하려고하면이 오류가 발생합니다.

dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
  Referenced from: /private/var/mobile/Containers/Bundle/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/AppName.app/AppName
  Reason: image not found

프레임 워크의 'Runpath Search Paths'빌드 설정은 기본적으로 다음으로 설정됩니다.

'@executable_path/Frameworks', '@loader_path/Frameworks'

이와 관련된 문서를 찾을 수 없습니다. 이것은 Xcode6에 새로 도입 된 것이었고, 필요한 모든 앱에 프레임 워크를 포함하는 것만으로도 작동 할 것으로 기대합니다.


이 일을하려면

  1. 프레임 워크 프로젝트 설정에서 설치 디렉토리를 '/ Library / Frameworks'에서 '@executable_path /../ Frameworks'로 변경합니다.

  2. 이 프레임 워크를 포함하는 프로젝트에서 파일 복사 단계를 추가하고이 프레임 워크를 'Frameworks'폴더에 복사합니다. 이렇게하면이 프레임 워크가 'Embedded Binaries'섹션 아래에 나열됩니다.


이 답변을 사용하여 문제가 해결되었습니다 . @ vladof81에 따르면 :

대상의 General 탭에는 Embedded Binaries 필드가 있습니다. 프레임 워크를 추가하면 충돌이 해결됩니다.

Apple 개발자 포럼에 대한 참조가 있습니다 .


CocoaPods를 통해 설치된 라이브러리에서이 오류가 발생했습니다. 빌드 폴더 ( cmd + option + shift + k)를 정리 한 다음 정리 ( cmd + shift + k) 를 수행하면 결국이 문제가 해결되었습니다.


아래 컨텍스트에서 프레임 워크를 찾을 수 있는지 확인하십시오.

빌드 단계> 임베드 프레임 워크>

프로젝트 디렉토리의 "Frameworks"섹션에 해당 프레임 워크를 추가 한 후 "Embed Frameworks"에 해당 프레임 워크를 추가하는 것이 아니라면
여기에 이미지 설명 입력


Carthage를 사용하는 경우

carthage update터미널에서 실행

프로젝트 설정-> 빌드 단계-> Carthage 복사 프레임 워크로 이동합니다.

입력 파일에 줄 추가 :$(SRCROOT)/Carthage/Build/iOS/YOURLIBRARY.framework

다음 행을 출력 파일에 추가 하십시오. $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/YOURLIBRARY.framework


저에게는 SSL 문제로 인해 Mac (Keychain)의 개발자, 배포 인증서를 다른 프로젝트 중 하나에 대해 '항상 신뢰'로 설정했습니다. '시스템 기본값 사용'으로 다시 변경해야했습니다. 그것은 나를 위해 일하고 있었다!!


위의 솔루션 외에도 아래에서 애플리케이션에 포함 된 프레임 워크의 경로를 다시 확인하십시오.

빌드 설정-> 검색 경로-> 프레임 워크 검색 경로


또한 앱을 시작할 수없고 앱이 위의 메시지와 함께 충돌하는 것과 같은 종류의 문제가있었습니다.

dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName Referenced from: /private/var/mobile/Containers/Bundle/Application/xxxxxxxxxxxxxxxxxxx

Reason: image not found

Here is my approach that helped me to resolve this error:

1.Please delete your app from device, Clean the build and and rebuild and run on the device.

2.If above steps does not help you, then please check for below settings :
From "TARGET">"Build Settings">"Runpath Search Paths" & then check for values "$(inherited)" & "@executable_path/Frameworks", Feel free to add incase they don't exist.

Build your app and run it on device


When non of those solution works:

  1. (Optional) Get a clear knowledge from here on different search path type
  2. Make sure that your .framework file paths are added in Build Settings -> Framework Search Paths. You can keep all framework files somewhere in App/libs/ and add this folder and enable recursively.
  3. Make sure that your .a files paths are added in Build Settings -> Library Search Paths.

여기에 이미지 설명 입력


Made the library which shows not loaded changed from required to optional in Linked binaries and frameworks. It is working perfectly now


I installed third party libraries using Cocoapods. Got the same error, tried everything but finally realised I havent had use_frameworks! in my pod file.

So removed the currently installed library, added use_frameworks! line in pod file, reinstalled the libraries and all worked for me.

ReferenceURL : https://stackoverflow.com/questions/28244468/dyld-library-not-loaded-rpath-with-ios8

반응형