7

「動的フレームワーク」ターゲットに関しては、内部 (プライベート)objective-cヘッダーをswift対応するものにブリッジする必要があります。

私の理解では、プライベートモジュールを使用する必要があります。

これらの迅速な対応物のいくつかは、@objc class TheClass構文を使用してobjective-cにブリッジバックされます。

私は先に進んで、下のディレクトリにファイルmodule.modulemapを作成し、ビルド設定に「必要な」フラグを追加しました。module.private.modulemap$SRCROOT

SWIFT_INCLUDE_PATHS =>$(SRCROOT)/...

ビルド設定に「プライベートモジュールマップファイル」を追加してみました

私のモジュールマップファイルは次のとおりです。

module InnerModule {
    export *
}

プライベート モジュール ファイルは次のとおりです。

explicit module InnerModule.Private {
    header "../Classes/Header1.h"
    header "../Classes/Header2.h"
    ...
    export * // and have tried without it
}

私が追加した関連するすべてのSwiftファイルで

import InnerModule.Private

プロジェクトをビルドすると、迅速なブリッジヘッダーにエラーが表示されます

#import <MyFramework/MyFramework-Swift.h> // getting an error here

MyFramework-Swift.h // generated header file
@import UIKit;
@import ObjectiveC;
@import InnerModule.Private; Module InnerModule not found

これはどのように修正できますか?

4

1 に答える 1

1

フレームワークをコンパイルした後、フレームワーク ヘッダーに移動し、公開したくないすべての「プライベート」ヘッダーを削除できます。

その後、「Headers」ディレクトリから公開したくないすべてのヘッダー ファイルを削除できます。

期待どおりに動作します

于 2016-05-29T11:30:57.127 に答える