我正在使用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
答案 0 :(得分:1)
我找到了解决办法,让Xcode能够通过Miift Isaev所述的here通过Swift模块找到CommonCrypto
。
我在我的项目中使用了这种方法(Xcode 9.3,Swift 4)。我总结了以下步骤。
CommonCrypto
(或者我在AppDelegate.swift
文件的同一级别创建它)在该目录内创建文件名module.map
(在Xcode外部完成),内容如下
module CommonCrypto [system] { header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h" export * }
如果您在其他位置安装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
。
$(PROJECT_DIR)/<project name>/CommonCrypto
中输入Import Paths
,其中<project name>
是您的项目名称。 注意:无需通过CommonCrypto
将承载module.map
文件的Add Files to ...
目录添加到Xcode中。它只用于编译步骤,因此没有问题。