Xcode 7.3 beta 1与Swift中的CommonCrypto

Dan*_*iel 9 frameworks commoncrypto xcode7 swift2

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

我使用了这里找到的解决方案:在Swift框架中导入CommonCrypto

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

module.mapCommonCrypto我的框架的Xcode项目旁边的文件夹中创建一个文件.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 *
}
Run Code Online (Sandbox Code Playgroud)
  • 在我的框架项目的Swift导入路径中,我添加了 CommonCrypto
  • 在我的框架项目的图书馆搜索路径中,我包括: $(SDKROOT)/usr/lib/system
  • 在我的来源中,我包括: import CommonCrypto

这很好用; 有点复杂 - 但它奏效了.

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

它似乎libcommonCrypto.tbd已从$(SDKROOT)/usr/lib/systemXcode-beta.app中删除:我无法在iPhoneOS SDK文件夹结构下找到它.

所以我得到这些错误:

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

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

在任何情况下,我不知道如何解决这个问题,所以任何帮助都表示赞赏.

如果解决方案与上一个问题中找到的解决方案大不相同,我在这里要求提出一个新问题,尽管我很欣赏这可能不合适.

小智 0

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

link "CommonCrypto"
Run Code Online (Sandbox Code Playgroud)

来自 module.map 文件。