2016-01-13 57 views
9

我在Swift框架中使用CommonCrypto - 并且一直运行良好一年多。Xcode 7.3测试版1与Swift中的CommonCrypto比较

我曾经在这里找到解决方案:Importing CommonCrypto in a Swift framework

具体来说,从斯威夫特框架引用CommonCrypto,我只好:

创建module.map文件名为CommonCrypto我旁边的框架的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 * 
} 
  • 在我的框架,项目的斯威夫特导入路径,我想补充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: warning: directory not found for option '-L/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/system' ld: library not found for -lCommonCrypto for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

这将是巨大的,如果疯狂的模块图业务与简单的东西代替。例如,只是使用import CommonCrypto

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

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

回答

0

它看起来像解决方法是删除行:从module.map文件

link "CommonCrypto"