development

인터페이스 빌더-경로에서 디자인 가능 항목을로드하지 못했습니다 (null).

big-blog 2020. 12. 12. 12:07
반응형

인터페이스 빌더-경로에서 디자인 가능 항목을로드하지 못했습니다 (null).


내가 만든 몇 가지 사용자 지정 컨트롤이 있으며 새 프로젝트에서 사용하고 있습니다. 그러나 인터페이스 빌더에서 계속 오류가 발생합니다.

Failed to update auto layout status: Failed to load designables from path (null)

또는

Failed to render instance of <control>: Failed to load designables from path (null)

다른 프로젝트에서 컨트롤을 테스트했는데 인터페이스 빌더에서 올바르게 렌더링되는 것 같지만 현재 프로젝트에서 작동하도록 할 수 없습니다. 이 오류의 원인은 무엇이며 어떻게 해결할 수 있습니까?

미리 감사드립니다 ...


나는 같은 문제가 있었다. 저는 코코아 포드를 사용하는데 디자인을 사용하는 포드가 있습니다. 그래서 트릭은 'use_frameworks!'를 추가하는 것이 었습니다. Podfile에. 'pod 업데이트'를 수행하여 xcode 프로젝트를 다시 열면 오류 메시지가 표시되지 않습니다.


편집하다**

Xcode를 열고 (프로젝트는 열지 않음) 창 (오른쪽에서 두 번째)을 클릭합니다.

Organizer를 클릭하고 Projects에 있는지 확인한 다음 모든 파생 데이터를 삭제합니다. Xcode를 닫은 다음 프로젝트를 다시 열고 Xcode가 파일을 다시 색인화하고 문제가 해결되는지 확인하십시오.


저는 Xcode 7.3을 실행하고 있으며 다음 단계를 수행하여 오류가 마술처럼 사라지는 것을 얻었습니다. 결국에는 프로젝트를이 단계를 따르기 전의 정확한 상태로 남겨 둡니다 (즉, 모든 항목에 대한 순 0 변경).

  1. 'use_frameworks!'추가 (물론 아포스트로피없이) podfile에
  2. 터미널 창을 엽니 다.
  3. 프로젝트의 루트 디렉토리로 cd
  4. 명령 줄에서 'pod install'실행
  5. 'use_frameworks!'를 제거하십시오. podfile에서
  6. 'pod install'을 다시 실행하십시오.
  7. 다시 빌드하고 오류가 수정되는지 확인하십시오. 그것은 나를 위해했다

특히 다른 일을하기 위해 서둘러야 할 때 우리 모두가 이전에 본 적이있는 Xcode 문제 중 하나 인 것 같습니다.


커스텀 IBDesignable뷰를 사용 하는 비 CocoaPods 프로젝트에서 동일한 문제가 발생했습니다 . 분명히 Xcode 버그입니다. 이 답변의 단계 는 문제를 해결하는 데 도움 되었습니다. 요컨대 :

  1. Xcode를 종료합니다.
  2. Interface Builder Cocoa Touch Tool컴퓨터에 명명 모든 프로세스 를 종료합니다.
  3. Xcode를 다시 시작하십시오.

이 문제는 최신 버전의 Cocoapods에서 수정되었습니다.

설치하려면 다음을 실행하십시오.

[sudo] gem install cocoapods --pre

오류를 수정하려면 : "경로에서 설계 가능 항목을로드하지 못했습니다 (null)":

use_frameworks!

   pod '****'



end

use_frameworks!Podfile에 추가

추가 정보 : 포드 종속성에서 IB_DESIGNABLE을 사용하여 사용자 지정 구성 요소 라이브 렌더링


문제는 인터페이스 빌더가 뷰를 렌더링 할 때 cocoapods의 IB_DESIGNABLE이 올바르게 연결되지 않는다는 것입니다.

use_frameworks!트릭을해야하지만, 나를 위해 코드를 마이그레이션 조금 너무 많은 노력이었다.

내 트릭은 포드에서 직접 나온 스토리 보드에서 사용한 모든 IB_DESIGNABLE하위 클래스로 만드는 것이 었습니다 . 오류를 해결했습니다.


재현 할 수 없으므로 문제가 해결되는지 확실하지 않습니다. 하지만 어차피 시도해 볼 수있을 거라 생각했습니다.

첫째, 다른 사람들이 언급했듯이 CocoaPods에도 동일한 문제가있는 것 같습니다. 수정 한 커밋을 검토했지만 설정과 관련된 결과는 없습니다.

그러나이 StackOverflow 질문 에서 다른 관련 오류 메시지를 발견했습니다.이 질문 은 경로에서 IB가 찾을 수없는 항목과도 ​​관련이 있습니다. 그들의 솔루션이 당신을 도울 수 있는지 궁금했습니다.

해결책은 $(CONFIGURATION_BUILD_DIR)타겟의 Build settings Runpath Search Paths필드 를 추가 하는 것이 었습니다 .


라이브 렌더링을 디버그하기 위해 할 수있는 매우 편리한 트릭이 있습니다.

1) 프로젝트에이 확장을 추가합니다.

    extension UIView {
    public func liveDebugLog(message: String) {
        #if !(TARGET_OS_IPHONE)
            let logPath = "/tmp/XcodeLiveRendering.log"
            if !NSFileManager.defaultManager().fileExistsAtPath(logPath) {
                NSFileManager.defaultManager().createFileAtPath(logPath, contents: NSData(), attributes: nil)
            }

            var fileHandle = NSFileHandle(forWritingAtPath: logPath)
            fileHandle.seekToEndOfFile()

            let date = NSDate()
            let bundle = NSBundle(forClass: self.dynamicType)
            let application: AnyObject = bundle.objectForInfoDictionaryKey("CFBundleName")
            let data = "\(date) \(application) \(message)\n".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
            fileHandle.writeData(data)
        #endif
    }
  }

2) a를 추가하고 liveDebugLog(message:)알고 싶은 것을 넣으십시오. 3) Terminal.app명령을 열고 실행하십시오.open /tmp/XcodeLiveRendering.log

끝난!

Morten Bøgh에 대한 크레딧


I don't use CocoaPods, but I do use a in-house framework that contains IBDesignable items, and was also experiencing this problem. I cleaned, deleted the Derived Data from my main project, and restarted Xcode, but that didn't seem to fix it. To resolve it, I had to go to Window > Projects, select the framework project (not the project that used the framework, but rather the framework project itself), and delete the Derived Data. So, full steps:

  1. Product menu > Clean
  2. Hold down Option > Product menu > Clean Build Folder... > Clean
  3. Window menu > Projects > Choose my Framework project > Delete Derived Data
  4. Window menu > Projects > Choose my main project > Delete Derived Data
  5. Quit Xcode
  6. Restart Xcode

Repeat step 3 for any and all framework projects that have IBDesignables and may be causing the errors.


i have solved that issue by updating the pod "pod update" hope it will work for you


This error appeared when I updated the pods while the xcode and my project was open.

I shut the xcode down. ran the pod update again. restarted xcode.

error didn't appear again.


I wasn't using cocoa pods but getting this error on a view controller extending an imported classes. I was only getting this error when changing the StoryBoard to IphoneX view, it was working fine on iPhone 8 view.

I changed the project settings from New Build System (Preview) to Standard Build system, then clean the project and the error disappeared.

No idea why but that solved the problem for me.

참고URL : https://stackoverflow.com/questions/28391112/interface-builder-failed-to-load-designables-from-path-null

반응형