Plugin.h文件未找到:flutter和xcode
Plugin.h文件未找到:flutter和xcode
当我尝试在xcode中运行我的项目时,出现了以下错误:
'auto_orientation/AutoOrientationPlugin.h'文件找不到。
如果我移除这个插件,它会继续到下一个插件,并在该插件的.h文件上失败,以此类推,对于每个插件都是如此。
之前,只有在尝试制作存档时才会出现此问题,但它总是能够正常运行。现在连运行都不行了。
关于这个问题有很多讨论,我已经浏览过了,但到目前为止都没有找到任何有效的建议。
Pubspec.yaml文件,如下所示:
name: app_name
description: 我的应用程序。
版本和构建号
版本号由三个用点分隔的数字组成,例如1.2.43,后面可以加上一个可选的构建号,用+号分隔。
版本号和构建号都可以在Flutter构建中通过指定--build-name和--build-number进行重写。
有关版本控制的更多信息,请访问semver.org。
version: 6.0.0
environment:
sdk: ">=2.3.0-dev.0.5 <3.0.0"
dependencies:
flutter:
sdk: flutter
# 添加Cupertino Icons字体到应用程序中。
# 与CupertinoIcons类一起使用以使用iOS风格的图标。
cupertino_icons: 0.1.2
firebase_admob: 0.5.5
screen: 0.0.5
image_picker: 0.6.1
firebase_auth: 0.11.1+7
shared_preferences: 0.4.3
rflutter_alert: 1.0.2
url_launcher: 5.0.3
in_app_purchase: 0.2.0
firebase_dynamic_links: 0.4.0+4
app_review: 1.1.0+1
auto_orientation: 1.0.4
vibration: 1.2.1
dev_dependencies:
flutter_test:
sdk: flutter
# 关于pubspec文件的通用Dart部分的信息,请参阅以下页面:https://www.dartlang.org/tools/pub/pubspec
# 以下部分是特定于Flutter的。
flutter:
assets:
- lib/images/
- lib/images/example1.png
- lib/images/example2.png
- lib/images/example3.png
uses-material-design: true
Cenk的屏幕截图:
问题原因:在运行flutter和xcode时,出现了"Plugin.h file not found"的错误。这个错误的原因可能是由于一些缓存文件或依赖文件的问题。
解决方法:
1) 运行flutter clean
命令,清除flutter项目的缓存文件。
2) 运行rm ios/Podfile.lock
命令,删除iOS项目的Podfile.lock文件。
3) 运行rm -rf ios/Pods
命令,删除iOS项目的Pods文件夹。
4) 运行rm -rf ~/.pub-cache/hosted/pub.dartlang.org/
命令,删除pub缓存文件夹(该文件夹可能位于不同的位置,根据自己的设置进行删除)。
5) 运行flutter packages get
命令,获取flutter项目的依赖包。
然后按照正常的方式运行或构建你的应用程序。
感谢。我在我的Mac上没有任何类似的文件:4) rm -rf ~/.pub-cache/hosted/pub.dartlang.org/,但我还是运行了这个命令。现在我得到了与之前相同的autoorientation.h错误(在xcode中运行时),但是现在在运行flutter run -v时,我得到了一个新的错误,提示“无法在build/ios/iphoneos/runner.app找到构建的应用程序包”。
在开发Flutter应用时,有时会遇到“Plugin.h file not found”错误。该错误的原因是从pubspec.yaml
中删除了一个依赖包,但忘记了手动删除Info.plist
和AppDelegate.swift
中添加的权限和方法。当Xcode在AppDelegate.swift
中看到这些方法时,会搜索所需的文件,但由于该包已从pubspec.yaml
中删除,因此找不到这些文件。
解决该问题的方法是检查这两个文件的内容是否与需要它们的包匹配。另外,根据pubspec.yaml
文件,还需要将一些键添加到AndroidManifest.xml
和Info.plist
文件中。对于firebase_admob
包,需要在AndroidManifest.xml
中添加以下内容:<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="[ADMOB_APP_ID]"/>
,并在Info.plist
中添加以下内容:<key>GADApplicationIdentifier</key> <string>[ADMOB_APP_ID]</string>
。
对于screen 0.0.5
包,需要在AndroidManifest.xml
中添加以下权限:<uses-permission android:name="android.permission.WAKE_LOCK" />
。
对于image_picker: 0.6.1
包,还需要在Info.plist
中添加一些权限。
最后,确保在pubspec.yaml
中的所有依赖包的页面上按照说明添加所有依赖项。
希望这些解决方法能够帮助你解决Plugin.h file not found
错误。如果你仍然遇到问题,请检查你的pubspec.yaml
文件和相关配置文件是否正确,并确保你的依赖包和文件匹配。
有时候在项目中编译iOS时也会出现错误,解决方法是创建一个同名的干净项目,将代码复制到新项目中即可。
问题是我不知道如何在xcode中做到这一点。在我的电脑上,我可以打开所有文件,并在Android Studio中复制粘贴它们。但是在Mac和xcode上,它实际上无法理解任何自己的文件扩展名,我必须在文本编辑器中打开所有文件,这是一个绝对的噩梦系统。真的需要能够正确地解决这个问题。
你尝试过修改文件->工作区设置,并将构建系统设置为Legacy Build System或New Build System吗?
嗨Cenk,我一直在按照你的建议,从头开始构建一个基本的应用程序。我构建原始应用程序,运行它,一切正常。然后我只将插件添加到pubspec文件中,结果一切都变得一团糟。我今天已经花了几个小时来解决许多错误。每次解决一个错误,就会出现一个新的错误。这是一个空白应用程序的情况。这个平台有多不稳定?
我在文件选项下也没有“工作区设置”。已经在原问题中添加了截图。
我有最新的xcode,但你的更新根本没有告诉我如何进入这个设置界面。正如我在更新中向你展示的那样,我没有那些选项。请参阅我原始问题中的截图。谢谢。
我设法在最新版本的xcode中找到了这个设置,路径是 文件->项目设置,如果有人需要的话,可以设置为legacy build system,然后再次运行应用程序。但是仍然出现相同的错误:'auto_orientation/AutoOrientationPlugin.h'文件未找到。不过还是感谢你的建议。
可以尝试查看stackoverflow.com/questions/5198905这个链接,可能对你有所帮助。