我正在使用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项目中?
请帮忙。非常感谢。
答案 0 :(得分:4)
使用carthage update --platform iOS --no-use-binaries
。这需要一段时间,但它确实有效。
答案 1 :(得分:3)
我担心我无法在我的机器上复制问题。我从一个新的空Xcode项目开始,并且能够使用Speech to Text服务转录音频。
我上传了我的应用here。您可以尝试下载它,添加语音到文本凭据,然后运行应用程序吗?
答案 2 :(得分:0)
对我来说 - 除了使用--no-use-binaries标志构建库之外 - 我还必须确保在我的目标下
包括SpeechToTextV1.framework
另外 - 我发现这两个文件在Carthage文件夹中完全不同:
我的项目直接引用Carthage文件夹后才能使用。删除这两个文件中的任何一个都会导致错误返回。
答案 3 :(得分:0)
请确保新编译的框架是正在使用的框架。 Carthage不会将框架放在项目或工作区中引用的自定义位置。
答案 4 :(得分:0)
Watson Swift SDK的v0.21.0 release修复了此问题。您不再需要在项目设置中添加指向zlib
文件夹的链接。但是,您需要将Starscream.framework
复制到应用程序中,方法与复制其他框架的方式相同。
解决方案是将红蜘蛛依赖性外化。将Starscream添加为Swift SDK的递归依赖项允许它使用自己的环境独立构建。将Starscream库复制到您的应用程序中时,它应自动包含SSCZLib
和SSCommonCrypto
依赖项。
我们会在每个SDK发布之前对其进行测试,但是这个问题从我们这里消失了。我们的测试机器碰巧有其他软件将SSCZLib
和SSCommonCrypto
添加到路径中,使其可用于Xcode构建。直到我们使用新的macOS安装刷新机器,我们才能复制问题。而对于v0.21.0,这个问题已经解决了。
对不起您的麻烦,感谢您在我们追踪解决方案时的耐心等待!