web-dev-qa-db-ja.com

インターフェースビルダー-パスからデザイン可能ファイルをロードできませんでした(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)

別のプロジェクトでコントロールをテストしましたが、インターフェイスビルダーで正しく表示されるようですが、現在のプロジェクトでそれらを動作させることはできません。このエラーの原因と修正方法を教えてください。

前もって感謝します...

57
Jake

同じ問題がありました。ココアポッドを使用していますが、デザイン可能なものを使用するポッドがあります。したがって、トリックは「use_frameworks!」を追加することでしたPodfileに。 「ポッドアップデート」を実行して、Xcodeプロジェクトを再度開きます。エラーメッセージは表示されません。

63
i89

編集**

Xcodeを開き(ただし、プロジェクトを開かないで)、ウィンドウ(右から2番目)をクリックします

[オーガナイザー]をクリックし、プロジェクトにいることを確認してから、派生データをすべて削除します。 Xcodeを閉じてからプロジェクトを再度開き、Xcodeでファイルのインデックスを再作成し、問題が解決するかどうかを確認します

11
Anthony Taylor

私はXcode 7.3を実行していますが、最終的にこれらのステップに従う前の状態にプロジェクトを残したまま、これらのステップに従うことでエラーが魔法のように消えます(つまり、ネットゼロの変更)

  1. 「use_frameworks!」を追加(もちろん、アポストロフィなしで)ポッドファイルに
  2. ターミナルウィンドウを開く
  3. プロジェクトのルートディレクトリにcd
  4. コマンドラインから「pod install」を実行します
  5. 「use_frameworks!」を削除しますあなたのポッドファイルから
  6. 「pod install」を再度実行します
  7. もう一度ビルドしてみて、エラーが修正されるかどうかを確認してください。それは私のためにした

特に他の何かを急いでいるときは、これまでに見たことがあるようなXcodeのたまもののように見えます。

4
John Jacecko

カスタムIBDesignableビューを持つ非CocoaPodsプロジェクトでも同じ問題がありました。どうやら、それはXcodeのバグです。 この回答 のステップは、問題の解決に役立ちました。要するに:

  1. Xcodeを終了します。
  2. マシン上のInterface Builder Cocoa Touch Toolという名前のすべてのプロセスを強制終了します。
  3. Xcodeを再起動します。
3
pjuzeliunas

Cocoapodsの最新バージョンで修正されたこの問題

インストールするには、単に実行します:

[Sudo] gem install cocoapods --pre

エラーを修正するために:「パスから設計可能ファイルをロードできませんでした(null)」:

use_frameworks!

   pod '****'



end

use_frameworks!をPodfileに追加します

詳細: ポッドの依存関係からIB_DESIGNABLEを使用してカスタムコンポーネントをライブレンダリング

2
PeiweiChen

問題は、インターフェイスビルダーがビューをレンダリングするときに、cocoapodsのIB_DESIGNABLEが正しくリンクされないことでした。

use_frameworks!トリックはそれを行う必要がありますが、私にとっては、コードを移行するのは少し大変でした。

私のコツはIB_DESIGNABLEごとにサブクラス化ポッドから直接来たストーリーボードで使用したビューです。エラーを解決しました。

2
Antzi

私はそれを再現できないため、これがあなたの問題を解決するかどうかはわかりません。しかし、とにかく試してみるといいと思いました。

最初に、他の人が述べたように、CocoaPodsにも同じ問題があったようです。私はそれらの修正を構成するコミットを行ったが、あなたの設定に関連する結果はなかった。

ただし、この StackOverflow question で別の関連エラーメッセージが見つかりました。これは、パス上のIBで見つからないものにも関連していました。彼らの解決策があなたに役立つかどうか疑問に思いました:

解決策は、ターゲットの_Build settings_ _Runpath Search Paths_フィールドに$(CONFIGURATION_BUILD_DIR)を追加することでした。

1
Dennis

ライブレンダリングをデバッグするには、非常に便利なトリックがあります。

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_を実行します

できた!

MortenBøgh のクレジット

1
Rafael Machado

私はポッドを更新することでその問題を解決しました

1
Yuvraj Kale

CocoaPodsは使用していませんが、IBDesignableアイテムを含む社内フレームワークを使用しており、この問題も発生していました。メインプロジェクトから派生データを削除して削除し、Xcodeを再起動しましたが、修正されなかったようです。それを解決するには、[ウィンドウ]> [プロジェクト]に移動し、フレームワークプロジェクト(フレームワークを使用したプロジェクトではなく、フレームワークプロジェクト自体)を選択し、派生データを削除する必要がありました。したがって、完全な手順:

  1. 製品メニュー>クリーニング
  2. [Option]> [Product]メニュー> [Clean Build Folder ...]を押しながら[Clean]
  3. ウィンドウメニュー>プロジェクト>フレームワークプロジェクトの選択>派生データの削除
  4. ウィンドウメニュー>プロジェクト>メインプロジェクトの選択>派生データの削除
  5. Xcodeを終了
  6. Xcodeを再起動する

IBDesignablesがあり、エラーの原因となっている可能性があるすべてのフレームワークプロジェクトについて、手順3を繰り返します。

1
Will Clarke

ココアポッドを使用していませんでしたが、インポートされたクラスを拡張するView Controllerでこのエラーが発生しました。 StoryBoardをIphoneXビューに変更するときにのみこのエラーが発生し、iPhone 8ビューでは正常に機能していました。

プロジェクトの設定を[新しいビルドシステム(プレビュー)]から[標準ビルドシステム]に変更し、プロジェクトをクリーンアップするとエラーが消えました。

理由はわかりませんが、それで問題は解決しました。

0
mariosm

このエラーは、Xcodeとプロジェクトが開いているときにポッドを更新したときに表示されました。

Xcodeをシャットダウンします。ポッドの更新を再度実行しました。 xcodeを再起動しました。

エラーは再び表示されませんでした。

0
KawaiKx