1. ホーム
  2. xcode

[解決済み] Xcode 6 / Beta 4: フレームワークターゲットでのブリッジングヘッダーの使用はサポートされていません。

2022-06-04 22:38:55

質問

Xcode 6 Beta 4 にアップグレードしたばかりで、Beta 2 で Live Views 用に作成したフレームワークを持っています。 別の迅速な バグ のために、いくつかのObj-Cコードを使用する必要がありました。 しかし、アップグレードすると、以下のエラーが発生します。

エラー: フレームワーク ターゲットでのブリッジング ヘッダの使用はサポートされていません。

リリース ノートには何も書かれていませんし、他の移行パスも見当たりません。 どなたかこれをご覧になり、解決策にたどり着いた方はいらっしゃいますか?

ベータ 3 ではライブ ビューのためのフレームワークの必要性がなくなったことを理解していますが、私の場合、それが動作するようになれば、意味があります。 予備として削除することはできますが、ベータ 4 で完全に壊れていないのであれば、フレームワークを使用することを希望します。

どのように解決するのですか?

エラーにあるように、ブリッジングヘッダはFrameworksでは許可されていません。そのため 同じフレームワークのターゲット内からコードをインポートする セクションの ミックス&アンプ&マッチ apple ドキュメントがこれをほのめかしています。彼らが言うように、あなたは "あなたの傘のヘッダーファイルで、あなたが Swift に公開したいすべての Objective-C ヘッダーをインポートする必要があります"。

しかし、私は、それらの特定のヘッダも同様に公開する必要があるかもしれないことを発見しました。この回答は、なぜ、どのようにそれを行うかをレビューします。 Swift コンパイラーエラー: "フレームワークモジュール内の非モジュラーヘッダー" .

そこで、こうします。

  1. ブリッジングヘッダーファイルを削除します。
  2. フレームワークのビルド設定にあるブリッジングヘッダファイルへの参照を削除します。
  3. アンブレラファイル([ProductName].h)に必要なヘッダーを追加します。
  4. フレームワークの "Build Phases" の "Headers" セクションで、インクルードしたファイルを公開します。
  5. クリーンアップと再構築を行います。

注意 : quot;umbrella header file" は、一般的にフレームワークのすべてのパブリックヘッダを表すファイル([ProductName].h と命名)です。それは通常、フレームワークに含まれる他のヘッダへの#importステートメントのリストだけです。Xcodeで、UIKit.hを開くと、アンブレラファイルの良い例を見ることができます。