dyld : 라이브러리가로드되지 않았습니다 : @ rpath / libswift_stdlib_core.dylib


205

이전 Xcode 프로젝트에 Swift 클래스를 추가 한 후이 오류가 발생합니다.

dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib

프로젝트를 다시 실행하려면 어떻게해야합니까?


또한 다음을 사용하여이를 디버깅하는 방법을 보여주는 stackoverflow.com/questions/38364320 을 참조하십시오.otool
Jim Hayes

2017-엄청나게, Xcode를 다시 시작 하면이 중대한 문제가 해결되었습니다.
Fattie

답변:


152

나에게 이전 솔루션 중 어느 것도 효과가 없었습니다. ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES빌드 설정에 YES로 설정해야하는 플래그 (이전 버전 : "내장 된 컨텐츠에 스위프트 코드가 포함됨") 가 있음을 발견했습니다 . 기본적으로 NO였습니다!


이것은 나를 위해 그것을 고쳤습니다. 확장 설정을 true로 전환했습니다. 이 프로젝트는 끔찍하지만 내선은
빠르며

이것은 나의 결의안이기도했다. 오늘 확장 프로그램을 추가하는 기존 iOS 앱 프로젝트 (ObjC)가 있습니다 (프로젝트의 새로운 대상, 확장 프로그램은 기본 앱의 플러그인입니다). 앱 대상 설정으로 이동하여 Build Setting and viola ... 문제를 해결해야했습니다. 이해가 되겠지만 Xcode 6.0이 자동으로 구성하는 다른 많은 것들을 고려할 때,이 필수 옵션이 간과 된 것은 아쉬운 일입니다.
hsoi

이 문제는 해결되었습니다. ObjC가 많은 오래된 프로젝트가 있었으며 최근에 Swift를 추가하기 시작했습니다. IPA가 빌드되어 Swift 라이브러리를 포함했지만이 빌드 설정을 확인하고 새로운 IPA를 수행 할 때까지 일부 iOS7 디바이스에서는 작동하지 않았습니다. 이것은 문제가 발생한 모든 장치에서 작동했습니다.
Kendall Helmstetter Gelner

1
이 외에는 아무것도 효과가 없었습니다. 당신은 괴물 마법사 내 좋은 선생님입니다!
Ricky Hartmann

2
임베디드 콘텐츠 스위프트 코드를 사용 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES되지 포함
nivritgupta

91

이 오류는 Objective-C 프로젝트를 변환하여 Swift 사용을 시작하는 중에 문제가 발생한 경우 발생할 수 있습니다. 문제는 링커 빌드 설정이 제대로 구성되지 않았으므로 직접 수행해야한다는 것입니다. Runpath Search Paths 빌드 설정을 찾아서 다음과 같이 설정하십시오.

$(inherited) @executable_path/Frameworks

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

편집 : 또한 다른 문제로 인해이 오류가 최근에 발생했다고 덧붙여 야합니다 .Apple은 아마도 Xcode 6.1 또는 6.1.1에서 시작하여 Swift 자체를 변경했습니다. 유일한 해결책은 Xcode를 종료하고 Keychain Access에서 인증서를 삭제하고 회원 센터로 이동하여 모든 인증서 및 프로필을 삭제 한 다음 (Store의 앱 프로필 제외-삭제할 수 없음) 처음부터 전체 인증서 요청 프로세스


3
나를 위해 일했다. 최신 Xcode 버전으로 업그레이드했으며 내 프로젝트의이 설정 경로가 이전 버전으로 연결되어 있음을 발견했습니다.
ObjectiveTC

1
일했다 !! 당신은 내 하루를 구했다! xcode 6 GM을 사용하여 목표 C에서 신속한 GitHub 컨트롤을 사용하고있었습니다. 감사.
imthegiga

1
이것은 나를 위해 일했다. Xcode를 다시 시작하지 못했습니다.
Dan Loewenherz

1
나를 위해 일했다. Btw, 오류 메시지 끝에 "이유 : 이미지를 찾을 수 없습니다"라는 메시지가 나타납니다.
Peter Zhou

2
하느님 감사합니다! 있었다!
BoilingLime

79

나는 왜이 질문이 다운 투표되고 있는지 잘 모르겠습니다. 기존 프로젝트에서 Swift를 처음 사용할 때도이 문제가있었습니다. Xcode를 다시 시작하면이 문제가 해결되었습니다.


20
새 iOS 프로젝트에서 신속하게 사용하려고하는데 iOS 8 장치에서 실행하려고 할 때 시뮬레이터가 아닌 오류가 발생합니다. Xcode, 랩톱 또는 휴대 전화를 다시 시작해도 문제가 해결되지 않습니다. 다른 해결책이 있습니까?
David Skrundz 2016 년

2
불행히도 베타 4에서는 Swift 기반 프레임 워크를 사용하는 Mac 응용 프로그램을 시작하려고 시도했지만 작동하지 않았습니다.
크레이그 오티스

실제로 도움이되기 때문에 @ 개발자 링크를 답변에 포함 시키십시오.
Lachezar Todorov

이것을 시도하지만 깨끗하게 던져라.
Scott McKenzie

55

이 문제에 대해 오랫동안 검색했습니다. 이 문제의 원인은 여러 가지가 있습니다.

Objectice C 프로젝트에서 Swift 코드 / 라이브러리를 사용할 때 직면하는 경우 솔루션 1-2-3을 시도해야합니다

새로운 Swift 프로젝트 솔루션 4로이 문제에 직면 한 경우 가장 적합합니다.

해결책 1 :

Xcode를 재시작 한 다음 컴퓨터와 iPhone

해결책 2 :

프로젝트 빌드 설정으로 이동하여 Always Embed Swift Standard Libraries(이전 Embedded Content Contains Swift Code) 플래그를YES

해결책 3 :

프로젝트 빌드 설정으로 이동하여 추가 @executable_path/FrameworksRunpath Search Paths옵션

해결책 4 :

위의 방법 중 어느 것도 작동하지 않으면 이것이되어야합니다. 애플은 닌자 패치 인증서 인 것처럼 보입니다.AirSign의 게시물에

InHouse 인증서

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

그들은 OU 라는 새로운 필드를 추가했습니다.

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

인증서와 프로 비전을 다시 만들어야합니다


1
광고 2 : 이름이 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'입니다 (아래의 답변 참조).
Raphael

1
추가하고 싶었습니다 ... macOS 프로젝트는 @executable_path/../FrameworksiOS 프로젝트가 ..중간에 없이 필요로하는 곳이 필요합니다 . 대상을 한 OS에서 다른 OS로 변환 한 경우이 값을 변경하는 것이 중요합니다.
Matt Gallagher

41

필자의 경우 사용자 정의 프레임 워크를 가져 오려고 시도했지만 비슷한 오류가 발생했습니다. 연결된 프레임 워크 및 라이브러리가 아닌 Embedded Binaries에서 프레임 워크를 가져와야합니다.

임베디드 바이너리는 프로젝트 설정->-> 일반에 있습니다.


내 하루를 구했다! 대박!
Klaas

1
소스 파일을 별도의 대상으로 포함시키는 대신 신속하게 작성된 컴파일 된 프레임 워크를 사용하려고 할 때이 오류가 발생했습니다. 위의 솔루션은 저에게도 효과적이었습니다.
alex da franca 2012

고마워, 하루 종일 저축했다.
Badrinath

1
신속하게 부분적으로 작성된 프레임 워크를 완전히 객관적인 오래된 프로젝트에 연결하려고 시도한 후에 나를 위해 일했습니다 .c. 설정은 실제로 빌드 설정에있었습니다. 자세한 내용은 여기 : stackoverflow.com/questions/24163870/…
Pellet

이것은 프로젝트가 아닌 대상 설정 아래에 있다는 것입니다.
Legoless

16

Adhoc / Enterprise 배포 빌드에서이 문제가 발생한 개발자의 경우,

개발자 포털에서 프로덕션 인증서를 작성한 후 분배 프로파일을 재생성하십시오. 둘 다 Mac에서 다운로드하여 설치하십시오. Xcode 빌드 설정에서 올바른 프로파일을 선택했는지 확인하고 앱을 다시 빌드하십시오.

출처 : https://devforums.apple.com/message/1022908#1022908


이 링크가 질문에 대답 할 수 있지만 링크는 끊어집니다. 따라서 링크의 주요 부분을 포함하는 것이 좋습니다. 링크 전용 답변은 권장되지 않습니다.
Pokechu22

내 엔터프라이즈 앱에서 일했습니다. 감사!
sylvanaar

15

해결책 5 :

제 경우에는 accfews 의 답변에 언급 된 모든 솔루션 이 매우 도움이되었지만 아무것도 효과가 없었습니다. 프로젝트 대상의 "일반"섹션에있는 "내장 바이너리"섹션에 빠른 라이브러리를 추가하여 문제를 해결했습니다. 아마도 내 작업 공간에 신속한 프레임 워크를 포함했기 때문일 수 있습니다. 그것이 무엇이든 지금 컴파일! 스위프트 준비해, 내가 왔어!


좋아, 그것은 작동하는 것처럼 보였다. 신속한 프로젝트를 위해 신속한 코드 라이브러리를 작성하려고합니다. 어떻게 든 이것이 여전히 올바른지 궁금합니다. 그러나 나는 그 작업에 감격했습니다.
kpierce8

빌드 단계 탭의 "복사 프레임 워크"섹션에 프레임 워크를 포함 시켰지만 여기서는 하나의 프레임 워크를 선택할 수 없습니다. "일반"은이 다른 프레임 워크를 선택하여 빌드 단계에 추가했으며 앱이 빌드 및 실행되었습니다. 이상하게도 여전히 시뮬레이터에서 앱을 실행할 수 있습니다.
djbp

크리스토프 감사합니다. 당신처럼 모든 솔루션을 시도해 보았으므로 신속한 라이브러리를 다른 프로젝트로 간단하게 드래그 할 수 없다는 것을 이해하는 것은 분명하지 않았습니다. 라이브러리를 임베디드 섹션에 분명히 넣어야합니다 (일명 더 빠른 모듈, 다른 유형의 임베디드 항목이 있을지 의심됩니다). Xcode가 자동으로 그것을 자동으로 감지하고 우리를 위해 일을 할 수 있다고해도 ... 그러나 그것은 우리의 시간을 낭비하기 위해 여기에서 확실히 우리의 사랑하는 XCode;)의 임무가 아닙니다 ...
Mr Bonjour

또한 라이브러리가 이미 목록에있는 경우 "Embed & Sign"으로 표시되어 있는지 확인하십시오. 이것은 내 문제를 해결합니다.
SquareBox

10

Xcode를 간단히 다시 시작하면 문제가 해결되었습니다.


나는 Windows를 재설정하는 재미를 만드는 다음 애플 팬보이를 때릴거야
Josh

5

저에게있어 문제는 Apple Worldwide Developer Relations Certification Authority가 유효하지 않기 때문입니다.

여기에서 다운로드하십시오 : https://developer.apple.com/certificationauthority/AppleWWDRCA.cer

키 체인 접근으로 드래그 앤 드롭하고 프로젝트를 정리하고 실행하십시오.


이는 CloudKit 자격을 추가 한 후에 시작되었습니다. 그 전에는 WWDR 인증서가 유효하지 않은 것을 신경 쓰지 않았다고 생각합니다.
CommaToast

3

빠른 소스 파일을 추가하기 시작한 Obj-C 프로젝트가있었습니다. 다음은 나를 위해 문제를 해결했습니다.

  1. 연결 : RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
  2. 스위프트 컴파일러-코드 생성 : EMBEDDED CONTENT CONTAINS SWIFT = YES

방금 Xcode 6.3 템플릿에서 새 프로젝트를 만들고 프로젝트 설정을 이전의 원래 프로젝트와 비교했습니다.


3

Alt 키를 누른 상태에서 제품-> 빌드 폴더 정리 ...로 이동하십시오.

그것이 누군가를 도울 수 있기를 바랍니다 ..


이것은 질문에 대한 답변을 제공하지 않습니다. 평판 이 충분 하면 모든 게시물댓글 수 있습니다 . 대신 asker의 설명이 필요없는 답변을 제공하십시오 . - 리뷰에서
Rakete1111

오래된 프로젝트에서 새 클래스를 추가하려고 시도한 후에 발생했습니다. 오래된 프로젝트 정보는 없습니다. 따라서 프로젝트를 지우고 캐시를 강제로 새로 고치는 것이 합리적입니다. 오래된 프로젝트는 Apple 프로덕션 및 개발자 인증서가 매년 만료되기 때문에 인증서가 변경 될 가능성이 있음을 나타냅니다. Apple 기술 Q & A에서 오류의 주요 원인에 대해 읽으십시오. developer.apple.com/library/ios/qa/qa1886/_index.html . 나에게도 같은 일이 있었고 Clean Build Folder는 프로젝트를 다시 실행시킵니다. 사람들이 시험해 보도록
하세요

iOs 인증서를 다시로드 한 직후에 발생했습니다. 간단한 청소 (제품 메뉴)와 모든 것이 잘 작동합니다 ;-)
Sébastien REMY

완벽하게 작동했습니다. 감사합니다.
iSofia

3

이런 일이 발생하는 이유는 많습니다. 주말 동안이 문제를 일으키는 또 다른 문제 (코드 서명 순서)를 발견하면서 즐거운 주말을 보냈을 때 가능한 모든 솔루션을 함께 제공하는 요약 답변을 만들고 싶었습니다.

  1. 포함 된 컨텐츠 추가 프로젝트에 스위프트 코드 포함 . 앱에 Swift 코드가 포함 된 경우이 플래그를 설정해야합니다.
  2. 프로젝트를 청소하십시오 . 프로젝트> 정리 외에도 DerivedDataBuild디렉토리를 삭제할 수도 있습니다 . 세 이하 봐 환경 설정 의 위치 DerivedData. Build프로젝트 폴더에 있어야합니다.
  3. 확인 RUNPATH 검색 경로가 포함@executable_path/Frameworks .
  4. OU (조직 구성 단위) 필드에 인증서에 Apple 팀 ID가 포함되어 있는지 확인하십시오. 이이 인증서를 추가하고 기존 배포 인증서를 해지하고 새 인증서를 생성 한 후 다운로드, KeyChain에 설치, 모든 프로비저닝 프로파일을 재생성하고 다운로드 및 재건하십시오.
  5. Xcode 재시작 모든 것이 기본적으로 좋지만 Xcode는 아직 얻지 못했습니다.

쉬운 일입니다. 자체 명령 행 빌드를 수행하는 경우 .ipa업로드 할 고유 파일을 작성하고있을 수 있습니다. 이 경우 다음을 확인해야합니다.

  1. Swift 파일의 버전이 버전의 버전과 SwiftSupport/iphoneos동일한 지 확인하십시오.Contents/YourApp.app/Frameworks Swift는 버전간에 바이너리 호환성이 없기 때문에이 버전이 앱을 빌드 한 버전인지 확인해야합니다. 이 라이브러리는 아래에서 찾을 수 있습니다 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos.
  2. 먼저 라이브러리와 프레임 워크에 서명하십시오 . 당신은 할 필요가 codesign라이브러리와 프레임 워크 파일 (아래 Frameworks에서 .app첫번째 다음 전체 서명 폴더) .app트리. .app나무는 서명해야 entitlements.plist하지만 하지 프레임 워크.

Swift 3.0이 나오고 더 이상 Swift와 앱을 번들로 묶을 필요가 없을 때이 문제가 사라질 것입니다.


2

프로덕션 인증서가있는 Ad Hoc (또는 엔터프라이즈) 모바일 프로비저닝을 사용하여이 문제가 발생했습니다. 개발 인증서 및 모바일 제공으로 전환하면 문제가 해결되었습니다.


4
개발 중에 앱을 실행할 수는 있지만 임시 또는 엔터프라이즈 프로필이 작동하지 않으면 어떻게 배포합니까?
Kristopher Johnson

2

내 프로젝트는 일부 Objective-C 클래스가있는 Swift 프로젝트입니다. 오래된 inHouse (엔터프라이즈) 인증서로 서명 할 때도 같은 문제가있었습니다.

다음 단계는이 문제를 해결했습니다.

  1. 새 인증서 및 모바일 프로비저닝을 작성하고 사용하십시오.
    ( AIRSIGN의 블로그 참조 )
  2. 설정 Runpath Search Paths빌드 설정을을 : $(inherited) @executable_path/Frameworks.
    ( 매트 참조 답변 )

2

해결책 6 :

이 경우 엔터프라이즈 배포 인증서가 해지되었습니다. 새 인증서를 생성하고 프로비저닝 프로파일을 업데이트하면 문제가 해결되었습니다.

(이 오류의 원인은 여러 가지가있는 것 같습니다. 누군가에게 도움이되기를 바랍니다.)


이것은 내 문제를 해결했습니다. 이런 문제를 해결하기 위해 시간을 낭비하는 것은 어떻습니까? 이것이 다른 사용자 문제를 해결하기를 바랍니다. 내 사용자 정의 프레임 워크를 사용하여 앱을 디버깅 할 수 있었지만 jenkins에서 빌드 시스템 버전을 실행할 수 없었습니다. 배포 인증서를 해지하고 새로운 엔터프라이즈 프로비저닝 프로파일을 생성하면 빌드가 수정되었습니다.
cynistersix 1

2
이 솔루션 4와 동일합니다
accfews

2

위의 모든 답변을 시도했지만 아무것도 효과가 없었습니다.

요세미티로 업데이트 한 후 마침내 일했습니다.


2

올바른 코드 서명 ID를 설정하면 문제가 해결되었습니다 (빌드 설정-> 코드 서명 ID).

Apple 기술 질문에 따르면 "iOS 8이 출시 된 후 생성 된 모든 엔터프라이즈 및 표준 iOS 개발자 인증서에는 Swift 언어 앱을 실행할 수있는 새로운 팀 ID 필드가 있습니다"


2

임베디드 바이너리를 통해 세 개의 프레임 워크를 추가하면 링크 된 프레임 워크 및 라이브러리에도 추가됩니다. 링크 된 프레임 워크 및 라이브러리 에서 세 항목을 삭제하면 문제가 해결됩니다.

Xcode를 다시 시작하고 Mac을 다시 시작하는 등의 마술 방법이 작동하지 않습니다.


형식을 개선해 주셔서 감사합니다. 더 좋아 보인다. "링크 된 프레임 워크 및 라이브러리"는 두 섹션이 아닌 한 섹션입니다. "and"를 굵게 바꿉니다. @ Bartłomiej
Arbipher

特 来 shua fen zi shu bu ding
icemelon

2

"링크 된 프레임 워크 및 라이브러리"대신 "내장 바이너리"로 프레임 워크 추가-문제가 해결되었습니다.

또한 Embedded Content Contains Swift Code 플래그를 YES로 설정했습니다.


1

최신 버전의 OS X (Yosemite)로 업그레이드

몇 시간의 시행 착오 끝에이 문제의 해결에 도달했습니다. -물론 이것이 귀하의 경우에 해당하는 경우.

Mac OS X을 Mavericks에서 Yosemite로 업그레이드 할 때까지 동일한 문제가있었습니다. -문제가 해결되었습니다. 문제가 해결되기를 바랍니다.


1

Apple 및 새로운 인증서를 포함하여 웹에서 찾은 모든 솔루션을 시도했습니다. 성공없이.

6 개월간의 노력 끝에 xcode를 실행할 수있는 유일한 방법은 맥북에서 새 계정을 만드는 것입니다.


1

일반적으로이 라이브러리를 빌드 단계의 "파일 복사"세그먼트에 추가하면이 오류가 사라집니다.


이것은 XCode 7.2.1에서 나를 위해 일했습니다. Build Phases 패널에서 +를 사용하고 New Copy Files Phase를 선택한 다음 작업 공간 트리에서 Copy Files 섹션으로 프레임 워크를 드래그했습니다. 마지막으로 대상 : 프레임 워크를 선택했습니다. 깨끗한 빌드 후 내 응용 프로그램이 예상대로 시작되었습니다.
Rob Smallshire

1

위의 모든 도움이되지 않으며 당신이 정말로 좌절한다면 ... 모두의 최고의 트릭을 시도 : Clean그냥 확인도 할 Clean Build Folder. :) 그것이 누군가를 돕기를 바랍니다!


1

이 솔루션들 중 어느 것도 나를 위해 일하는 것 같지 않았습니다. 두 번의 성공적인 실행 후에는 다시 실패합니다. "내장 컨텐츠에 스위프트 코드가 포함됨"플래그가 항상 YES로 설정되었습니다.

Xcode를 6.3 호환으로 설정했습니다. 다시 3.2 호환으로 변경하면 해결되었습니다.


감사합니다! 나는 다른 모든 것을 시도했다. 다시 3.2로 변경하고 프로젝트를 정리하고 Xcode를 다시 시작했습니다
gabriellanata

1

나는 또한이 문제를 겪었다. libswiftXCTest.dylib .

해결책은 XCTest.framework에서 테스트 대상 에 추가 하는 것이 었 습니다 Build Phases/Link Binary with Library. 주 대상을 만들려고 할 때도이 오류가 발생했습니다.


0

이전 프로젝트에 Swift 언어를 사용하는 새로운 Today 확장 대상을 추가했을 때 나타났습니다. 프로젝트를 권장 설정으로 업데이트하여 쉽게 수정했습니다. Xcode 6.0.1


0

iOS 8.1.1이 설치된 iPhone5에서 테스트하는 Mavericks, Xcode 6.1.1을 사용하는 것과 동일한 문제가 발생했습니다. 새 인증서 및 프로비저닝 프로파일을 포함한 모든 가능한 솔루션을 시도했지만 아무런 도움이되지 않았습니다. 나는에 대한 변경을했다 Embedded Content Contains Swift CodeRunpath Search Paths 프로젝트 수준과 목표 수준에서 모두.

이제 Yosemite를 설치했으며 더 이상 변경하지 않고 작동하기 시작했습니다.


0

여기에서도 같은 문제가 있습니다 .Crashlytics / Fabric / Beta / Twitter / Chatlytics는 임베디드 프레임 워크가없는 바이너리를 업로드했습니다. 아카이브를 만든 다음 표준 방식으로 Enterprise 빌드를 내 보낸 경우 매력적이었습니다.


0

내 환경 : Cocos2d 2.0, Box2d, 목표 C

위의 다른 답변 외에도 마침내 일반 탭으로 이동하여 WatchKit을 선택 사항으로 만들었습니다.

대상 : 일반 : 링크 된 프레임 워크 및 라이브러리 : WatchKit.framework : 옵션


0

몇 달과 몇 달 만에 여기에서 모든 것을 시도한 후 ... 광기의 정의 ... 새로운 Mac 사용자로 Xcode를 시작하면 해결되었습니다.

~ / Library / Developer / *를 제거하고 Xcode를 다시 설치 했으므로 포맷하기 위해 다른 어떤 단서도 작동하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.