Swift pods目前无法作为静态库集成,FirebaseCoreInternal-library。
Swift pods目前无法作为静态库集成,FirebaseCoreInternal-library。
我正在使用Flutter构建一个应用程序。当执行\"pod install
\"或\"pod install --repo-update
\"或\"pod update
\"时,我遇到了以下错误信息,并且pod安装失败并停止。\n错误信息如下:\n[!] 以下的Swift pods目前还不能作为静态库集成:\nSwift pod FirebaseCoreInternal-library
依赖于GoogleUtilities-library
,该库没有定义模块。要在构建为静态库时从Swift导入这些目标,您可以在Podfile中全局设置use_modular_headers!
,或者为特定的依赖项指定:modular_headers => true
。\n我的Podfile配置如下:\n
platform :ios, '11.0' ... target 'Runner' do use_frameworks! use_modular_headers! flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end ...
问题出现的原因是在使用最新版本的Firebase和React Native时,启用了use_frameworks会导致在真实设备上部署时出现错误。解决方法是只添加firebase模块并将头文件设置为true,并保持使用flipper。另外,如果想要使用带有图像的丰富内容通知,需要在Podfile中使用modular_headers => true来添加FirebaseCoreInternal、Firebase/Messaging和GoogleUtilities模块。在测试时,需要向"https://fcm.googleapis.com/fcm/send"发送JSON数据,并确保在headers中加上"mutable-content": "1"。
Swift pods cannot yet be integrated as static libraries FirebaseCoreInternal-library 的问题出现的原因是因为在使用 use_frameworks! 或 use_modular_headers! 时与 use_flipper 发生冲突。解决方法是在 ios/Podfile 中添加以下内容,而不使用这两个选项:
platform :ios, '12.4'
...
...
pod 'Firebase', :modular_headers => true
pod 'FirebaseCoreInternal', :modular_headers => true
pod 'GoogleUtilities', :modular_headers => true
同时,还需要为 FirebaseCore 添加以下行:
pod 'FirebaseCore', :modular_headers => true
#....add any library need headers
这样做后可能会出现 "target has transitive dependencies that include statically linked binaries" 的错误。React Native 在这种情况下会停止工作并导致应用程序崩溃。
参考链接:
- [stackoverflow.com/a/74432488/14056591](https://stackoverflow.com/a/74432488/14056591)
- [github.com/invertase/react-native-firebase/issues/6403#issue-1308184812](https://github.com/invertase/react-native-firebase/issues/6403#issue-1308184812)