2015-02-08 38 views
49

我有我創建的一些自定義控件,我是他們在一個新的項目中使用。不過,我一直在Interface Builder得到錯誤:界面生成器 - 無法加載路徑設計器(空)

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) 

我已經在另一個項目中測試了控制,他們似乎在界面生成器正確地呈現,但我不能讓他們在當前項目中工作。是什麼導致了這個錯誤,我該如何解決它?

在此先感謝...

+0

您的項目是否使用CocoaPods? – HEATH3N 2015-03-09 16:04:31

+0

@ N1ghtshade3我遇到了同樣的問題,我遇到的問題不是來自CocoaPods依賴項。 – 2015-03-09 17:38:28

+0

我也沒有使用CocoaPods,但是我看到了CocoaPods相關的帖子。我認爲CocoaPods已經找到了解決這個問題的辦法,但不幸的是我找不到它! – Jake 2015-03-10 00:23:39

回答

57

我有同樣的問題。我使用cocoapods,並有一個使用可設計的莢。所以訣竅是添加'use_frameworks!'到Podfile。做'pod更新'重新打開xcode項目並且錯誤信息不應該顯示出來。

+0

解決了我的問題。 – 2015-11-06 14:19:17

+0

這與ios 7+無關,因爲它打破了像Realm這樣的許多庫。 – Dvole 2015-11-19 18:20:12

+0

我正在測試iOS 8和iOS 9,它適合我。 – Chuck 2015-11-20 08:32:30

11

編輯**

開放的Xcode(但不要打開你的項目)和(右二),點擊窗口

單擊管理,並確保你在項目上,然後刪除所有派生數據。 關閉Xcode,然後重新打開您的項目,讓Xcode重新索引您的文件,看看是否清除問題

+0

我試過所有這一切,仍然有同樣的錯誤,當我添加IB_Designable和IBInspectable返回到課程 – Jake 2015-03-11 14:03:40

+0

對我來說,似乎也沒有工作。 – 2015-03-13 18:31:31

+0

檢查我的編輯,看看是否有幫助。 – 2015-03-14 18:33:00

1

我不確定這是否解決了您的問題,因爲我無法重現它。但我認爲你可以試試它。

首先,正如其他人提到的那樣,CocoaPods似乎也有同樣的問題。我完成了完成修改的提交,但與您的設置無關。

但是,我在StackOverflow question中發現了一條不同的相關錯誤消息,該消息也與路徑上的IB未找到的東西有關。我想知道他們的解決方案是否可以幫助您:

解決的辦法是在目標的Build settingsRunpath Search Paths字段中添加$(CONFIGURATION_BUILD_DIR)

1

您可以使用非常方便的技巧來調試實時渲染。

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)添加liveDebugLog(message:),把任何你想知道的。 3)打開Terminal.app並運行命令open /tmp/XcodeLiveRendering.log

完成!

學分Morten Bøgh

1

我在非CocoaPods項目中使用自定義IBDesignable視圖時遇到同樣的問題。顯然,這是一個Xcode錯誤。 this answer中的步驟幫助我解決了這個問題。總之:

  1. 退出Xcode。
  2. 在您的機器上殺死名爲Interface Builder Cocoa Touch Tool的所有進程。
  3. 再次啓動Xcode。
4

我正在運行Xcode 7.3,並通過執行以下這些步驟來獲得錯誤消失,最終使我的項目處於精確狀態,即遵循這些步驟之前(即淨零更改爲任何內容):

  1. 添加'use_frameworks!' (沒有引號,當然)你 podfile
  2. 打開一個終端窗口
  3. cd到項目的根目錄
  4. 運行「吊艙安裝」命令行
  5. 刪除「use_frameworks!」從您的podfile中刪除
  6. 再次運行'pod install'
  7. 再次嘗試編譯並查看是否修復了 錯誤;它爲我做了

看起來像我們以前見過的那些偶爾的Xcode障礙之一,特別是當你急於完成其他事情時。

+0

工作完美!感謝您提供超級清晰,詳細的說明(其他人提到'use_frameworks!',但沒有人提到之後將其刪除,並將其留在導致我的其他Pod的問題)。 – 2016-05-17 19:08:04

1

我不使用CocoaPods,但我確實使用了包含IBDesignable項目的內部框架,並且也遇到了此問題。我清理了一下,從我的主項目中刪除了派生數據,然後重新啓動了Xcode,但這似乎沒有解決它。爲了解決它,我必須去Window> Projects,選擇框架項目(不是使用框架的項目,而是框架項目本身),並刪除派生數據。所以,全步驟:

  1. 產品菜單>清潔
  2. 按住選項>產品菜單>乾淨生成文件夾...>清潔
  3. 窗口菜單>項目>選擇我Framework項目>刪除導出的數據
  4. 窗口菜單>項目>選擇我的主要項目>刪除導出的數據
  5. 退出Xcode中
  6. 重新啓動的Xcode

對任何和所有具有IBDesignable並可能導致錯誤的框架項目重複步驟3。

1

我已通過更新吊艙「吊艙更新」解決了這個問題,希望它會爲你工作

0

的問題是,從IB_DESIGNABLE的CocoaPods不正確時,Interface Builder中呈現你的觀點聯繫在一起。

use_frameworks!技巧應該這樣做,但對我來說,遷移代碼只是一點點努力。

我的伎倆是子類每IB_DESIGNABLE視圖我用在故事板,直接從豆莢來。解決了錯誤。

0

當我在xcode和我的項目打開時更新了窗格時出現此錯誤。

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

錯誤再次出現。