没有这样的模块 Common Crypto

Posted

技术标签:

【中文标题】没有这样的模块 Common Crypto【英文标题】:No such module Common Crypto 【发布时间】:2017-10-23 16:30:46 【问题描述】:

我正在使用 swift 3.2。我制作了一个桥接头文件,其中包含以下内容:

#import <CommonCrypto/CommonCrypto.h>

在我的项目构建设置中,我指向我的桥接头文件,但在我使用 import CommonCrypto 的类中仍然收到错误 'No such module CommonCrypto'

更新: 头文件:

#ifndef ProjectName_Bridging_Header_h
#define ProjectName_Bridging_Header_h

#import <CommonCrypto/CommonCrypto.h>

#endif

【问题讨论】:

你能显示你的整个桥接头吗,我导入的通用加密和你做的完全一样,我的工作正常 你试过this吗? 如果你的头文件中已经有了import CommonCrypto,你就不需要这样做了。你可以直接使用它 @TNguyen 如果我删除 import CommonCrypto 然后我会收到警告说“使用未解析的标识符 CommonCrypto” Previoussy 我在一个框架中有 commonCrypto 并使用了一个聚合。有了这个,我需要导入 CommonCrypto 并像 CommonCrypto.kCCOptionPKCS7Padding 一样使用它。我删除了所有的“CommonCrypto”。我的 swift 文件中的引用,它有效-感谢您的帮助! 【参考方案1】:

我找到了使 Xcode 能够通过 Swift 模块找到 CommonCrypto 的解决方法,正如 Mihael Isaev 所说的 here。

我在我的项目中使用了这种方法(Xcode 9.3、Swift 4)。我将步骤总结如下。

    在项目的根目录下创建一个新目录,即CommonCrypto(或者我在AppDelegate.swift 文件的同一级别创建它)

    在该目录中创建一个文件名module.map(在 Xcode 外部完成),内容如下

    模块 CommonCrypto [系统] 标题“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h” 出口 *

    如果你在其他地方安装Xcode,你可以自己手动找到.app的位置,然后附加/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h,或者你可以执行xcode-select -p获取Xcode的路径,然后附加/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h

    在 Xcode 中转到 Build Settings,然后搜索 swift compiler - search paths

    在其Import Paths 中输入$(PROJECT_DIR)/&lt;project name&gt;/CommonCrypto,其中&lt;project name&gt; 是您的项目名称。 现在您可以构建项目了,Xcode 会找到这样的模块。

注意:无需通过Add Files to ...将托管module.map文件的CommonCrypto目录添加到Xcode中。它仅用于编译步骤,因此在那里没有问题。

【讨论】:

你在使用 rave 框架吗?在 commoncrypto 模块中,在我的情况下必须是什么路径 .app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h commoncrypto 应该在哪里替换它?

以上是关于没有这样的模块 Common Crypto的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:模块“common”没有属性“allocate_buffers”

idea新建maven多模块项目

找不到模块:错误:无法解析'./http-common' vue js axios

Springboot集成Common模块中的的全局异常处理遇见的问题

TPThinkPHP5公共模块的设置与使用

模块化编程---common.js