我有一个非常简单的 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 bug report涉及 cocoapods 家伙和 firebase 家伙,但其中没有工作示例。
我应该在我的 .podspec 文件中添加什么:
pod install --project-directory=Example 成功,并生成一个有效的 XCode 项目。即我可以打开它,无需进一步配置即可编译它。
pod lib lint 成功,可选
Best Answer-推荐答案 strong>
即使您设法让 pod lib lint 通过,您也会遇到将 Firebase 集成为依赖项的依赖项的问题,因为它目前作为静态库出售。 FirebaseUI通过分发二进制文件而不是让 CocoaPods 从源代码构建来解决这个问题,但这并非没有自己的警告(即,使用 FirebaseUI 的人也不能使用另一个依赖于 Firebase 的库并正确解析应该使用的 Firebase 版本)。您链接的问题对此进行了更详细的讨论。
如果您真的想通过 CocoaPods 分发一个包装 Firebase 的库,您应该遵循相同的方法,但值得注意的是,即使 FirebaseUI 提供了 pod lib lint ,它也会失败。
CocoaPods 将很快(截至 2017 年 10 月)添加一个规则,允许在其他静态框架(包括闭源框架)之上构建静态框架。这将使在其他封闭的静态 objc 库之上构建 objc 库变得更加容易,但 Swift 静态库支持仍在进行中。
关于ios - 如何根据 Firebase pod 制作自定义 pod 库?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40978856/
|