我有一个 Podfile 设置为使用WhirlyGlobeMaply:
platform :ios, '10.2'
project 'MyProject.xcodeproj'
target 'MyProject' do
use frameworks!
pod 'WhirlyGlobe', '2.4'
pod 'WhirlyGlobeResources'
[some other pods]
end
这很好。但是当我添加GRDB.swift
pod GRDB.swift
然后 pod install/clean/build 一切,新的依赖被编译好(GRDB),但是在旧的(WhirlyGlobe)编译期间,我得到:
'sqlite3.h' file not found
因此,两个 pod 都可以自己编译,但似乎与 sqlite Header 有一些交互。
(其实一开始我并没有注意到这个问题,因为我没有清理我的项目并且在重新构建时,XCode 只需要编译 GRDB,就可以了。这只有在清理之后才会发生。)
到目前为止我发现了什么:
WhirlyGlobe 和 GRDB.swift 都包含 sqlite 作为库。
-
s.library = 'sqlite3'
-
s.subspec 'Lib' do |l| ... l.libraries = 'c++', 'sqlite3' ... end
GRDB 实际上sqlite3.h
在其 Pod 安装中包含一个文件,位于
Pods/GRDB.swift/Support/sqlite3.h
.
WhirlyGlobes 安装中似乎没有包含这样的文件(使用find Pods/ -name "sqlite3.h"
.
正如 podspec 所建议的那样#import "sqlite3.h"
,引发错误的文件是 WhirlyGlobeLib 的一部分VectorDatabase.h
到目前为止我做了什么:
- 运行
pod deintegrate
,pod install
关闭 XCode - 尝试将带有
sqlite3.h
from GRDB 的目录添加到标题搜索路径(我的项目和 WhirlyGlobe Pods 目标的目录) - 尝试将“始终搜索用户路径”设置为“是”
- 标题搜索路径的各种其他内容,我现在恢复了。
任何提示(非常)赞赏。