SwiftUI프로그래밍

[Xcode Version 16.1 (16B40)] SwiftUI 앱 실행시 오류 해결 방법(Clean build)(file:///System/Library/PrivateFrameworks/MetalTools.framework/ principal class is nil because all fallbacks have failed)

Sequoia OS(15.1(24B83)) 및 XCode(Version 16.1 (16B40))로 업데이트한 후 앱을 사용할 수 없다.

기존에 개발했던 어플을 실행해보는데 아래와 같은 오류가 노출된다. 어플은 실행되었으나 앱은 실행이 중지된다.

Can't find or decode reasons
Failed to get or decode unavailable reasons
NSBundle file:///System/Library/PrivateFrameworks/MetalTools.framework/ principal class is nil because all fallbacks have failed

왜 이런 오류가 발생되는가? Macbook Pro를 Sequoia로 업데이트해서는 안된다는 걸 알고 있으면서도 궁금하여 시도했고, 결국에는 Xcode도 16 버전으로 업데이트해야 했다.

나와 같은 이슈를 격은 개발자들이 보인다.

https://forums.developer.apple.com/forums/thread/765974

저는 Xcode 16 이후로 같은 오류를 겪고 있다는 개발자가 성공적으로 컴파일하려면 간단한 메뉴바 앱일지라도 매번 클린 빌드를 해야 한다는 댓글이 보인다.


Xcode 클린빌드 방법

1. Xcode 상단 메뉴 > Product > Clean Build Folder… 메뉴를 클릭하면 클린빌드를 할 수 있다.


2. 단축키를 사용하는 방법

Command + Shift + K 키를 눌러준다.

위 메뉴 버튼을 클릭하는 것과 동일한 결과를 준다.


3. Terminal 명령어를 사용하는 방법

해당 프로젝트 폴더로 이동 후 아래 명령어를 실행한다.

(예: cd ~/project/testproject) 그리고 클린 빌드 명령어를 입력합니다.

xcodebuild -workspace testproject.xcworkspace -scheme myscheme clean build



4. 모든 캐시 삭제(Xcode 캐시, DerivedData 폴더)

xcode는 빌드하면 빌드 결과를 폴더에 저장해놓고, 빌드할 때 마다 해당 폴더를 참고하여 캐싱하여 사용하는 방식이다.

터미널에서 아래 명령어로DerivedData 폴더를 삭제

rm -rf ~/Library/Developer/Xcode/DerivedData



최신 MacOS 버전에서 이전 Xcode 버전을 실행할 수 있다는데??

[REFERENCE]

https://stackoverflow.com/questions/8087065/xcode-4-clean-vs-clean-build-folder

클린빌드를 진행하였으나 해결되지 않았다.

오류 해결방법은 맥OS 업데이트와 Xcode업데이트로 해결하였다.

macOS Sequoia 15.2(24C101)

Xcode Version 16.2 (16C5032a)

error: Content is protected !!