如何删除use_frameworks!并继续在Objective-C项目中使用快速窗格?

时间:2018-10-20 23:41:52

标签: ios swift cocoapods react-native-ios react-native-firebase

我们的项目是 Objective-c 项目。

由于我们在react-native-firebase中使用了can't use use_frameworks!,因此在cocoapods中就不再使用。

问题是我们有一个 swift pod依赖项PromiseKit),而要使用swift依赖项,就我所知,我们必须使用use_frameworks!

我想做的就是兼顾两全其美:

  • 删除use_frameworks!,以使react-native-firebase起作用并且
  • 保持PromiseKit迅速的依赖性。

当前Podfile:

platform :ios, '10.0'

target 'TestApp' do

    use_frameworks!

    # swift pod
    pod 'PromiseKit'

    # react-native-firebase
    pod 'Firebase/Core', '~> 5.3.0'
    pod 'Firebase/DynamicLinks', '~> 5.3.0'
    pod 'Firebase/Messaging', '~> 5.3.0'

end

我注意到有一个命令:modular_headers => trueuse_modular_headers,自Cocoapods 1.5以来,我认为它可能与我正在寻找的解决方案无关,但似乎无法建立连接点。

编辑:

如果我删除了use_frameworks!(即使我将其替换为use_modular_headers!),也会出现此错误:

enter image description here 有什么帮助吗?

3 个答案:

答案 0 :(得分:4)

我也遇到了这个问题。并为此找到一个完美的解决方案。

https://github.com/joncardasis/cocoapods-user-defined-build-types

这是cocoapods的插件,通过它我们可以指定在特定的容器上使用“动态框架”(即“ use_framework”的作用)。 cocoapods当前不支持此功能,这就是为什么使用此插件可以解决您的问题。

答案 1 :(得分:1)

在Podfile中用plt.clf()替换use_frameworks!

在引用的CocoaPods 1.5 release note中:

  

使用CocoaPods 1.5.0,开发人员不再受限于   指定use_frameworks!在他们的Podfile中以安装Pod   使用Swift。与Objective-C互操作应该可以正常工作。但是,如果   您的Swift Pod取决于您需要启用的Objective-C Pod   该Objective-C吊舱的“模块化标头”(见下文)。

答案 2 :(得分:0)

上周,我遇到了类似的问题,因此我创建了一个基本项目,其中我使用Swift,Firebase,但不是 use_frameworks!,而是使用桥接头。

不知道人们是否仍然对此有疑问,请告诉我是否有帮助。 https://github.com/jenshandersson/React-Native-Swift