如何修改SWIFT_MODULE_NAME?

时间:2016-04-14 00:19:51

标签: ios objective-c xcode swift objective-c-swift-bridge

标题说明了一切。我在 SWIFT_MODULE_NAME 的构建设置中进行了搜索,但没有出现任何内容。我也在网上搜索过,并且引用了这个名称,但是没有关于它如何定义的信息。 此外,我无法在Apple文档中找到任何SWIFT_MODULE_NAME。

我知道这一点:它用于" Objective-C生成的接口标题名称"构建设置,可以通过双击设置值来查看:

  

$(SWIFT_MODULE_NAME)-Swift.h

它用于弥合Objective-C和Swift之间的差距,并且仅针对包含Swift文件的项目(以及我假设的Objective-C文件)出现。截至发布时,Xcode 7.3是最新最好的。

但是,这个值定义在哪里,我该如何修改呢?

4 个答案:

答案 0 :(得分:20)

模块名称来自产品模块名称构建设置:

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)",
    );
},
...

答案 1 :(得分:3)

转到构建设置,然后点击“级别”旁边的+。 见:

enter image description here

将NEW_SETTING替换为SWIFT_MODULE_NAME以获取设置名称,以及.h文件的模块名称(请不要空格),右侧为。

答案 2 :(得分:0)

你看过这个doc:developer.apple.com/library/ios/documentation/Swift/Conceptual / ...?通常是你的产品名称。您可以在Build Settings中设置更改“Product Bundle Identifier”中的值。请注意,您无法覆盖框架中的产品名称

见截图:

enter image description here

答案 3 :(得分:0)

Build Settings包含Product Module Name,它确定import语句在使用时的外观。例如,当您创建LibraryFramework时。

默认情况下,它等于PRODUCT_NAME。 (必须匹配名称)

默认值:

  • Product Name$(TARGET_NAME:c99extidentifier)
  • Product Module Name$(PRODUCT_NAME:c99extidentifier)

.modulemap可以使用Objective-C更改此值

enter image description here

使用:

//Objective-C
@import module_name; 

//Swift
import module_name 

import and modulemap