在 Flutter iOS 平台特定代码中使用 Cocoapods 库

Posted

技术标签:

【中文标题】在 Flutter iOS 平台特定代码中使用 Cocoapods 库【英文标题】:Using Cocoapods libraries in Flutter iOS platform specific code 【发布时间】:2019-05-06 21:28:21 【问题描述】:

我正在尝试使用 Cocoapods 库(用于外部 SDK),但我没有找到任何文档来执行此操作。我已经将它集成到了 android 部分,只需在 Gradle 文件中添加一行。

简单地说,我想创建(或者可能找到)一个podfile,我可以在其中添加我的依赖项并在AppDelegate.swift 文件中使用它。

到目前为止,我尝试的是在ios/ 文件夹中运行pod init,然后添加我的pod(例如pod 'Charts')并运行pod install,但它说:

[!] CocoaPods 没有设置您项目的基本配置,因为您的项目已经有一个自定义配置集。为了使 CocoaPods 集成能够正常工作,请将目标 Runner 的基本配置设置为 Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig 或在构建配置中包含 Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig (Flutter/Release.xcconfig)。

然后当我尝试在 Xcode 上构建时,它给了我这个错误:

错误:沙盒与 Podfile.lock 不同步。运行“pod install”或更新您的 CocoaPods 安装。

我认为我的做法是正确的,但在 Flutter.io 文档方面没有任何帮助。

提前感谢您的帮助!

【问题讨论】:

你能发布你的 Podfile 内容吗? 我刚刚添加了一些细节来指定我尝试过的内容,但我的问题是我不知道将 cocoapods 库添加到 Flutter 应用程序的 ios 端的正确方法。 【参考方案1】:

ios/文件夹中运行pod initpod install后,添加

#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"

ios/Flutter/Debug.xcconfig

并添加

#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"

ios/Flutter/Release.xcconfig

【讨论】:

谢谢!已经有一段时间了,所以我已经解决了这个问题,但我忘了把它添加到我原来的帖子中^^' 就我而言,这些是自动添加的。 这将在项目清理时被删除。【参考方案2】:

只需将您的 pod 放在 ios 文件夹下的 Podfile 文件的末尾,例如:

pod 'UMCAnalytics'

默认情况下,此文件中有一些代码,但只需忽略它们并将您的 pod 添加到它们下方。之后,运行:

pod update 

然后您将看到已安装的 pod。

【讨论】:

【参考方案3】:

您是否将项目目标添加到您的Podfile? 类似的东西:

def swift_frameworks
  pod 'PodName', 'X.X'
end


target 'My Project' do
  swift_frameworks
end

【讨论】:

您好,感谢您的回答。但是,我的问题是我在颤振生成的应用程序中找不到任何 Podfile(例如在 ios/ 文件夹中)。我应该用pod init 创建一个吗?还是有其他方法?

以上是关于在 Flutter iOS 平台特定代码中使用 Cocoapods 库的主要内容,如果未能解决你的问题,请参考以下文章

如何从用 Swift 编写的 Flutter 平台特定代码启动 ViewController?

Flutter插件开发未解决参考:io

如何从 Flutter 中的平台特定模块(Android)登录

使用平台通道编写平台特定的代码

Flutter调用平台代码

Flutter:当应用程序处于后台但未在 iOS 中终止时,无法在通知单击时重定向到特定屏幕