如何修改SWIFT_MODULE_NAME?
How to modify SWIFT_MODULE_NAME?
标题说明了一切。我在构建设置中搜索了 SWIFT_MODULE_NAME,但没有找到任何结果。我也在网上搜索过,也有提到这个名字,但是没有关于它是如何定义的信息。 此外,我在 Apple 文档中找不到任何提及 SWIFT_MODULE_NAME 的地方。
我知道这个:它在 "Objective-C Generated Interface Header Name" 构建设置中使用,可以通过 double-clicking 在设置值上查看:
$(SWIFT_MODULE_NAME)-Swift.h
它用于弥合 Objective-C 和 Swift 之间的差距,并且只出现在包含 Swift 文件的项目中,(以及我认为的 Objective-C 文件).在这篇文章中,Xcode 7.3 是最新和最好的。
但是,这个值是在哪里定义的,我该如何修改呢?
模块名称来自产品模块名称构建设置:
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)",
);
},
...
您是否查看过此文档:developer.apple.com/library/ios/documentation/Swift/Conceptual/...?通常是您的产品名称。您可以在构建设置中设置更改 "Product Bundle Identifier" 中的值。请注意,您不能覆盖框架中的产品名称
见截图:
转到构建设置并单击 'Levels' 旁边的 +。
参见:
将 NEW_SETTING 替换为 SWIFT_MODULE_NAME 作为设置的名称,无论 .h 文件的模块名称是什么(请不要有空格)都在右边。
SWIFT_MODULE_NAME、PRODUCT_MODULE_NAME、PRODUCT_NAME、EXECUTABLE_NAME
默认值:
EXECUTABLE_NAME = $EXECUTABLE_PREFIX$PRODUCT_NAME$EXECUTABLE_SUFFIX
SWIFT_OBJC_INTERFACE_HEADER_NAME = $(SWIFT_MODULE_NAME)
SWIFT_MODULE_NAME = $(PRODUCT_MODULE_NAME)
PRODUCT_MODULE_NAME = $(PRODUCT_NAME:c99extidentifier)
PRODUCT_NAME = $(TARGET_NAME:c99extidentifier)
观察:
SWIFT_MODULE_NAME == PRODUCT_MODULE_NAME
c99extidentifier
Xcode 可以替换变量的值
c99extidentifier
标识符,支持来自 C99
的扩展字符
//for example
PRODUCT_NAME = My Framework
PRODUCT_MODULE_NAME = $(PRODUCT_NAME:c99extidentifier) = My_Framework
EXECUTABLE_NAME
二进制名称
Product Module Name(PRODUCT_MODULE_NAME)
确定 import
语句的外观。例如,当您创建 Library
或 Framework
.
使用:
//Objective-C
@import module_name;
//Swift
import module_name
Product Name(PRODUCT_NAME)
确定二进制名称。例如。 MyFramework.framework
[TARGET_NAME]
规则是:
SWIFT_MODULE_NAME should equal to PRODUCT_MODULE_NAME
标题说明了一切。我在构建设置中搜索了 SWIFT_MODULE_NAME,但没有找到任何结果。我也在网上搜索过,也有提到这个名字,但是没有关于它是如何定义的信息。 此外,我在 Apple 文档中找不到任何提及 SWIFT_MODULE_NAME 的地方。
我知道这个:它在 "Objective-C Generated Interface Header Name" 构建设置中使用,可以通过 double-clicking 在设置值上查看:
$(SWIFT_MODULE_NAME)-Swift.h
它用于弥合 Objective-C 和 Swift 之间的差距,并且只出现在包含 Swift 文件的项目中,(以及我认为的 Objective-C 文件).在这篇文章中,Xcode 7.3 是最新和最好的。
但是,这个值是在哪里定义的,我该如何修改呢?
模块名称来自产品模块名称构建设置:
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)",
);
},
...
您是否查看过此文档:developer.apple.com/library/ios/documentation/Swift/Conceptual/...?通常是您的产品名称。您可以在构建设置中设置更改 "Product Bundle Identifier" 中的值。请注意,您不能覆盖框架中的产品名称
见截图:
转到构建设置并单击 'Levels' 旁边的 +。 参见:
将 NEW_SETTING 替换为 SWIFT_MODULE_NAME 作为设置的名称,无论 .h 文件的模块名称是什么(请不要有空格)都在右边。
SWIFT_MODULE_NAME、PRODUCT_MODULE_NAME、PRODUCT_NAME、EXECUTABLE_NAME
默认值:
EXECUTABLE_NAME = $EXECUTABLE_PREFIX$PRODUCT_NAME$EXECUTABLE_SUFFIX
SWIFT_OBJC_INTERFACE_HEADER_NAME = $(SWIFT_MODULE_NAME)
SWIFT_MODULE_NAME = $(PRODUCT_MODULE_NAME)
PRODUCT_MODULE_NAME = $(PRODUCT_NAME:c99extidentifier)
PRODUCT_NAME = $(TARGET_NAME:c99extidentifier)
观察:
SWIFT_MODULE_NAME == PRODUCT_MODULE_NAME
c99extidentifier
Xcode 可以替换变量的值
c99extidentifier
标识符,支持来自 C99
//for example
PRODUCT_NAME = My Framework
PRODUCT_MODULE_NAME = $(PRODUCT_NAME:c99extidentifier) = My_Framework
EXECUTABLE_NAME
二进制名称
Product Module Name(PRODUCT_MODULE_NAME)
确定 import
语句的外观。例如,当您创建 Library
或 Framework
.
使用:
//Objective-C
@import module_name;
//Swift
import module_name
Product Name(PRODUCT_NAME)
确定二进制名称。例如。 MyFramework.framework
[TARGET_NAME]
规则是:
SWIFT_MODULE_NAME should equal to PRODUCT_MODULE_NAME