共通コードを持つ複数のターゲットがある場合、ObjCからSwiftクラスを使用するために必要な迅速なヘッダーの生成に問題があります。複数のターゲットを持つスウィフト生成ヘッダー
My OSX App
とMy iOS App
の2つのターゲットを作成しました。これらのターゲットは、ObjCクラスがSwiftクラスを呼び出す共通コードを共有します。
Swift and ObjC in the same projectに記載されているように、#import "My_iOS_App-Swift.h"
をObjCクラスに追加し、My iOS App
ターゲットからコンパイルできます。
ただし、includeはモジュール名と一致する必要があるため、My OSX App
ターゲットからはコンパイルされません。 #import "My_OSX_App-Swift.h"
を探していますが、共通コードはそのインクルードを使用していません。
Swift/ObjCを複数のターゲット間で共有されているコードに混在させるにはどうすればよいですか?私は手動で共通のMyApp-Swift.h
を使用するようにすべてのターゲットを変更することができますが、それは正しいと感じていないし、他の問題を引き起こす可能性があります。例えば
あなたのモジュール間で同じになるようにビルド設定で製品モジュール名設定を設定し
ポッドまたはプラットフォーム固有のではないコードのためのモジュールを使用してください。これは 'My_iOS_App-Swift.h'や' MyApp-Swift.h'ではありません。それは 'MyLibrary-Swift.h'で行うべきです – nhgrif
はい、それは意味がありますが、私はこのプロジェクトを継承しました。生成された-Swift.hの名前を手動で変更して、各ターゲットが問題を起こさずに同じものを使用できるようにすることはできますか?図書館を使用するプロジェクトを再構築することは、現時点ではあまりにも多くの変更をもたらす可能性があります。 (私はあなたの答えを受け入れるが、コメントからすることはできません) –