我使用的是 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 update
、pod install
和pod 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.h
和Info.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.0
:AppAuth.debug.xcconfig
、GoogleSymbolUtilities.release.xcconfig
、GoogleSymbolUtilities.debug.xcconfig
、AppAuth.release.xcconfig
、GoogleUtilitiesLegacy.debug.xcconfig
和GoogleUtilitiesLegacy.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_NAME
、CURRENT_VARIANT
和CURRENT_ARCH
未设置。这重要吗?
谢谢你的任何帮助。我怀疑这里使用的多个应用程序都有问题,解决任何一个问题都会让其他一切更容易诊断。
1条答案
按热度按时间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