【问题标题】:Xcode 7.3 beta 1 vs. CommonCrypto in SwiftXcode 7.3 beta 1 与 Swift 中的 CommonCrypto
【发布时间】:2016-04-18 18:07:07
【问题描述】:

我在 Swift 框架中使用 CommonCrypto - 一年多来一直运行良好。

我使用了在这里找到的解决方案:Importing CommonCrypto in a Swift framework

具体来说,要从 Swift 框架中引用 CommonCrypto,我必须:

在我框架的 Xcode 项目旁边名为 CommonCrypto 的文件夹中创建一个 module.map 文件。 module.map内容:

module CommonCrypto [system]
{
    header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/CommonCrypto/CommonCrypto.h"
    link "CommonCrypto"
    export *
}
  • 在我的框架项目的 Swift 导入路径中,我添加了CommonCrypto
  • 在我的框架项目的库搜索路径中,我包括: $(SDKROOT)/usr/lib/system
  • 在我的来源中,我包括:import CommonCrypto

这很好用;有点令人费解 - 但它奏效了。

但是,在 Xcode 7.3 beta 1 (7D111g) 中,该技术不再有效。

libcommonCrypto.tbd 似乎已从 Xcode-beta.app 中的 $(SDKROOT)/usr/lib/system 中删除。而且我在 iPhoneOS SDK 文件夹结构下的任何地方都找不到它。

所以我得到了这些错误:

ld:警告:找不到选项的目录 '-L/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/system' ld:未找到用于架构 arm64 的 -lCommonCrypto 的库 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看 调用)

如果疯狂的模块地图业务被更简单的东西取代,那就太好了。例如,只使用import CommonCrypto

无论如何,我不知道如何解决这个问题,因此非常感谢您的帮助。

如果解决方案与上一个问题中找到的解决方案有很大不同,我在这里提出一个新问题,尽管我知道这可能不合适。

【问题讨论】:

    标签: frameworks swift2 xcode7 commoncrypto


    【解决方案1】:

    看起来解决方法是删除该行:

    link "CommonCrypto"
    

    来自 module.map 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-21
      • 2014-10-29
      • 2015-10-17
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多