Xcode 7.3 beta 1与Swift中的CommonCrypto

时间:2016-01-13 16:41:41

标签: frameworks swift2 xcode7 commoncrypto

我在Swift框架中使用CommonCrypto - 它已经运行了一年多。

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

具体来说,为了从Swift框架引用CommonCrypto,我不得不:

在我的框架的Xcode项目旁边的名为module.map的文件夹中创建一个CommonCrypto文件。 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)中,这种技术不再适用。

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

所以我得到了这些错误:

  

ld:警告:找不到选项的目录   ' -L /应用/ Xcode-beta.app /内容/开发商/平台/ iPhoneOS.platform /开发商/软件开发工具包/ iPhoneOS9.3.sdk / usr / lib中/系统'   ld:为架构arm64 clang找不到-lCommonCrypto的库:   错误:链接器命令失败,退出代码为1(使用-v查看   调用)

如果疯狂的模块地图业务被更简单的东西取代,那将是很棒的。例如,仅使用import CommonCrypto

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

如果解决方案与前一个问题中找到的解决方案大不相同,我在此问这是一个新问题,尽管我很欣赏这可能不合适。

1 个答案:

答案 0 :(得分:0)

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

link "CommonCrypto"
来自module.map文件的