이유 : 적합한 이미지가 없습니다. [닫기]


129
dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 

iPhone을 빌드 할 때이 오류가 발생합니다. 시뮬레이터를 만들 수 있습니다. 모든 프로비저닝 파일을 다시 작성했지만 여전히 iPhone에서 빌드 할 수 없습니다. 내 Xcode는 다음과 같습니다

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

이것이 프레임 워크 문제입니까 아니면 서명 문제입니까? 이것은 Xcode 6에서는 발생하지 않았습니다. 감사합니다.



: 여기에 내 대답을 참조 - 나는 월드 와이드 개발자 인증서에 대한 권한을 변경하여 (SO에 죽은 - 끝의 하중을 찾은 후)이 문제를 해결 stackoverflow.com/a/41401399/559760을 (희망이 도움이!)
UKDataGeek

iOS 13.3.1 용 업데이트 : 운이 좋지 않은 iOS가 있고 중첩 된 프레임 워크가있는 앱을 설치하려고하면 버그임을 알고 있습니다. 13.4.1 이상으로 업데이트하면 아직 해결되었습니다
iago849

답변:


389

실수로 인증서를 해지 한 적이 있기 때문에이 문제가 있습니다. 그런 다음 모든 신속한 프로젝트 에이 문제가 있습니다. 이 문제를 해결하는 두 가지 방법이 있습니다.

제품 → 청소 (또는 CMD+ Shift+ K)를 클릭하십시오

또는 Xcode 설정 파일을 수동으로 정리하여 :

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode

1
터미널에서 사용
Jieyi Hu

문제 없어요. 당신이 좋아하는 경우 내 대답을 선택하십시오 :)
Jieyi Hu

10
나는 Alt + Clean도 그렇게 할 것이라고 생각한다
jjxtra

9
프로젝트 청소는 나를 위해 일했습니다 : SHIFT + CMD + K
B-Rad

9
개발자가 아닌 Apple ID를 사용하여 앱을 휴대 전화에 설치하고 있습니까? iOS 13.3.1에 무료 Apple ID로 설치된 앱이 손상된 것처럼 보이지만 내장 된 프레임 워크가 포함 된 경우에만 해당됩니다. 모든 의존성을 프레임 워크가 아닌 정적 라이브러리로 연결할 수 있다면 (예를 들어 Cocoapods를 사용하는 경우 Podfile에서 use_frameworks!를 제거 할 수 있음) 문제가 해결됩니다.
카 시프 라 바니

30

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

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

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

해결책 1 :

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

해결책 2 :

프로젝트 빌드 설정으로 이동하여 Embedded Content Contains Swift코드 플래그를 예로 설정하십시오.

해결책 3 :

프로젝트 빌드 설정으로 이동하고 @executable_path/Frameworks런 패스 검색 경로 옵션에 추가

해결책 4 :

위의 방법 중 어느 것도 작동하지 않으면 이것이되어야합니다. AirSign의 게시물에 언급 된 것처럼 Apple은 닌자 패치 인증서 인 것 같습니다.

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 ~ 3을 수행했지만 작동하지 않습니다. 인증서와 규정을 다시 만들었으며 제대로 작동하지 않습니다
Satsuki

1
Satsuki가 처음 요청한 것과 같은 오류 메시지에 직면했습니다. 솔루션 4가 나를 위해 속임수를 썼습니다. Realm Framework에 문제가 있었지만 내 응용 프로그램의 아카이브를 생성 한 다음 iTunes를 통해 설치하려고 시도한 경우에만 (그렇지 않은 경우 장치에 직접 배포하는 것이 유창했습니다).
Peter Ivanics

4 나도 그랬어요! AirSign 게시물에 대한 링크는 다음과 같습니다. airsignapp.com/…
pshah

2
InHouse 인증서는 어떻게 편집합니까?
Al Wang

1
1과 2는 나를 위해 작동하지 않았습니다. 창-> 프로젝트, 파생 데이터 삭제로 수정되었습니다. 열등한 버그 xcode>. <
Cymric

27
Xcode->Product->Clean + Xcode Restart

언급 된 다른 많은 해결책을 시도한 후, 영원한 부끄러움을 느끼기 위해 Xcode-> Product-> Clean을 수행하고 Xcode를 다시 시작하면 트릭을 수행했습니다.


2
WWRD, Runpath 확인 등과 같은 앞에서 언급 한 많은 단계를 수행했습니다.이 "청결"을 수행하기 전까지는 아무것도 작동하지 않았습니다. 감사합니다!
Joe Famme

몇 가지 청소가 실패한 후 Xcode를 다시 시작해야했습니다. 애플이 다른 모든 것을 만드는 것이 어려워 보인다는 점을 고려하면 해결책이 너무 분명해 보인다
Jeffrey Kern

19

나 에게이 문제는 WWRD 인증서로 인해 나타났습니다. 광산이 최신 상태 였지만 어떤 이유로 든 '시스템 기본값 사용'대신 '항상 신뢰'로 설정되어 분명히 차이가 있습니다.


4
인증 문제의 경우 +1 나는 모든 것을 절대적으로 시도했지만 키 체인에서 개발자 인증서가 "항상 신뢰"로 설정되어 있음을 알았습니다. 말 그대로 "시스템 기본값 사용"으로 변경하면 완벽하게 작동합니다. 감사합니다!
tylermilner

1
모든 것을 시험해 보았습니다. 진심 왜 사과는 .... 엑스 코드의 한 부분으로이 문제를 해결할 수 없습니다
UKDataGeek

1
매우 중요 : "시스템 기본값 사용"깊이로 인증서 액세스를 변경 한 후 프로젝트
정리

2
내 하루를 구했어! 감사합니다
andrea.rinaldi

이것이 이것이이 문제에 대한 ULTIMATE 솔루션이라고 생각합니다. 나는 또한 인터넷을 통해 사용 가능한 거의 모든 솔루션을 시도했지만 이것들을 제외하고는 나를 위해 작동하지 않습니다. 훌륭한 솔루션 ...
Er. Vihar

17

실수로 키 체인을 재설정하면 키 체인에 Apple 인증서가 없어서 발생할 수 있습니다. 나는 이것 에 대한 답을 따라 문제를 해결했다.

나는 같은 문제가 있었고 WWDR (Apple Worldwide Developer Relations Certification Authority)을 다시 다운로드하여 해결할 수있었습니다. 여기에서 다운로드하십시오 : http://developer.apple.com/certificationauthority/AppleWWDRCA.cer


1
Xcode와 내 사용자 프로필을 한 Mac에서 다른 Mac으로 전송 한 후 수정되었습니다.
RTasche

1
내 경우에는 효과가 있습니다. 감사합니다!
Alice Chan

1
감사합니다, 당신은 생명의 은인
Josh O'Connor

고마워요, 이것을 찾기 위해 너무 오래 걸렸습니다.
loudmouth

14

DerivedData를 제거하면 속임수가되었습니다.

Xcode-> 환경 설정-> 위치-> DerivedData 경로 뒤에있는 화살표를 클릭하고 Finder에서 전체 DerivedData 폴더를 제거했습니다.


고마워, 나를 위해 일했다, cordova + xcode 7.2
jujule

1
Window > Projects > My Project > Derived Data > Delete나를 위해 일을했다.
Michael Waterfall

Xcode 10.1에서 나를 위해 일했습니다. 모두 잘 작동했지만 어느 날 행복한 Xcode는 이러한 오류를 보여주기 시작했습니다. 감사.
Zhebzhik Babich

5

xcodebuild 및 xcrun PackageApplication을 통해 명령 줄에서 응용 프로그램을 빌드하고 엔터프라이즈 프로파일로 응용 프로그램에 서명 할 때 내 편에서 발생했습니다. CI 빌드 서버에서 인증서는 키 체인에서 "항상 신뢰"로 설정되었습니다 (인증서 선택-> 정보 입수-> 신뢰-> "시스템 기본값 사용"은 "항상 신뢰"로 변경 가능). 이 작업을 수행하려면 "시스템 기본값 사용"으로 다시 설정해야합니다. 처음에는 소프트웨어 업데이트 및 인증서 업데이트 후에 나타나는 키 체인 대화 상자를 해결하기 위해 "항상 신뢰"로 설정했습니다.


3

더 많은 혼란을 겪을 위험이 있으므로 XC8로 업데이트 할 때이 문제가 발생했습니다.

이러한 제안 중 어느 것도 다른 스레드에서 해결하지 못했습니다. DID의 작동 방식은 "라이브러리와 바이너리 연결"빌드 단계, "대상 종속성"빌드 단계 및 "링크 된 프레임 워크 및 라이브러리"일반 설정에서 모든 것을 제거하는 것이 었습니다.

참고로, Carthage를 사용 $(PROJECT_DIR)/Carthage/Build/tvOS하고 있으며 FRAMEWORK_SEARCH_PATHS빌드 설정에 추가 되어 내 프레임 워크를 찾을 수 있습니다.

FYI 2,이 프로젝트와 프레임 워크는 100 % 신속하고 프레임 워크가 구축 중 DEFINES_MODULE = YES입니다.


DEFINES_MODULE = YES가 저에게 효과적이었습니다. 내 프로젝트에는 objective-C와 Swift가 모두 포함되었습니다.
Jason Huh


2

기술 Q & A QA1886 에서 인용 :

Swift 라이브러리 libswiftCore.dylib를 참조하려고하면 Swift 앱이 충돌합니다.

Q : Swift 언어 앱을 실행할 때 발생하는 장치 콘솔의 libswiftCore.dylib 로딩 오류에 대해 어떻게해야합니까?

A :이 문제를 해결하려면 OU (Subject Organizational Unit)가 팀 ID로 설정된 코드 서명 인증서를 사용하여 앱에 서명해야합니다. iOS 8이 출시 된 후 생성 된 모든 엔터프라이즈 및 표준 iOS 개발자 인증서에는 Swift 언어 앱을 실행할 수있는 적절한 위치에 새로운 팀 ID 필드가 있습니다.

일반적으로이 오류는 다음 중 하나와 유사한 메시지와 함께 장치의 콘솔 로그에 나타납니다. [....] [deny-mmap] 매핑 된 파일에는 팀 식별자가 없으며 플랫폼 바이너리가 아닙니다. / private / var / mobile / 컨테이너 / 번들 / 애플리케이션 /5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

아카이브를 구축하고 앱을 패키징 할 때 새로운 인증서가 필요합니다. 새 인증서 중 하나가 있더라도 기존의 신속한 앱 아카이브를 사임해도 작동하지 않습니다. iOS 8 이전 인증서로 빌드 된 경우 다른 아카이브를 빌드해야합니다.

중요 : 새 Enterprise Distribution 인증서를 취소하고 설정해야하는 경우주의하십시오. 사내 엔터프라이즈 개발자 인 경우 엔터프라이즈 직원 중 한 명이 여전히 해당 엔터프라이즈 배포 인증서로 서명 된 앱으로 사용하는 앱에 서명하는 데 사용 된 배포 인증서를 해지하지 않도록주의해야합니다. 즉시 작동이 중지됩니다. 위의 내용은 Enterprise Distribution 인증서에만 적용됩니다. 기업 / 표준 iOS 개발자는 개발 인증서를 안전하게 폐기 할 수 있습니다.

AirSign 사용자는 사내 인증서의 제목 필드에 누락 된 OU 속성에서 문제가 발생했음을 나타냅니다.

제목 : UID = 269J2W3P2L, CN = iPhone 배포 : 회사 이름, OU = 269J2W3P2L, O = 회사 이름, C = FR

엔터프라이즈 개발 인증서가 있는데 새 인증서를 만들면 문제가 해결되었습니다.


누구나 영어로 이것을 설명 할 수 있습니까?
UKDataGeek

1

해당 라이브러리에 올바른 아치가 없을 수도 있습니다.

file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib

그리고 그것은 당신에게 그 라이브러리에있는 아치를 보여 줄 것입니다 ... 나는 당신이 어떻게 연결하고 있는지 잘 모르겠지만, 아마도 올바른 방법이 아닐 것입니다 (libswiftcore가 팩토리 라이브러리라면 라이브러리에 추가한다면 아마 올바르게 컴파일되지 않았습니다)


안녕하세요, 답변 주셔서 감사합니다. 질문이 있습니다. 대답에서 당신은 말했고 그 도서관에있는 아치를 보여 주어야합니다. 어떻게 보여
사츠키

이 명령을 파일이라고합니다.하지만 전화 경로보다는 Mac에서 로컬 버전을 찾아야한다고 생각합니다.
Grady Player

1

나도이 문제가 있었지만 위에서 시도한 다른 게시물에서 아무것도 시도하지 않았습니다.

배포와 개발을 위해 번들 ID가 다르기 때문에 번들 식별자를 변경했습니다.

이 조항에 내 하드웨어가 허용되고 팀 계정이 유효하지만 다른 프레임 워크에서 위의 오류가 발생했습니다.

내 휴대 전화에서 이전 버전의 앱을 완전히 제거해야한다는 것이 밝혀졌습니다. 표준 방법 만 삭제하는 것이 아닙니다.

해결책 :

  1. 대상 전화가 연결되어 있는지 확인
  2. xcode 메뉴에서 [Window> Devices]를 클릭하십시오.
  3. 왼쪽 메뉴에서 대상 장치를 선택하십시오.
  4. 오른쪽에는 장치 내의 응용 프로그램 목록이 있습니다. 테스트하려는 응용 프로그램을 찾아서 제거하십시오.

처음부터 완전히 시작하지 않은 경우 동일한 번들로 동일한 팀에 다른 번들 ID로 동일한 앱을 설치하는 경우에는 혼란에 빠지는 프레임 워크에 대한 참조가 있습니다.

이것이 누군가를 돕기를 바랍니다.


번들 ID가 변경되지 않았습니다. 그리고 위의 제안 중 어느 것도 문제를 해결하지 못했습니다 (-> 정리; 수동 삭제; 모든 것을 다시 시작하고 매번 iPhone에서 앱을 수동으로 제거하는 등). 크리스토퍼의 제안에 따라 고정 된 생각은 다시 청소하지 않고 즉시 생각합니다. [아이폰 5; iOS 9.3.5; Xcode 7.3]
marco

1

방금 프로젝트를 청소하고 Clean Build Folderalt 제품 메뉴로


빌드 폴더 정리를위한 바로 가기 : alt + cmd + shift + k
Ori

1

아래 단계가 성공적으로 수행되었습니다.

1) 동적 라이브러리에서 설치 이름은 "@loader_path"여야합니다.

2) 메인 프로젝트에서 Runpath 검색 경로는 "@loader_path"및 "@ loader_path / Frameworks"여야합니다.

3) 키 체인 사용보기-> 만료 된 인증서 표시 및 모든 것을 제거했습니다.

4) 배포 인증서를 삭제하고 다시 설치하십시오.

5) developer.apple.com/certificationauthority/AppleWWDRCA.cer을 다운로드하여 설치했습니다.


1

나는 최근 에이 문제에 직면했다. 가능한 모든 해결책을 시도했지만 아무것도 효과가 없었습니다. 마지막으로 Xcode를 종료하고 키 체인에서 인증서를 제거하고 모든 것을 새로 설치하고 다시 시작했습니다. 다행히도 그것은 매력처럼 작동했습니다 :)


1

나는 같은 문제가 있었고를 다시 다운로드하여 해결할 수있었습니다 WWDR (Apple Worldwide Developer Relations Certification Authority). 여기 에서 다운로드 하십시오 :

키 체인에서 항상 신뢰 로 설정합니다 . 로 변경Use System Default

그것은 나를 위해 작동, 나는 이것이 당신을 돕기를 바랍니다


1

제 경우에는 키 체인이 인증서를 신뢰할 수없는 것으로 표시하고 있습니다.이 문제를 해결하기 위해 인증서의 신뢰 옵션을 "항상 신뢰"로 설정했습니다. 인증서는 "항상 신뢰"로 설정하는 것이 충돌의 주요 원인이었습니다. 장치에 응용 프로그램을 설치할 수 없습니다. 트러스트 옵션을 "항상 신뢰"대신 "시스템 기본값"으로 설정하여이 문제를 해결했습니다.


1

Xamarin Studio에서 작업 중이고 PCL 미끼 및 스위치 트릭을 수행해야하는 휴대용 라이브러리를 참조하는 경우에도 동일한 증상이 나타납니다. 참조하는 프로젝트가 참조 된 라이브러리와 관련하여 오래된 경우에 발생합니다. 공통 라이브러리를 최신 프레임 워크로 업데이트하고 패키지를 업데이트했지만 iOS 패키지가 일치하도록 업데이트하지 않은 것을 발견했습니다. 패키지를 업데이트하면이 오류가 해결되었습니다.


1

@Jieyi Hu Answer를 시도한 후에도 여전히이 문제가 발생할 수 있습니다. 수정 된 것처럼 보이지만 다시 올 경우 (xCode 9에서 가능할 수 있음).

그러나이 해결 방법이 효과가있는 것 같습니다 (Cocoapods 1.5.x에 적용됨).

  1. 프로젝트를 청소하십시오
  2. Xcode를 닫고 DerivedData를 삭제하십시오.
  3. 프로젝트에서 Podfile을 열고 다음을 추가하십시오.

    post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end

  4. 포드 업데이트

출처 :

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

감사합니다 @ Cédric


0

인증서를 재생성하고 iPhone을 재시동 할 수 있습니다.

이 작업은 저에게 도움이 되었기를 바랍니다.


어떻게했는지 설명 해주세요.
TDM

0

로컬 키 체인을 확인하여 문제를 해결합니다.


스택 오버플로에 오신 것을 환영합니다! 이것은 질문에 대한 답변을 제공하지 않습니다. 당신은 항상 당신의 자신의 게시물에 댓글을 달 수, 당신은 일단 - 요청 설명은 저자에서 비판하거나, 자신의 게시물 아래에 댓글을 남겨 받을 충분한 명성을 당신은 수있을 것입니다 주석 사후에. 관련이 있지만 다른 질문 이있는 경우 상황을 제공하는 데 도움이 될 경우이 질문을 참조 하는 새로운 질문을 하십시오.
ddb

0

프로젝트에서 (직접 또는 간접적으로) 연결하는 모든 동적 프레임 워크마다 인증서 (프로비저닝 프로파일이 아닌 인증서 만)를 설정해야합니다.여기에 이미지 설명을 입력하십시오


0

필자의 경우 Xcode에서 생성하고 다운로드 한 모든 인증을 삭제 한 후. xcode 8.1이 앱의 인증을 관리하게하십시오. 이것이 누군가를 도울 수 있기를 바랍니다.


0

시뮬레이터에서만이 문제가 발생했습니다. 응용 프로그램의 일부 잘못된 권한과 관련이있는 것 같지만 장치에서 실행할 때 문제가 나타나지 않습니다.


0

이 트릭을 사용하여 해결했습니다.

1 단계:

프로젝트 빌드 설정으로 이동하여 @ executable_path / Frameworks를 Runpath 검색 경로 옵션에 추가하십시오.

2 단계:

대상 빌드 설정으로 이동하여 @ executable_path / Frameworks를 Runpath Search Paths 옵션 및 Framework Search Paths에 추가하십시오.

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

3 단계 :

WWDR (Apple Worldwide Developer Relations Certification Authority)을 다시 다운로드하고 시스템 기본값을 옵션으로 사용으로 설정하십시오.

4 단계 :

터미널을 사용하여 파생 된 모든 데이터 삭제

rm -rf ~ / 라이브러리 / 개발자 / Xcode / DerivedData / *

5 단계 :

모든 인증서를 삭제하고 키 체인에 다시 설치하십시오. 시스템 기본값 사용 옵션을 활성화했습니다.

6 단계 :

Xcode를 다시 시작하십시오.


0

같은 문제에 직면

  1. 개발자 인증서가 만료되어 새 개발자 인증서를 만들고 다운로드했습니다.
  2. xcode를 청소하고 다시 시작하십시오.

0

XCode 9 에서이 문제가 발생했습니다. 위의 아무것도 해결되지 않았습니다. 이것은 나를 위해 속임수를했다 :

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"$(PROJECT_DIR)(재귀)


0

이것은 내 오류를 해결했다.

WWDR (Apple Worldwide Developer Relations Certification Authority)을 다시 다운로드하고 시스템 기본값을 옵션으로 사용으로 설정하십시오.


0

제 경우에는 사용중인 포드 중 하나에 문제가있었습니다. 결국 해당 포드를 제거하고 코드를 프로젝트에 수동으로 배치했습니다.


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