Как изменить SWIFT_MODULE_NAME?
В названии говорится все. Я искал в настройках сборки SWIFT_MODULE_NAME, и ничего не получилось. Я также искал в Интернете, и есть ссылки на это имя, но нет информации о том, как он определяется. Кроме того, я не мог найти упоминания о SWIFT_MODULE_NAME в Apple Docs.
Я знаю это: он используется в настройке сборки "Objective-C Generated Interface Header Name" и может быть просмотрен двойным щелчком на значении настроек:
$(SWIFT_MODULE_NAME) -Swift.h
Он используется для преодоления разрыва между Objective-C и Swift и отображается только для проектов, включающих файлы Swift (вместе с Objective-C файлами, которые я предполагаю). Начиная с этой публикации, Xcode 7.3 является последним и самым большим.
Но где это значение определено и как его изменить?
Ответы
Ответ 1
Имя модуля происходит из настройки сборки имени модуля продукта:
![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)",
);
},
...
Ответ 2
Перейдите в раздел "Настройки" и нажмите + рядом с "Уровни".
См.:
![введите описание изображения здесь]()
замените NEW_SETTING как SWIFT_MODULE_NAME на имя параметра, и все, что является именем модуля для файла .h(без пробелов, пожалуйста) идет справа.
Ответ 3
Вы проверили этот документ: developer.apple.com/library/ios/documentation/Swift/Conceptual/...? обычно это название вашего продукта. Вы можете установить изменение значения в "Идентификатор пакета продукта" в настройках сборки. Обратите внимание: вы не можете переопределить имя продукта в Framework
Смотрите скриншот:
![введите описание изображения здесь]()
Ответ 4
Build Settings
содержит Product Module Name
, который определяет, как будет выглядеть оператор import
при использовании. Например, когда вы создаете Library
или Framework
.
По умолчанию он равен PRODUCT_NAME
Это значение можно изменить с помощью .modulemap
с помощью Objective-C
![enter image description here]()
Использование:
@import module_name; //Objective-C
import module_name //Swift
импорт и карта модулей