如何在M1芯片上使用Firebase的空安全功能?

10 浏览
0 Comments

如何在M1芯片上使用Firebase的空安全功能?

已使用最新版本解决了此问题。\n我已经尝试了最新版本的Firebase,并且得到了以下错误:CocoaPods无法找到与\"Firebase/Firestore\"兼容的版本:\n# nullsafety # not work #solved\n firebase_core: ^1.5.0 #solved now ^1.6.0\n firebase_auth: ^3.0.2 #solved now ^3.1.0\n cloud_firestore: ^2.5.0 #solved now ^2.5.1\n #solved now firebase_storage: ^10.0.3\n # non nullsafety # work\n # firebase_core: ^0.4.0+9\n # firebase_auth: ^0.14.0+5\n # cloud_firestore: ^0.12.9+5\n\n我的环境:\n

    \n

  1. ➜ ios git:(master) ✗ ruby --version ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]
  2. \n

  3. ➜ ios git:(master) ✗ gem --version 3.0.3
  4. \n

\n我尝试了以下步骤:\n➜ flash-chat-flutter git:(master) ✗ flutter clean\nCleaning Xcode workspace... 4.4s\n....\n\n

➜  ios git:(master) ✗ pod cache clean --all

\n

➜  ios git:(master) ✗ pod deintegrate
Deintegrating `Runner.xcodeproj`
Deleted 1 'Check Pods Manifest.lock' build phases.
....
Deleted 1 empty `Frameworks` groups from project.
Removing `Pods` directory.
Project has been deintegrated. No traces of CocoaPods left in project.
Note: The workspace referencing the Pods project still remains.

\n

➜  ios git:(master) ✗ sudo arch -x86_64 gem install ffi
Password:
Building native extensions. This could take a while...
Successfully installed ffi-1.15.3
Parsing documentation for ffi-1.15.3
Done installing documentation for ffi after 3 seconds
1 gem installed

\n

➜  ios git:(master) ✗ sudo gem install cocoapods --pre
....
Fetching xcodeproj-1.21.0.gem
....
Successfully installed cocoapods-1.11.0.rc.1
Parsing documentation for addressable-2.8.0
Installing ri documentation for addressable-2.8.0
....
Done installing documentation for addressable, cocoapods-core, molinillo, xcodeproj, cocoapods after 2 seconds
5 gems installed

\n

\n我在这些步骤中遇到了问题 ...\n

\n

➜  ios git:(master) ✗ arch -x86_64 pod update
Update all pods
Updating local specs repositories
Analyzing dependencies
cloud_firestore: 使用在'firebase_core'中定义的Firebase SDK版本“8.5.0”
firebase_auth: 使用在'firebase_core'中定义的Firebase SDK版本“8.5.0”
firebase_core: 使用在'firebase_core'中定义的Firebase SDK版本“8.5.0”
[!] CocoaPods无法找到与pod“cloud_firestore”兼容的版本:
  在Podfile中:
    cloud_firestore(来自`.symlinks/plugins/cloud_firestore/ios`)
找到满足依赖关系`cloud_firestore(来自`.symlinks/plugins/cloud_firestore/ios`)`的规范,但它们需要更高的最低部署目标。
[!] 在目标`Runner`上自动分配平台`iOS`和版本`8.0`,因为未指定平台。请在您的Podfile中为此目标指定一个平台。请参阅`https://guides.cocoapods.org/syntax/podfile.html#platform`。

\n➜ ios git:(master) ✗ arch -x86_64 pod install\nAnalyzing dependencies\ncloud_firestore: 使用在\'firebase_core\'中定义的Firebase SDK版本“8.5.0”\nfirebase_auth: 使用在\'firebase_core\'中定义的Firebase SDK版本“8.5.0”\nfirebase_core: 使用在\'firebase_core\'中定义的Firebase SDK版本“8.5.0”\n[!] CocoaPods无法找到与pod“Firebase/Firestore”兼容的版本:\n 在快照(Podfile.lock)中:\n Firebase/Firestore(= 6.34.0,〜> 6.0)\n 在Podfile中:\n cloud_firestore(来自`.symlinks/plugins/cloud_firestore/ios`)解析为2.5.0,它依赖于\n Firebase/Firestore(= 8.5.0)\n您可能:\n * 源存储库已过时,您可以使用`pod repo update`或`pod install --repo-update`进行更新。\n * 更改了开发库`cloud_firestore`中依赖项`Firebase/Firestore`的约束。\n 您应该运行`pod update Firebase/Firestore`以应用您所做的更改。\n[!] 在目标`Runner`上自动分配平台`iOS`和版本`8.0`,因为未指定平台。请在您的Podfile中为此目标指定一个平台。请参阅`https://guides.cocoapods.org/syntax/podfile.html#platform`。\n\n我还按照非空安全的方法进行了以下步骤,只能参考Running CocoaPods on Apple Silicon (M1)

0
0 Comments

如何在M1芯片上使用Firebase空安全?

如果在M1芯片上使用Firebase时遇到问题,可能是由于Cocoapods版本不兼容引起的。为了解决这个问题,可以按照以下步骤进行操作:

1. 打开项目中的ios/pods/Local Podspaces文件夹。

2. 检查所有的.json文件,找到最后一个版本,例如:"ios": "10.0"

3. 打开ios/Podfile文件,取消注释顶部的platform :ios, '9.0',并将其更改为最后一个版本,例如:platform :ios, '10.0'

4. 参考cocoapods version flutter中的解释和讨论,了解更多关于Cocoapods版本与Flutter兼容性的信息。

通过执行以上步骤,您可以解决在M1芯片上使用Firebase时遇到的空安全问题。

0
0 Comments

如何在M1上使用null safety工作与Firebase?

最近,我在M1芯片上使用Flutter时遇到了一些问题,包括iOS和Android构建。以下是我在解决问题过程中的一些关键时刻:

1. 意识到即使在Silicon芯片上,也需要安装Rosetta(我在安装Xcode时一起安装了它)。

2. 在终端中运行以下命令来安装ffi和cocoapods:sudo arch -x86_64 gem install ffi和sudo arch -x86_64 gem install cocoapods。不需要在Rosetta终端中安装。

3. 关于Android。我安装了Arctic Fox(2020.3.1),尽管它已经包含了Java,但我发现还是需要单独安装Java。我从Oracle安装了Java(版本11,与Arctic Fox使用的版本相同)。

4. 发现iOS构建只能在Flutter beta频道上工作(当前版本为Flutter 2.5.0-5.2.pre)。

5. 意识到在pubspec.yaml中添加或删除包可能会破坏工作环境。即使运行Flutter clean也无法解决问题。我发现只需将项目文件夹重置,并使用git重新加载源文件,就可以使一切恢复正常(我确保不在git中包含任何与pod相关的文件)。

6. 发现Firebase包需要iOS 10或更高版本。我在Xcode中打开了Runner.xcworkspace,并将iOS部署目标设置为10。

目前,我的设置中的Firebase版本如下:

- firebase_core: ^1.4.0

- firebase_storage: ^10.0.1

- cloud_firestore: ^2.4.0

- firebase_auth: ^3.0.2

另外,我使用的是Zulu JDK ARM64,而不是Java。因此,总结一下环境配置:sdk: ">=2.12.0 <3.0.0",并且目前Firebase null safety在iOS上不起作用。我已经尝试了所有版本的null safety,但仍然报错。

0