web-dev-qa-db-ja.com

Swift_MODULE_NAMEを変更するには?

タイトルはそれをすべて言います。ビルド設定でSwift_MODULE_NAMEを検索しましたが、何も見つかりませんでした。私もオンラインで検索しましたが、この名前への参照がありますが、それがどのように定義されているかについての情報はありません。 さらに、Apple Docs。でSwift_MODULE_NAMEについての言及が見つかりませんでした。

私はこれを知っています。「Objective-C Generated Interface Header Name」ビルド設定で使用され、設定値をダブルクリックして表示できます。

$(Swift_MODULE_NAME)-Swift.h

これは、Objective-CとSwiftの間のギャップを埋めるために使用され、Swiftファイル、(私が想定するObjective-Cファイルとともに)を含むプロジェクトにのみ表示されます。この投稿の時点で、Xcode 7.3が最新かつ最高です。

しかし、この値はどこで定義され、どのように変更するのですか?

17
Sheamus

モジュール名は、製品モジュール名のビルド設定から取得されます。

build settings screenshot

Swift_MODULE_NAME設定は明らかに非表示になっていますが、その派生はXcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins/XCLanguageSupport.xcplugin/Contents/Resources/Swift.xcspecで確認できます。

...
{
    Name = "Swift_MODULE_NAME";
    Type = String;
    DefaultValue = "$(PRODUCT_MODULE_NAME)";
    CommandLineArgs = (
        "-module-name",
        "$(value)",
    );
},
...
32
jtbandes

ビルド設定に移動し、「レベル」の横にある+をクリックします。見る :

enter image description here

nEW_SETTINGを設定の名前のSwift_MODULE_NAMEに置き換えます。hファイルのモジュール名は何でも(スペースは入れないでください)、右側に表示されます。

4
Anton Tropashko

_Build Settings_には、importステートメントを使用したときの外観を決定する_Product Module Name_が含まれています。たとえば、LibraryまたはFrameworkを作成する場合です。

デフォルトでは_PRODUCT_NAME_と同じです。 (名前の一致は必須です)

デフォルト値:

  • _Product Name_:$(TARGET_NAME:c99extidentifier)
  • _Product Module Name_:$(PRODUCT_NAME:c99extidentifier)

この値は、Objective-Cを使用して_.modulemap_で変更できます

enter image description here

使用:

_//Objective-C
@import module_name; 

//Swift
import module_name 
_

インポートとmodulemap

2
yoAlex5

このドキュメントをチェックアウトしましたか:developer.Apple.com/library/ios/documentation/Swift/Conceptual/…?通常は製品名です。ビルド設定の「製品バンドル識別子」で値を変更するように設定できます。フレームワークでは製品名を上書きできないことに注意してください

スクリーンショットを見る:

enter image description here

0
Zhao