无法在M1 Mac上使用Firebase构建iOS Cordova应用程序:“未找到模块”FirebaseFirestore“”和“未找到框架AppAuth”

8ulbf1ek  于 2022-11-15  发布在  Mac
关注(0)|答案(1)|浏览(189)

我使用的是 cordova 11.0.0(cordova-ios 6.2.0)在一个全新的Mac mini上使用Xcode 13.2.1,使用M1芯片,我无法为iOS模拟器构建应用程序。我尝试使用cordova-plugin-firebasex 14.0.0,但无论是否使用此插件,我都无法构建应用程序。使用此插件,我得到Module 'FirebaseFirestore' not found,在过去的3天里,我搜索了这两个错误,以及我看到的许多其他错误;我找到并尝试过的许多解决方案要么不起作用,要么不适用于M1机器。我已经多次重新安装了几乎所有的东西,包括Xcode和许多东西。我已经多次尝试了pod repo updatepod installpod update
其他工具版本:

  • ruby 3.1.0p0(通过自制程序安装)
  • CocoaPods 1.11.2(与上述版本一起安装,新版ruby)
  • Mac操作系统12.2.1

安装新的ruby和CocoaPods,而不是使用MacOS的默认版本,确实删除了一些错误消息,并让我运行pod命令之前没有arch -x86_64
有趣的是,当安装了cordova-plugin-firebasex插件后,* 每次 * 运行pod update时,其输出中都会出现两条额外的消息:

Pre-downloading: `FirebaseFirestore` from `https://github.com/invertase/firestore-ios-sdk-frameworks.git`, tag `8.11.0`

Installing FirebaseFirestore 8.11.0

这暗示Firebase的FirebaseFirestore部分有问题,好像它安装不完整,或者好像插件在安装FirebaseFirestore组件时丢失了一些标志(?)。注意,FirebaseFirestore的行与Podfile中的其他行不同:

# DO NOT MODIFY -- auto-generated by Apache Cordova
source 'https://cdn.cocoapods.org/'
platform :ios, '11.0'
use_frameworks!
target 'my_app' do
        project 'my_app.xcodeproj'
        pod 'Firebase/Core', '8.11.0'
        pod 'Firebase/Auth', '8.11.0'
        pod 'Firebase/Messaging', '8.11.0'
        pod 'Firebase/Performance', '8.11.0'
        pod 'Firebase/RemoteConfig', '8.11.0'
        pod 'Firebase/InAppMessaging', '8.11.0'
        pod 'FirebaseFirestore', :tag => '8.11.0', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git'
        pod 'Firebase/Crashlytics', '8.11.0'
        pod 'Firebase/Functions', '8.11.0'
        pod 'Firebase/Installations', '8.11.0'
        pod 'GoogleSignIn', '6.1.0'
        pod 'GoogleTagManager', '7.3.1'
end

cordova-plugin-firebasex可以 * 从命令行 (使用-cli包)使用, 也可以 * 从Xcode使用,但不能同时使用这两种方式,我理解得对吗?无论如何,我也尝试过从命令行编译,但在编译cordova-plugin-firebasex/FirebasePlugin.m时失败了。
我对Firebase和苹果世界的几乎所有东西都是全新的,所以所有的建议都是非常受欢迎的。谢谢!
编辑:还有一些事情,可能的线索:
platforms/iOS/my_app/CordovaLib/下,没有Cordova/,而Cordova/显然应该包含Cordova.hInfo.list。这是什么原因造成的呢?
现在,在将Architectures / Exclude Architectures设置为x86_64后,我收到错误消息:
in /Users/me/dev/my_app/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/me/dev/my_app/platforms/ios/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities' for architecture arm64 .
我也在过去的4天里搜索了这个错误消息,但没有找到任何工作。
platforms/iOS/Pods/Pods.xcodeproj/project.pbxproj中,对于这些模块(?),IPHONEOS_DEPLOYMENT_TARGET设置为8.0AppAuth.debug.xcconfigGoogleSymbolUtilities.release.xcconfigGoogleSymbolUtilities.debug.xcconfigAppAuth.release.xcconfigGoogleUtilitiesLegacy.debug.xcconfigGoogleUtilitiesLegacy.release.xcconfig。当从命令行构建时,会出现一个警告,提示这些行至少应为9.0。我尝试在该文件中将这些行更改为9.0,但是错误消息没有改变。pod install加上pod update将那些设置回8.0
Build Settings / Linking下,我注意到Path to Link Map File被设置为一个不存在的文件:build/my_app.build/Debug-iphoneos/.build/-LinkMap--.txt。实际上目录build/my_app.build/并不存在。文件名显然显示PRODUCT_NAMECURRENT_VARIANTCURRENT_ARCH未设置。这重要吗?
谢谢你的任何帮助。我怀疑这里使用的多个应用程序都有问题,解决任何一个问题都会让其他一切更容易诊断。

vmpqdwk3

vmpqdwk31#

我也遇到过同样的问题,但我用这种方法解决了它。
1.删除firebase插件
cordova插件删除cordova-插件-firebasex
1.移除ios平台
cordova 平台rm ios
1.升级自制软件和所有软件包
自制升级
1.添加ios平台
cordova 平台添加ios
1.安装firebasex
cordova插件添加cordova-插件-firebasex
1.构建ios(cordova build ios)在我的情况下我得到这个错误
选择xcode:错误:工具“xcodebuild”需要Xcode,但活动开发人员目录“/Library/Developer/CommandLineTools”是命令行工具示例
为了解决这个问题,我启动了
应用Xcode.app/Contents/Developer
from this)(英文)
1.此时,我运行了cordova build ios again,这次一切顺利。
我希望这能有用

最后,我找到了另一种方法,如果之前的步骤不起作用。
https://github.com/dpa99c/cordova-plugin-firebasex/issues/735#issuecomment-1140775999

相关问题