dyld'__deld_with_deld_with_deld:오류 메시지 없음
Xcode로 앱을 시작하면 오류가 발생하지 않습니다.
이 스레드에서 앱이 중지됩니다.
문제에 대한 자세한 정보를 얻으려면 어떻게 해야 합니까?
사용자 지정 프레임워크를 사용하는 경우 Xcode 프로젝트의 Target / General 탭에 있는 "Embedded Binary" 섹션 안에 넣어야 합니다.
저는 단순한 정리 및 재구축으로 해결했습니다.
이 문제는 macOS 10.15.2 베타(Catalina)로 시스템을 업데이트한 후에 발생했습니다."Thread Sanitizer"를 비활성화하면 문제가 해결되었습니다(Xcode 11.2).이제 스레드 삭제기를 사용할 수 없고 다음 OS 업데이트를 기다려야 합니다.
임베디드 이진 자산 목록에 프레임워크를 추가하면 이 문제가 해결됩니다.다음은 임베디드 프레임워크로서 Xcode GUI의 최종 형태에서의 외부 프레임워크 설정입니다(Xcode 9.2, 개인적으로 저는 시각적인 빵 부스러기 흔적이 더 좋습니다 ;-).
애플은 iOS 개발에서 단순히 연결된 프레임워크로 애플이 아닌 프레임워크를 사용할 수 없다는 문제를 개발자에게 어떻게든 알리기 위해 의도적으로 런타임을 충돌시켰습니까?빌드 오류로 표시되는 것이 좋습니다. 제 생각에는..."움직여!"라고 쓰인 버튼으로
Embedded Binary를 사용하면 최종 사용자가 앱과 독립적으로 Framework를 추가할 필요가 없습니다.아이폰(iOS)의 경우는 불가능하지만, macOS의 경우는 가능하지만, 금방 지저분해질 수 있습니다.
최종 사용자의 경우 단순히 앱을 드래그 앤 드롭하여 MacOS에 설치하는 것이 훨씬 더 좋습니다. MacOS는 임베디드가 이점이 됩니다.임베딩은 또한 관리할 프레임워크의 외부 버전이 있는 전형적인 "DLL 충돌"을 방지합니다.(디스크 공간은 저렴하지만 고객의 시간은 소중합니다.)
제가 방금 프로젝트의 오류를 수정했습니다!
Objective-C 프로젝트에서 Swift 프레임워크를 사용하고 있다면 빌드 설정을 변경하는 것이 좋습니다.
항상 설정 스위프트 표준 라이브러리 포함 옵션을 예로 설정합니다.다음과 같이:
그것은 마침내 해결되었습니다!
프레임워크를 "필수"가 아닌 "선택사항"으로 만드는 것이 저에게 효과적이었습니다.
"이 문제에 대한 더 많은 정보를 얻으려면 어떻게 해야 합니까?"라는 원래 질문에 답하기 위해, 이 Apple 포럼 스레드는 매우 간단한 팁을 제공합니다. Xcode 외부에서 충돌하는 앱을 실행하기만 하면 됩니다(즉, Xcode에서 중지한 다음 장치에서 수동으로 실행).
이렇게 하면 발생한 작업에 대한 자세한 내용이 포함된 충돌 로그가 생성됩니다.그런 다음 Xcode Window 메뉴 → Devices and Simulators → View Device Logs(기기 로그 보기)에서 이 로그를 검토할 수 있습니다.
Xcode 11.1에서 Embed in Embed를 해제하고 서명하는 것이 좋습니다.
신용: 음모노발로프의 대답과 윌리엄 세르니우크의 대답.
진단에서 "Guard Malloc"을 확인하지 않은 것이 저에게 효과가 있었습니다.
실행을 계속하여 "MyFramework.framework"와 같은 디버거에 메시지가 표시되는지 확인합니다.그렇다면 다음 질문을 따르십시오. OS X Framework Library not loaded: 'Image not found(이미지를 찾을 수 없음)' 저에게 Amos Joshua의 답변은 효과가 있었습니다.
"포함된 이진" 섹션을 통해 이진을 추가했는지 확인합니다.
빌드 단계 섹션에서 프레임워크 서명을 사용하도록 설정했는지 확인합니다.
포함된 프레임워크가 심볼릭 링크가 아닌지 확인합니다.
"라이브러리로 이진 연결" 단계에서 필요한 대신 연결된 프레임워크를 선택적으로 설정할 수 있습니다.이것은 iOS가 출시 중에 이러한 프레임워크를 찾지 않도록 알려줍니다.그러나 어쨌든 이러한 프레임워크를 사용하려면 오류를 수정해야 합니다!
info.plist 항목이 모두 정상인지 확인합니다.저의 경우, 저는 iOS용 Macinfo.plist 파일을 사용하고 있었습니다.iOS 프로젝트에 없는 xib 파일을 찾고 있었습니다.
이러한 변경 후에는 청소 및 빌드를 수행합니다.Xcode는 이러한 파일이 이미 있는 경우 해당 파일을 복사/변경하지 않기 때문에 이 작업에 필요합니다.
iPad에서 앱을 제거한 다음 설치합니다.7과 같은 이유.
방금 info.plist 파일에서 "개인 정보 - 카메라 사용 설명"을 적용하지 못했습니다.
Xcode 11.3과 macOS v10.15.2(카탈리나)에서도 같은 문제에 직면했습니다.앱이 장치에서 잘 실행되고 있지만 시뮬레이터에서는 실행되지 않았습니다.시뮬레이터에 문제가 있는 것으로 보이며 해결 방법은 스레드 Sanitizer를 비활성화하는 것입니다.
출시 시 Xcode 11.3 시뮬레이터 SIGABRT를 참조하십시오.
동일한 서명(프로젝트가 Objective-C에 있음)에 오류가 발생하여 적절한 프레임워크와 연결하는 것을 잊어버린 것을 발견했습니다.오류를 찾은 디버그 로그의 오류 메시지는 다음과 같습니다.
dyld: 기호를 찾을 수 없음: OBJC_CLASS$_SFSafariViewController
특정 오류의 경우 Targets → Build Phases → "Link Binary With Libraries"에서 SafariServices.framework를 추가하면 문제가 해결되었습니다.특정 오류 및 해결 방법이 동일하지 않을 수 있지만 디버그 로그에서 단서를 확인하는 것이 유용합니다.
때때로 대상 버전보다 최신 iOS 버전에서만 액세스할 수 있는 시스템 프레임워크를 사용할 때 발생합니다.이 연결된 프레임워크를 선택 사항으로 표시하여 수정할 수 있습니다.
예를 들어 iOS 11을 대상으로 하고 iOS 12 자동 채우기 기능에 Authentication Services를 사용하는 프로젝트는 설명된 방식으로 iOS 11에서 충돌합니다.
plist에서 누락된 사용 권한 규격으로 해결된 유사한 문제가 있습니다(이상하지만...).
AVCaptureDevice를 사용하려고 했는데 시작할 때 갑자기 작동이 중단되었습니다(제 앱은 매우 미미했습니다).
개인 정보 추가 - info.plist 파일에 카메라 사용 설명을 추가하는 것이 해결되었습니다.
Xcode를 v10.2.1로, Swift를 v5.0으로 업데이트한 후에 이런 상황이 발생했습니다.
카르타고 + RxSwift를 사용하는 경우 새 RxSwift는 RxRelay.framework를 사용합니다./Carthage/Build 디렉토리로 이동하여 해당 프레임워크를 찾아 프로젝트로 끌어다 놓아야 합니다.$(SRCROOT)/Cartage/Build/iOS/RxRelay.framework의 카르타고 카피 프레임워크 스크립트에도 추가하는 것을 잊지 마십시오.
프레드의 답변 덕분에 해결되었습니다.
저는 이 문제가 있었고 답변에 성공하지 못했습니다.저는 블루투스 장치와 연결되는 사용자 정의 프레임워크를 사용하고 있었습니다.그래서 info.plist 파일에서 "Privacy - Bluetooth Always Usage Description"을 적용하지 않았기 때문에 충돌이 발생했습니다.
모든 권한 필드가 p-list 파일에 설정되어 있는지 확인합니다.
저도 같은 문제에 직면해 있었습니다.목표의 빌드 설정에서 'Always Embed Swift Standard Libraries'를 Yes로 설정하는 것이 효과가 있었습니다.
카르타고 빌드 프레임워크를 사용하는 경우 프레임워크를 프로젝트로 끌어다 놓은 후 일반/내장 바이너리에 추가해야 합니다.
저는 그것을 해결할 올바른 방법을 찾았습니다.
Apple 확인WWDRCA.cer가 시스템 기본 모드로 설정되면 다음과 같이 작동합니다.

Objective-C 애플리케이션에서 Swift로 작성된 프레임워크를 사용하는 경우, 프레임워크를 사용하는 앱에 Swift 툴체인을 포함해야 합니다.
제가 발견한 방법은 앱에 더미 스위프트 파일을 생성하여 Xcode가 스위프트를 인식하고 프로젝트에 적절하게 추가할 수 있도록 하는 것입니다.그런 다음 더미 파일을 삭제할 수 있습니다.
또한 사용자 지정 프레임워크를 사용하는 경우 Mach-O 유형을 정적 라이브러리로 설정해야 합니다.iOS는 dyllib를 허용하지 않는다는 것을 어디선가 읽었습니다.어쨌든, 이것은 저에게 효과가 있었습니다.
이 오류가 발생하는 긴 목록을 추가하려면 Xcode 12.2 베타 2에서 배포 대상이 macOS v11.0(Big Sur)으로 설정된 macOS v10.15.5(카탈리나)를 실행하는 Mac에 배포할 때 발생합니다.
사이드바를 추가할 때 Mac Catalyst Tutorial 앱을 사용해보고 있었기 때문에 이러한 상황이 발생했습니다.대상을 macOS v10.15.5로 전환하면 오류가 제거되고 앱이 제대로 실행됩니다.
저는 iOS 14.5에서 ATT(App Tracking Transparency)를 재생/실행할 때 이 문제에 직면했으며 사용자 추적이 필요한 이유에 대해 file info.plist에 사용 설명을 추가하지 않았습니다.
"앱에서 추적 요청 허용" 설정이 활성화될 때마다 앱이 충돌합니다(비활성화되면 모든 것이 정상적으로 작동함).
Xcode의 충돌은 단서를 제공하지 않았습니다.
libsystem_kernel.dylib`__abort_with_payload: (SIGABRT)
CoreSimulator 757.5 - Device: iPhone 11 (29AD27B2-6EC0-4B9C-8C8C-C5450695A19C) - Runtime: iOS 14.5 (18E182) - DeviceType: iPhone 11
프레드의 대답을 사용하고 실제 장치에서 충돌 로그를 가져오는 것은 매우 유용한 이 단서를 산출했습니다.
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: TCC, This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSUserTrackingUsageDescription key with a string value explaining to the user how the app uses this data.
Triggered by Thread: 1
General > Frameworks, Libraries, Embedded Content에서 "Embed & Sign"을 "Embed & Sign"로 변경하여 수정하였습니다.
저는 카메라를 사용하지 않아서 이것이 저에게 적용되는 것이라고 생각하지 않았지만, 적용되었습니다.
을 용사설다추것참많답습다니변에 하는 것을 합니다.Info.plist(카메라뿐만 아니라) 사용법 설명이 필요한 경우가 더 많은 줄은 몰랐습니다, 이 링크를 참조하십시오.
링크에 다음 서비스가 사용 설명이 필요한 것으로 나열되거나 다음 오류가 발생합니다.
달력, 연락처, 알림, 사진, 블루투스 공유, 마이크, 카메라, 위치, 상태, 홈킷, 미디어 라이브러리, 모션, 콜킷, 음성 인식, 시리킷 및 TV 공급자.
항목 추가Info.plist키로 "개인 정보"를 입력하면 사용 가능한 모든 옵션이 팝업됩니다.
저는 방금 같은 문제를 겪었는데, 그 이유는 MacOS v10.14(Mojave)를 새로 업데이트한 후 개발자 인증서를 해지하고 Xcode 10으로 새 인증서를 생성했기 때문입니다(어떤 이유에서인지 모든 로그인 자격 증명과 오래된 일부 키 체인 인증서를 삭제했습니다).
따라서 장치에서 설치된 앱을 제거하고 Xcode를 통해 다시 실행하면 장치에 올바른 새 Provisioning Profile을 설치할 수 있습니다.
사실 저는 Xcode 11.3.1에 문제가 있었고 이전 답변에서 언급했듯이 스레드 Sanitizer는 이미 꺼져 있었습니다.
저의 경우, 애플리케이션 폴더에 다음과 같은 다양한 Xcode 버전이 있었습니다.
/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app
그리고.
/Applications/Xcode.app - was 11.2
빌드 시스템은 기본적으로 /Applications/Xcode.app 파일을 찾습니다.따라서 Xcode 11.3.1을 /Applications/Xcode.app으로 가져오면 문제가 해결됩니다.
저에게도 같은 문제가 발생했습니다.iOS 14 베타 버전을 가지고 있었는데 정식 버전으로 업데이트했을 때 문제가 해결되었습니다.
저는 제 프로젝트의 오류를 수정했습니다.
저는 오류가 발생했을 때 다른 스레드를 확인했습니다.저는 제 실수가 카메라에 관한 것이라는 것을 알았습니다.

Info.plist 파일에 카메라 개인 정보를 추가합니다.
info.plist 파일을 엽니다.
개인 정보 - 카메라 사용 설명이라는 새 키를 추가하고 앱에 카메라가 필요한 이유를 설명하는 문자열을 입력합니다.앱에서 개인 정보를 사용해야 하는 경우 설명이 표시됩니다.

언급URL : https://stackoverflow.com/questions/42027601/dyld-abort-with-payload-without-an-error-message
'codememo' 카테고리의 다른 글
| 이중 *(스플랫) 연산자는 무엇을 합니까? (0) | 2023.06.02 |
|---|---|
| 날짜 시간과 시간의 차이(Ruby) (0) | 2023.06.02 |
| 문자열 또는 이진 데이터가 잘립니다.전표가 종료되었습니다. (0) | 2023.05.28 |
| gitdiff에서 파일 제외 (0) | 2023.05.28 |
| Mac OS에서 Node.js를 최신 버전으로 업그레이드합니다. (0) | 2023.05.28 |






