2016-11-24 14 views
0

静的ライブラリがあり、Objective-Cで書かれたS - と呼ぶことができます。現在、iOS-7をサポートしている人はSwiftを使用し始めている人がほとんどいません。その結果、Swiftでも自分の機能にインターフェイスを与えなければなりません。iOS-7のスワイプコード用静的ライブラリObjC関数のSwiftインタフェース

私は、ブリッジングヘッダを使ってObjective-CコードをSwift(同じプロジェクト内)に直接インポートすることができますが、私の静的ライブラリではどうすればよいですか?

また、Swiftは動的フレームワークのみでサポートされているため、静的ライブラリにSwiftファイルを置くことはできません。したがって、動的なフレームワークを作成した場合、iOS-7用にこのライブラリをデプロイすることはできません。

答えて

0

私はそれを理解しました。 SDK(静的ライブラリ)にmodule.modulemapを作成し、このmodule.modulemapへのパスをImport Paths in Swift Compiler - Search Paths in Build Settingsに追加する必要があります。また、静的ライブラリがCocoaPods経由で配布されている場合、podspecを変更してこの設定を自動的に行うこともできます。

1

静的ライブラリは、プロジェクトにリンクされて生成されたバイナリの不可欠な部分になります。したがって、静的ライブラリのヘッダーをブリッジヘッダーに含めれば、同じプロジェクト内のSwiftコードからその機能を利用できるようにする必要があります。

+0

これは機能しますが、ブリッジヘッダーを作成してパブリックヘッダーをこのブリッジファイルに追加するために、ユーザー側で追加の手順があります。とにかくこの部分をスキップするには? – prabodhprakash

+0

@prabodhprakashいいえ、Bridgingヘッダーを介してObjective-Cインターフェイスを公開することなく、Swiftコードはそれを使用できません。 –

+0

このブリッジヘッダーは、何らかの形で静的ライブラリに提供できますか?これは、ライブラリを追加するプロジェクトによって直接消費される可能性がありますか? – prabodhprakash

関連する問題