问题 重命名伞头


我与Umbrella标题有命名冲突。我的框架名称是“SecureData”,但我希望在此框架中有一个名为“SecureData”的objective-c类。

问题是伞标题必须被称为“SecureData.h”,我无法弄清楚如何在xcode设置中为伞标题指定不同的名称。这是可能的,还是我只需要提出一个不同的名字?


1244
2017-08-22 06:31


起源



答案:


这是可能的。

您可以为伞标题指定其他名称 Module Map File

  1. 为Project创建新的模块映射文件。

    framework module XXXProject {
       umbrella header "XXNewumbrellaName.h"
    
       export *
       module * { export * }
    }
    
  2. 指定modulemap文件: Build Settings -> Packaging -> Module Map File

好的,你实现了预期的效果。

我希望这能帮到您。


16
2017-08-22 07:06



注意:名称 module.modulemap 被推荐: clang.llvm.org/docs/Modules.html#module-maps - Cœur
@Cœur这是推荐的,但显然也会阻止你的代码编译:( twitter.com/charlesismcom/status/846615073737007104 - Charlesism
@CœurXcode8.3发行说明:“在构建同一模块的源和安装目录中都有模块映射的框架时,编译器将显示重定义消息。(28638816)解决方法:重命名模块映射文件源目录为非默认名称(默认名称为module.modulemap或module.map),并将“模块映射文件”构建设置设置为重命名的模块映射。 - Charlesism
哦哈哈。因此,在推荐它多年后,他们只是为那些遵循推荐的人打破了它? openradar.me/30194818 - Cœur


答案:


这是可能的。

您可以为伞标题指定其他名称 Module Map File

  1. 为Project创建新的模块映射文件。

    framework module XXXProject {
       umbrella header "XXNewumbrellaName.h"
    
       export *
       module * { export * }
    }
    
  2. 指定modulemap文件: Build Settings -> Packaging -> Module Map File

好的,你实现了预期的效果。

我希望这能帮到您。


16
2017-08-22 07:06



注意:名称 module.modulemap 被推荐: clang.llvm.org/docs/Modules.html#module-maps - Cœur
@Cœur这是推荐的,但显然也会阻止你的代码编译:( twitter.com/charlesismcom/status/846615073737007104 - Charlesism
@CœurXcode8.3发行说明:“在构建同一模块的源和安装目录中都有模块映射的框架时,编译器将显示重定义消息。(28638816)解决方法:重命名模块映射文件源目录为非默认名称(默认名称为module.modulemap或module.map),并将“模块映射文件”构建设置设置为重命名的模块映射。 - Charlesism
哦哈哈。因此,在推荐它多年后,他们只是为那些遵循推荐的人打破了它? openradar.me/30194818 - Cœur