XCode로 앱을 시작할 때 충돌이 발생하지만 오류가 없습니다.
이 스레드에서 앱이 중지됩니다.
문제에 대한 추가 정보를 얻으려면 어떻게해야합니까?
답변:
사용자 정의 프레임 워크를 사용하는 경우 Target / General 탭 아래의 Xcode 프로젝트에있는 "Embedded Binaries"섹션에 넣어야합니다.
나를 위해 간단 Clean
하고 Rebuild
분류했습니다. 도움이 되었기를 바랍니다.
임베디드 바이너리 자산 목록에 프레임 워크를 추가하면이 문제가 해결되었습니다. 다음은 임베디드 프레임 워크 (Xcode 9.2, 개인적으로 시각적 빵 부스러기 트레일이 더 좋습니다 ;-))로서 Xcode GUI의 최종 형태에서 외부 프레임 워크의 설정이 어떻게 보이는지입니다.
Apple이 의도적으로 런타임을 중단하여 개발자에게 비 Apple 프레임 워크를 iOS 개발에서 단순히 연결된 프레임 워크로 사용할 수 없다는 문제를 알려 주었습니까? "이동해!"라는 버튼이있는 빌드 오류로 표시되는 것이 좋습니다.
임베디드 바이너리를 사용하면 최종 사용자가 앱과 독립적으로 프레임 워크를 추가하거나 설치 프로그램을 사용하지 않아도됩니다. 아이폰 (iOS)의 경우 불가능하지만 macOS에서는 가능하지만 빠르게 지저분해질 수 있습니다.
최종 사용자에게는 앱을 드래그 앤 드롭하여 macOS에 설치하는 것이 훨씬 더 좋습니다. 임베딩은 또한 관리 할 프레임 워크의 외부 버전을 갖는 고전적인 "DLL 충돌"을 방지합니다. (디스크 공간이 저렴하고 고객의 시간이 소중합니다).
마침내 해결되었습니다!
나를 위해 일한 것은 프레임 워크를 "필수"대신 "옵션"으로 만드는 것이 었습니다.
도움이 되었기를 바랍니다.
1) 실행을 계속하여 "MyFramework.framework"를 찾을 수 없다는 메시지가 디버거에 표시되는지 확인합니다. 이 경우 다음 토론을 따르십시오. OS X 프레임 워크 라이브러리가로드되지 않음 : '이미지를 찾을 수 없음' 이 답변이 작동했습니다. https://stackoverflow.com/a/44796734/4060763
2) "Embed Binaries"섹션을 통해 바이너리를 추가했는지 확인하십시오.
3) 빌드 단계 섹션에서 프레임 워크 서명을 활성화했는지 확인합니다.
4) 임베디드 프레임 워크가 심볼릭 링크가 아닌지 확인하십시오.
5) "라이브러리와 바이너리 연결"단계에서 필수 대신 연결된 프레임 워크를 선택적으로 만들 수 있습니다. 이렇게하면 iOS가 출시 중에 이러한 프레임 워크를 찾지 않도록 지시합니다. 그러나 어쨌든 이러한 프레임 워크를 사용하려면 오류를 수정해야합니다!
6) 모든 info.plist 항목이 양호한 지 확인합니다. 제 경우에는 iOS 용 Mac info.plist 파일을 사용하고있었습니다. iOS 프로젝트에없는 xib 파일을 찾고있었습니다.
7) 그러한 변경 후 청소하고 구축하십시오. 이것은 xcode가 이미 존재하는 경우 이러한 파일을 복사 / 변경하지 않기 때문에 필요합니다.
8) iPad에서 앱을 제거한 다음 설치합니다. 7과 같은 이유.
"문제에 대한 추가 정보를 얻으려면 어떻게해야합니까?"라는 원래 질문에 답하기 위해이 Apple 포럼 스레드 는 매우 간단한 팁을 제공합니다. XCode 외부에서 충돌하는 앱을 실행하기 만하면됩니다 (예 : XCode에서 중지 한 다음 수동으로 실행). 장치). 이렇게하면 발생한 상황에 대한 자세한 내용이 포함 된 충돌 로그가 생성됩니다. 그런 다음 XCode 창 메뉴 / 장치 및 시뮬레이터-> 장치 로그보기에서이 로그를 검토 할 수 있습니다.
Xcode 11.3 및 macOS Catalina 10.15.2에서 동일한 문제에 직면했습니다. 앱이 장치에서는 잘 실행되었지만 Simulator에서는 실행되지 않았습니다. Simulator에 문제가있는 것으로 보이며 해결 방법은 Thread Sanitizer를 비활성화하는 것입니다.
보내다: https://forums.developer.apple.com/message/397978#397978
도움이 되었기를 바랍니다.
동일한 서명 (내 프로젝트가 Obj-C에 있음)에 오류가 발생하여 적절한 프레임 워크와 연결하는 것을 잊었다는 것을 발견했습니다. 오류를 발견 한 디버그 로그의 오류 메시지는 다음과 같습니다.
dyld : 기호를 찾을 수 없음 : _OBJC_CLASS _ $ _ SFSafariViewController
내 특정 오류의 경우 대상-> 빌드 단계-> "바이너리와 라이브러리 연결"에 SafariServices.framework를 추가하면 문제가 해결되었습니다. 특정 오류와 해결 방법이 같지는 않지만 디버그 로그에서 단서를 확인하는 것이 유용합니다.
나는 갱신 한 후이 상황 했어 v10.2.1에 엑스 코드 및 5.0에 신속을 당신이 카르타고 + RxSwift에게 새로운 RxSwift의 사용을 사용하는 경우 RxRelay.framework
. / Carthage / Build 디렉토리로 이동하여 해당 프레임 워크를 찾아 프로젝트에 적용합니다. carthage copy-frameworks
스크립트 에도 추가하는 것을 잊지 마십시오 .
$(SRCROOT)/Carthage/Build/iOS/RxRelay.framework
https://stackoverflow.com/a/52550148/2493555 덕분에 해결되었습니다.
나는 그것을 해결할 올바른 방법을 찾습니다.
AppleWWDRCA.cer
시스템 기본 모드로 설정되어 있는지 확인 하면 작동합니다.
나는 같은 문제에 직면했다. 내 대상의 빌드 설정에서 'Always Embed Swift Standard Libraries'를 예로 설정하면 효과적이었습니다.
plist에서 권한 사양이 누락되어 해결 된 유사한 문제가있었습니다 (이상하게 ..)
AVCaptureDevice를 사용하려고했는데 시작시 충돌이 발생했습니다 (내 앱은 매우 적음).
추가-
나를 Privacy - Camera Usage Description
위해 info.plist
해결했습니다.
이 오류가 발생하는 긴 목록에 추가하려면 배포 대상이 MacOS 11.0으로 설정된 MacOS 10.15.5를 실행하는 Mac에 XCode12.2 베타 2를 배포 할 때 발생합니다. 이 상황 은 사이드 바를 추가 할 때 Mac Catalyst Tutorial 앱 을 시도했기 때문에 발생했습니다 . 대상을 MacOS 10.15.5로 전환하면 오류가 제거되고 앱이 제대로 실행되었습니다.
때로는 대상 버전의 이후 iOS 버전에서만 액세스 할 수있는 시스템 프레임 워크를 사용할 때 발생합니다. 이 링크 된 프레임 워크를 선택 사항으로 표시하여 수정할 수 있습니다.
예를 들어 iOS 11을 대상으로 하고 iOS 12 용 AuthenticationServices 자동 완성 기능을 사용하는 프로젝트 는 설명 된 방식으로 iOS 11에서 충돌이 발생합니다.
실제로 11.3.1에 문제가 있었고 위에서 언급했듯이 Thread 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에서 보이는 것을 이해하는 데 2 일이 걸립니다. 따라서 11.3.1을 /Applications/Xcode.app에 가져와 마침내 문제가 해결되었습니다.
실제 장치 (iPhone SE)에서 실행할 때만이 문제가 발생했습니다. 시뮬레이터 프로젝트에서 예상대로 작동했습니다.
이 스레드와 여기에서 모든 수정을 시도했습니다. OS X 프레임 워크 라이브러리가로드되지 않음 : '이미지를 찾을 수 없음' 그들 중 어느 것도 나를 위해 일하지 않았습니다.
나에게 문제는 iPhone을 다시 시작한 후 해결되었습니다 (sic!).
나는했다 :
그리고 마침내 작동합니다. :)
다른 모든 솔루션이 실패하면 시도하는 것을 잊지 마십시오.