我有一个非常简单的swift 3 pod库,具体取决于Firebase pod。它是使用pod lib create
创建的,库中唯一的代码行是import Firebase
。但是,似乎没有检测到Firebase。
-> FoobarLib (0.1.0)
- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
- ERROR | [iOS] xcodebuild: ~/FoobarLib/Classes/Foobar.swift:1:8: error: no such module 'Firebase'
我想我的.podspec文件配置不正确。我在s.dependency Firebase
尝试了一个简单的pod依赖项,我试图在我的库中embed the Firebase frameworks。我玩过FRAMEWORK_SEARCH_PATHS
,USER_HEADER_SEARCH_PATHS
,SWIFT_INCLUDE_PATHS
,但我从来没有工作过。
我的示例库is hosted on github和完整的错误日志可用on Travis。您可以随意克隆它,并测试pod lib lint
和pod install --project-directory=Example
。
我看到这个涉及cocoapods家伙和firebase人员的相关cocoapods bug report,但其中没有可行的例子。
我应该在.podspec文件中添加什么内容:
pod install --project-directory=Example
成功,并生成有效的XCode项目。即我可以打开它,无需进一步配置即可编译。pod lib lint
成功,可选答案 0 :(得分:4)
即使您设法让pod lib lint
通过,您也会遇到将Firebase整合为依赖关系的问题,因为它目前作为静态库出售。 FirebaseUI通过分发二进制文件而不是从源代码构建CocoaPods来解决这个问题,但它并非没有自己的警告(即使用FirebaseUI的人也不能使用依赖Firebase的其他库并正确解析版本应该使用的Firebase)。您链接的问题更详细地讨论了这一点。
如果你真的想通过CocoaPods分发一个包装Firebase的库,你应该遵循相同的方法,尽管值得注意的是pod lib lint
对于FirebaseUI来说是失败的,即使它仍在运送。
CocoaPods将很快(截至2017年10月)添加一条规则,允许在其他静态框架(包括闭源框架)之上构建静态框架。这将使在其他封闭的静态objc库之上构建objc库变得更加容易,但Swift静态库支持仍在开发中。