当我尝试在Xcode 6.3中将CKCountdownButton构建为框架时,它抱怨
警告:找不到目标“CKCountdownButton”的伞状标头,将不生成模块Map
然后,当我在其他项目中导入此框架时,它失败了,并显示No such module 'CKCountdownButton'
当我尝试在Xcode 6.3中将CKCountdownButton构建为框架时,它抱怨
警告:找不到目标“CKCountdownButton”的伞状标头,将不生成模块Map
然后,当我在其他项目中导入此框架时,它失败了,并显示No such module 'CKCountdownButton'
5条答案
按热度按时间dohp0rv51#
我找到了另一个解决方案,Xcode提供了一种通过Module Map File配置来指定伞形头的方法。
module.modulemap
的内容应为:mrzz3bfm2#
在框架中添加
CKCountdownButton.h
解决了此问题。我认为伞形头文件是指与Framework同名的头文件
gmxoilav3#
该目标需要至少有1个Swift文件。请检查您是否已将Swift文件添加到目标
uhry853o4#
Module and .modulemap(https://stackoverflow.com/a/59213694/4770877)
公共文件结构:
将所有应向使用者公开的标头标记为公共(header_1.h、header_2.h、header1_1.h)。
Headers
public部分About(https://stackoverflow.com/a/57511627/4770877),否则将出现下一个错误。包含在
.modulemap
中的modular headers
-.h
文件:umbrella.h
中的. modulemapumbrella
关键字header
关键字。模块化标头可以导入仅模块化标头
创建一个
umbrella file
-任何.h
文件(或为Framework目标自动生成的<product_name>.h
)。将根
.h
文件添加到umbrella file
(Umbrella.h
)。将自动添加从此文件导入的所有内容使用或创建一个自定义的
.modulemap
文件。您可以根据需要调用.modulemap
文件,编译后它将被称为module.modulemap
。此外,我不建议您将其称为module.modulemap
,因为它可能会导致此文件的不可预测的更改module.modulemap
,默认生成:递归地公开all
module headers
。生成下一个代码. modulemap可以包含多个模块。其中一个必须与
PRODUCT_MODULE_NAME
同名子模块
module
**当您导入外部模块时,您可以使用子模块中的标题
explicit module
**您不能使用模块名称作为子模块标题(如前一个示例所示,默认情况下您可以这样做)
export
之间的依赖关系**module *
仅适用于**umbrella
**,如果不适用,您将获得生成下一个代码
当一些文件找不到下一个错误发生
使用
explicit module
查看效果module *
-为umbrella
中的每个modular header
创建子模块export *
-将所有子模块导出到当前子/模块如果我们使用
module * { }
而不是module * { export * }
和import SomeModule.header_1
,没有任何变化,我们可以在导入单个子模块时使用所有modular headers
。这是安全的,因为父模块SomeModule
可以访问所有子模块如果使用
explicit module * { }
而不是explicit module * { export * }
和import SomeModule.header_1
,则会出现错误制作人:
消费者:
1qczuiv05#
我有同样的问题与'GoogleToolbox'。它发生在当我试图更新我的pod repo和一些错误发生。只是做了'pod安装'从终端上的项目文件夹和一切都得到了确定。