【发布时间】:2015-07-15 16:22:45
【问题描述】:
我的项目中目前有 3 个嵌入式框架:
-
PersistenceLayer(仅限 Swift) -
TransportLayer(仅限 Swift) -
Socket(对象)
PersistenceLayer 和 Socket 都不会引用自身之外的任何内容。但是TransportLayer 导入PersistenceLayer 和Socket。奇怪的是,我可以在导入后使用 PersistenceLayer 对象:
import PersistenceLayer
struct User : Model {
...
}
Model 在PersistenceLayer 中定义,Xcode 让我可以正常使用它。但是,当我尝试构建 TransportLayer 时,我收到错误:No such Modul 'Persistencelayer'。所以 Xcode 会识别出模块存在,但在构建时会以某种方式“丢失”它。
令人抓狂的是,这曾经奏效。在某些时候发生了一些变化,我不知道是什么。重要的是要注意,我与多个开发人员一起从事一个项目,并且我有 merged 的更改。但是,在合并之前切换到提交不起作用。我也试过:
- 将
$(SRCROOT)(递归)添加到框架搜索路径 - 从
ModuleCache目录中删除所有内容 - 清理项目
- 清理构建文件夹
我怀疑我的项目设置发生了一些变化,但我不知道是什么,我检查了 git diffs 并没有帮助(除了正常的文件添加之外,项目中没有任何真正的变化。
另外,TransportLayer 确实成功导入并使用了Socket。如果我删除对 PersistenceLayer 的引用,但保留对 Socket 的所有引用,我可以构建 TransportLayer。
有谁知道为什么会发生这种情况或如何解决?
更新
好的,所以我从目标中删除了“有问题的”文件,以确保 Socket 正在工作(确实如此),然后将文件重新添加到目标中(实际上是通过重置 git)。它现在正在构建......因为这是有道理的。但是我尝试将 Scheme 从 iOS Device 更改为模拟器,它不再构建,但我得到了不同的错误:
- 在 module.modulemap 中:
HeaderPersistenceLayer-Swift.h' 未找到` - 还有:
Could not build Objective-C module 'Persistence Layer'
这感觉就像我在追踪随机错误......
【问题讨论】:
标签: ios xcode swift frameworks