2

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

#import <CommonCrypto/CommonCrypto.h>

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

更新:头文件:

#ifndef ProjectName_Bridging_Header_h
#define ProjectName_Bridging_Header_h

#import <CommonCrypto/CommonCrypto.h>

#endif
4

1 回答 1

2

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

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

  1. 在项目的根目录下创建一个新目录CommonCrypto(或者对我来说,我在同一级别的AppDelegate.swift文件中创建了它)
  2. 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

  3. 转到Build SettingsXcode 然后搜索swift compiler - search paths.

  4. 在其中输入您$(PROJECT_DIR)/<project name>/CommonCrypto的项目名称。Import Paths<project name>
  5. 现在您将能够构建项目,Xcode 会找到这样的模块。

注意:不需要CommonCrypto通过. 它仅在编译步骤中使用,因此在那里没有问题。module.mapAdd Files to ...

于 2018-05-21T12:29:52.883 回答