没有这样的模块 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 外部完成),内容如下
如果你在其他地方安装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)/<project name>/CommonCrypto
,其中<project name>
是您的项目名称。
现在您可以构建项目了,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”
找不到模块:错误:无法解析'./http-common' vue js axios