[macos] OS X Framework 라이브러리가로드되지 않았습니다 : ‘이미지를 찾을 수 없습니다’

기본 OS X 프레임 워크를 만들려고합니다. 지금은 테스트 프레임 워크를 만들었습니다. TestMacFramework.framework새로운 OS X 응용 프로그램 프로젝트로 가져 오려고합니다.

.framework 파일을 빌드하여 새 프로젝트로 가져 왔습니다. 프레임 워크가 제대로 연결되어있는 것으로 보입니다. 프레임 워크 빌드 단계 섹션에 추가 한 공개 헤더 파일을 참조 할 수 있습니다.

그러나 컨테이너 응용 프로그램을 실행하려고하면 다음 오류가 발생합니다.

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found

약간의 인터넷 검색 후 Copy Files컨테이너 응용 프로그램 빌드 단계에 섹션 을 추가해야한다는 것을 알았 으므로이 작업을 수행하고 설정했습니다.

여기에 이미지 설명을 입력하십시오

그러나 여전히 런타임 오류가 발생합니다. 분명히 여기에서 잘못된 일을하고 있지만이에 대한 Apple 개발자 라이브러리 리소스는 Xcode 2를 참조하므로별로 도움이되지 않습니다!

내가 무엇을 놓쳤습니까?

최신 정보:

빌드 로그에서 내 TestMacFramework.framework.app contents / frameworks 디렉토리로 복사되고 있지만 HD의 Library / Frameworks 디렉토리에 설치되지 않음을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

업데이트 2 :

내가 수동으로 복사하는 경우 빌드가 제대로 연결 TestMacFramework.frameworkLibrary/Frameworks디렉토리



답변

[Xcode 11+]

할 일은 앱 대상 탭의 General->Frameworks, Libraries And Embedded Content섹션에 프레임 워크를 추가하는 것 General입니다.

‘내장 및 서명’옵션을 선택했는지 확인하십시오.

여기에 이미지 설명을 입력하십시오

[Xcode v6-> Xcode v10]

할 일은 앱 대상 탭의 Embedded binaries섹션에 프레임 워크를 추가하는 것 General입니다.

Xcode의 스크린 샷


답변

그래서 나는 그것을 작동 시켰습니다. 올바른 지시가있을 때 매우 간단합니다. 내가 찾고있는 것은 시스템 라이브러리 폴더에 쓰여지지 않고 앱 번들에있는 ‘개인’프레임 워크였습니다.

프레임 워크 구축

  1. 대상을 추가하여 Cocoa Framework 생성
  2. 이 대상 내 ‘빌드 설정’에서 ‘설치 디렉토리’를 ‘@ executable_path /../ Frameworks’로 구성하십시오.
  3. 라이브러리를 빌드하고 아카이브 또는 제품 디렉토리에서 .framework에 액세스하십시오.

프레임 워크 포함

  1. 생성 된 .framework 파일을 Xcode 프로젝트로 드래그하여 ‘파일을 디렉토리에 복사’를 선택하십시오.
  2. 포함하는 애플리케이션 대상에서 새로운 ‘복사 파일 빌드 단계’를 추가하십시오.
  3. ‘목적지’를 ‘프레임 워크’로 설정하십시오.
  4. 생성 된 .framework에서 드래그

답변

그것은 나를 위해 매우 간단했습니다. 방금 앱 프레임 워크 아래의 임베디드 바이너리에 프레임 워크를 추가했습니다.


답변

내가 선택할 수없는 위의 옵션. Runpath Search Path를 지정하여 해결했습니다.

빌드 설정 ‘탭에 있습니다. ‘ 연결 ‘섹션에서 ‘ Runpath 검색 경로 ‘를로 변경하십시오.$(inherited) @executable_path/Frameworks


답변

나는 같은 문제에 부딪 쳤지 만 수용 된 해결책이 효과가 없었다. 대신 솔루션은 프레임 워크의 설치 이름을 수정하는 것이 었습니다.

원래 게시물의 오류는 다음과 같습니다.

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found

라이브러리가로드되지 않은 후 첫 번째 경로에 유의하십시오 . 프레임 워크가 절대 경로에서로드되고 있습니다. 이 경로는 프레임 워크의 설치 이름 (때로는 rpath라고 함)에서 가져 오며 다음을 사용하여 확인할 수 있습니다.

otool -D MyFramework.framework/MyFramework

프레임 워크가 앱에 포함 된 경우이 경로는 상대 경로 여야하며 @ rpath / MyFramework.framework / MyFramework 형식이어야 합니다. 프레임 워크의 설치 이름이 절대 경로 인 경우 런타임에로드되지 않을 수 있으며 위와 유사한 오류가 발생합니다.

해결책은 설치 이름을 수정하는 것입니다.

install_name_tool -id "@rpath/MyFramework.framework/MyFramework" MyFramework.framework/MyFramework

이 변경으로 더 이상 오류가 발생하지 않습니다.


답변

파생 데이터를 삭제하면 저장되었습니다.


답변

이 문제 중 어느 것도 나를 위해 이것을 해결하지 못했습니다. 결국 문제는 매우 쉬웠다. 애플 버그 (29820370)에서 문제를 기록하고 수정 한 꽤 큰 Xcode 버그 인 것 같습니다. https://bugreport.apple.com/ 버그 리포터 에서 버그를 제기하고 가시성을 얻기 위해 제기 한 버그를 참조하십시오. Xcode를 이전의 즐거움으로 다시 만들고 싶습니다 .Xcode가 스스로 고쳐야한다고 확신합니다.

수정 사항은 다음과 같습니다. 1. Open Keychain-Apple Worldwide Developer Cert로 이동합니다. 2. 더블 클릭 3. 시스템 기본값을 사용하도록 권한 수준을 “항상 신뢰”에서 변경합니다. 4. 저장하고 닫습니다. 5. Xcode를 다시 시작하고 프로젝트를 정리하고 빌드하면 사라집니다.

올바른 설정의 스크린 샷 :
키 체인 접근 수정
도움이 되었기를 바랍니다.