Как изменить SWIFT_MODULE_NAME?

Название говорит само за себя. Я искал в настройках сборки SWIFT_MODULE_NAME, но ничего не вышло. Я также искал в Интернете, и есть ссылки на это имя, но нет информации о том, как оно определено. Кроме того, я не нашел упоминаний о SWIFT_MODULE_NAME в Документах Apple.

Я знаю это: он используется в настройке сборки "Имя заголовка сгенерированного интерфейса Objective-C", и его можно просмотреть, дважды щелкнув по значению настроек:

$ (SWIFT_MODULE_NAME) -Swift.h

Он используется для преодоления разрыва между Objective-C и Swift и появляется только для проектов, включающих файлы Swift (наряду с файлами Objective-C, которые я предполагаю). На момент публикации Xcode 7.3 был самым последним и лучшим.

Но где определяется это значение и как его изменить?

3 ответа

Решение

Имя модуля происходит из настройки сборки Product Module Name:

скриншот настроек сборки

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

Build Settings содержит Product Module Name это определяет, что importинструкция будет выглядеть при использовании. Например, когда вы создаетеLibrary или Framework.

По умолчанию равно PRODUCT_NAME. (Соответствие имен является обязательным)

Значения по умолчанию:

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

Это значение может быть изменено .modulemap используя Objective-C

С помощью:

//Objective-C
@import module_name; 

//Swift
import module_name 

[импорт и карта модулей]

Зайдите в настройки и нажмите "+" рядом с "Уровни". Увидеть:

замените NEW_SETTING на SWIFT_MODULE_NAME в качестве имени параметра, и любое имя модуля для файла.h (без пробелов, пожалуйста) будет справа.

Вы проверили этот документ: developer.apple.com/library/ios/documentation/Swift/Conceptual/…? обычно это название вашего продукта. Вы можете установить изменение значения в "Идентификаторе комплекта продукта" в Настройках сборки. Обратите внимание, что вы не можете переопределить имя продукта в Framework

Смотрите скриншот:

Другие вопросы по тегам