SpeechToTextV1 - 缺少所需的模块SSCZLib,SSCommonCrypto

时间:2017-11-12 07:50:08

标签: xcode speech-to-text ibm-watson

我正在使用IBM Watson swift-sdk SpeechToTextV1包的XCode 9.1项目。将swift-sdk升级到版本0.19.0并构建XCode项目后,编译器错误发生:缺少必需的模块:'SSCZLib','SSCommonCrypto'指向导入SpeechToTextV1语句。 swift-sdk通过迦太基更新。 Cartfile内容:github“watson-developer-cloud / swift-sdk”。 命令行更新:carthage update --platform ios --no-use-binaries。

如何将SSCZLib和SSCommonCrypto模块包含到XCode项目中?

请帮忙。非常感谢。

5 个答案:

答案 0 :(得分:4)

使用carthage update --platform iOS --no-use-binaries。这需要一段时间,但它确实有效。

答案 1 :(得分:3)

我担心我无法在我的机器上复制问题。我从一个新的空Xcode项目开始,并且能够使用Speech to Text服务转录音频。

我上传了我的应用here。您可以尝试下载它,添加语音到文本凭据,然后运行应用程序吗?

答案 2 :(得分:0)

对我来说 - 除了使用--no-use-binaries标志构建库之外 - 我还必须确保在我的目标下

  • 构建阶段 - >嵌入框架
  • 构建阶段 - >使用库链接二进制文件

包括SpeechToTextV1.framework

另外 - 我发现这两个文件在Carthage文件夹中完全不同:

  • 迦太基/签出/ IOS-SDK /源/ SupportingFiles /依赖/红蜘蛛/ ZLIB / INCLUDE.H
  • 迦太基/签出/ IOS-SDK /源/ SupportingFiles /依赖/红蜘蛛/ ZLIB / module.modulemap

我的项目直接引用Carthage文件夹后才能使用。删除这两个文件中的任何一个都会导致错误返回。

答案 3 :(得分:0)

请确保新编译的框架是正在使用的框架。 Carthage不会将框架放在项目或工作区中引用的自定义位置。

答案 4 :(得分:0)

Watson Swift SDK的v0.21.0 release修复了此问题。您不再需要在项目设置中添加指向zlib文件夹的链接。但是,您需要将Starscream.framework复制到应用程序中,方法与复制其他框架的方式相同。

解决方案是将红蜘蛛依赖性外化。将Starscream添加为Swift SDK的递归依赖项允许它使用自己的环境独立构建。将Starscream库复制到您的应用程序中时,它应自动包含SSCZLibSSCommonCrypto依赖项。

我们会在每个SDK发布之前对其进行测试,但是这个问题从我们这里消失了。我们的测试机器碰巧有其他软件将SSCZLibSSCommonCrypto添加到路径中,使其可用于Xcode构建。直到我们使用新的macOS安装刷新机器,我们才能复制问题。而对于v0.21.0,这个问题已经解决了。

对不起您的麻烦,感谢您在我们追踪解决方案时的耐心等待!