web-dev-qa-db-fra.com

Comment modifier Swift_MODULE_NAME?

Le titre dit tout. J'ai cherché dans les paramètres de build Swift_MODULE_NAME, et rien ne s'est produit. J'ai également recherché en ligne, et il y a des références à ce nom, mais il n'y a aucune information sur la façon dont il est défini. De plus, je n'ai trouvé aucune mention de Swift_MODULE_NAME dans les Apple Docs.

Je le sais: il est utilisé dans le paramètre de construction "Objective-C Generated Interface Header Name" et peut être consulté en double-cliquant sur la valeur des paramètres:

$ (Swift_MODULE_NAME) -Swift.h

Il est utilisé pour combler l'écart entre Objective-C et Swift, et n'apparaît que pour les projets qui incluent Swift, (ainsi que les fichiers Objective-C je présume). À partir de cette publication, Xcode 7.3 est le dernier et le plus grand.

Mais, où cette valeur est-elle définie et comment la modifier?

17
Sheamus

Le nom du module provient du paramètre de génération Nom du module de produit:

build settings screenshot

Le Swift_MODULE_NAME le paramètre est apparemment masqué, mais vous pouvez voir sa dérivation en regardant 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

Accédez aux paramètres de construction et cliquez sur + à côté de "Niveaux". Voir:

enter image description here

remplacez NEW_SETTING par Swift_MODULE_NAME pour le nom du paramètre, et quel que soit le nom du module pour le fichier .h (sans espaces, s'il vous plaît) va à droite.

4
Anton Tropashko

Build Settings Contient Product Module Name Qui détermine à quoi ressemblera l'instruction import lorsqu'elle sera utilisée. Par exemple, lorsque vous créez un Library ou un Framework.

Par défaut, il est égal à PRODUCT_NAME. (La correspondance du nom est obligatoire)

Les valeurs par défaut:

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

Cette valeur peut être modifiée par .modulemap En utilisant Objective-C

enter image description here

En utilisant:

//Objective-C
@import module_name; 

//Swift
import module_name 

importation et modulemap

2
yoAlex5

Avez-vous vérifié ce document: developer.Apple.com/library/ios/documentation/Swift/Conceptual/…? c'est généralement le nom de votre produit. Vous pouvez définir modifier la valeur dans "Product Bundle Identifier" dans Build Settings. Notez que vous ne pouvez pas remplacer un nom de produit dans un Framework

Voir la capture d'écran:

enter image description here

0
Zhao