ios - 无法在 pubspec.yaml 中添加依赖项而不会在 Flutter ios 开发中出错
问题描述
在我的 Mac 上,我尝试在pubspec.yaml
文件中添加依赖项时出现错误提示
/Users/justindosaj/Desktop/Project Folder/testapp/ios/Runner/GeneratedPluginRegistrant.m:10:9: fatal error: module 'firebase_admob' not found
@import firebase_admob;
~~~~~~~^~~~~~~~~~~~~~
1 error generated.
note: Using new build system
note: Planning build
note: Constructing build description
Could not build the application for the simulator.
Error launching application on iPhone 11 Pro Max.
Exited (sigterm)
在这个错误中,它说找不到@import firebase_admob,但是如果我从pubspec 文件中删除了firebase_admob,那么对于其他2 个依赖项,它会给我同样的错误。
颤振医生:
[flutter] flutter doctor -v
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
[✓] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.15.2 19C57, locale en-US)
• Flutter version 1.12.13+hotfix.5 at /Users/justindosaj/Desktop/ApplicationSoftware/flutter
• Framework revision 27321ebbad (6 weeks ago), 2019-12-10 18:15:01 -0800
• Engine revision 2994f7e1e6
• Dart version 2.7.0
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/justindosaj/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• Java binary at: /usr/bin/java
✗ Could not determine java version
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.3.1, Build version 11C504
• CocoaPods version 1.8.4
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/setup/#android-setup for detailed instructions).
[✓] Connected device (1 available)
• iPhone 11 Pro Max • F64065AE-360F-474C-BC50-133614E7DC6A • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-3 (simulator)
! Doctor found issues in 2 categories.
exit code 0
pubspec.yaml 文件:
name: testapp
description: A new Flutter project.
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.2
firebase_analytics: ^5.0.2
firebase_core: ^0.4.0+9
firebase_admob: ^0.9.0+10
dev_dependencies:
flutter_test:
sdk: flutter
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.dev/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
播客文件:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'Runner' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for Runner
pod 'Firebase/Analytics'
pod 'Firebase/AdMob'
end
更新: ios 模拟器能够与 pod 一起运行,但在 pubspec.yaml 中添加依赖项仍然会导致相同的错误
解决方案
问题是 cocoapods 版本 1.8+。
跑
$sudo gem uninstall cocoapods
$sudo gem install cocoapods -v 1.7.5
$pod setup
如果使用颤振,你也不需要添加任何东西来做你的 podfile。在 pubspec.yaml 中添加依赖项将自动为您设置 podfile
推荐阅读
- c++ - 当我想覆盖一个值时,为什么不能使用统一初始化?
- python - 输出链接到相同关键字的所有行
- python - 在 x 轴上绘制正确的点
- regex - 正则表达式:每个组都是可选的,至少必须存在一个,之后允许其他任何内容
- html - 如何在列表中每个元素(字符串)的末尾添加一个链接?使用百里香叶
- python - 在 Python 中加入 dict 和数据框
- vb.net - 获取richtextbox vb.net中段落的段落号(不是行号)
- reactjs - 安装站点地图的问题
- javascript - 如何使单击 1 个按钮更改多个事物的 .innerhtml?
- git - 如何开始编辑 Chromium 源代码以及从哪里获得它?