Swift 代码完成不适用于 Cocoapods
Posted
技术标签:
【中文标题】Swift 代码完成不适用于 Cocoapods【英文标题】:Swift code completion not working with Cocoapods 【发布时间】:2015-06-27 17:16:32 【问题描述】:我有一个使用 swift 编写的各种内部开发 pod 的演示应用程序。开发 pod 中的所有 swift 代码都无法完成代码。例如,当按住命令并点击import UIKit
时,Xcode 在点击UIKit
时会报错Symbol Not Found
。没有编译器错误,一切构建和运行都很好。
如果我在演示项目本身的 pod 之外有 swift 代码,则该代码可以正常完成,但是当我将其放入 pod 并运行 pod install
时,它要么立即停止代码完成,要么只运行几个hours / pod update
命令,然后随机停止工作。我的项目中有其他开发 pod,而那些用 Objective-C 编写的开发 pod 代码完成时没有任何问题。
我尝试了多种不同的解决方案,即此处列出的解决方案:Xcode 6 Swift code completion not working。这些都不适合我。
我多次尝试以上帖子中这些解决方案的各种组合:
删除 Xcode 的派生数据 选择不同的模拟器设备来强制重新索引 删除 Cocoapod 的缓存(在库和 Podfile.lock 和 Pods 目录中) 运行pod deintegrate
然后pod install
重新启动 Xcode 和计算机
使用不同版本的 Xcode(6.3.2、6.4、7.0-beta2)
在完全不同的机器上
这些似乎都不起作用。
任何帮助将不胜感激!
【问题讨论】:
这也是我遇到的问题。您应该提交错误报告。 @VatsalManot 你认为这是 Cocoapods 还是 Xcode 的问题? 傻我!除了向 Apple 报告此错误外,请打开一个问题 here at CocoaPod's GitHub repository。 【参考方案1】:这也让我发疯了几个小时,一切似乎都很好,但自动完成不只是工作。
就我而言,我在 Xcode 7.2.1 上使用 RestKit 0.25 和 CocoaPods 0.39.0(因为我还在优胜美地)
由于一切正常,我试图找到自动完成功能的启动位置,我意识到项目构建设置级别有一些奇怪的东西。
如果你的 Target 的 Build Settings 是正确的,它当然可以编译和构建,但是项目一呢?
只需选择 YourProject->(PROJECT)YourProject->Build Settings-> Header Search Paths,然后删除除“$(inherited)”非递归之外的所有内容。 最后清理您的项目,自动完成功能将再次起作用。
【讨论】:
谢谢!我的标题搜索路径条目不知何故完全为空。我添加了 "$(inherited)" 非递归和自动完成功能再次开始工作。 谢谢。搜索路径为空。添加到调试和发布。效果很好。【参考方案2】:对我来说,向构建设置添加任何内容都不起作用,但删除派生数据并明确构建 Pod 方案就可以了。
转到“管理方案”并检查 Pods-MyProject 方案。选择此方案(运行和停止按钮旁边的按钮)和 Build for Running shift + cmd + R
之后切换回您的项目方案。
【讨论】:
【参考方案3】:尝试删除 Podfile 中的以下行,然后再次删除 pod install
:
use_frameworks!
【讨论】:
以上是关于Swift 代码完成不适用于 Cocoapods的主要内容,如果未能解决你的问题,请参考以下文章