【问题标题】:Plugin.h file not found: flutter and xcode找不到 Plugin.h 文件:flutter 和 xcode
【发布时间】:2020-07-04 02:10:14
【问题描述】:

当我尝试在 xcode 中运行我的项目时,我收到以下错误:

'auto_orientation/AutoOrientationPlugin.h' file not found.

如果我删除此插件,它将转到下一个插件并在该插件的 .h 文件上失败,依此类推每个插件。

以前,此问题仅在我尝试制作存档时才会发生,但它始终可以正常运行。现在它甚至不会运行。

关于这个有很多线程,我已经浏览了这些线程,但到目前为止找不到任何有效的建议。

Pubspec.yaml 文件,根据要求:

name: app_name
description: My application.

# 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.
# Read more about versioning at semver.org.
version: 6.0.0

environment:
  sdk: ">=2.3.0-dev.0.5 <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_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



# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec

# The following section is specific to Flutter.

flutter:
  assets:
  - lib/images/
  - lib/images/example1.png
  - lib/images/example2.png
  - lib/images/example3.png

uses-material-design: true

Cenk 的屏幕截图:

【问题讨论】:

  • 用于说明我尝试不同解决方案、阅读不同论坛等的时间长度。给出的答案可能不是一个简单的答案,并且可能需要一些“外部box' 类型的解决方案(正如该线程中的最终答案所证明的那样)。所以不,“halfer”,这在任何意义上都没有用,而且是故意无故责骂。
  • 我理解您的沮丧,如果我的语气显得过于严厉,我深表歉意(我自己也说不出来)。但我敢肯定,您所说的意思会被一些读者理解为乞求。这个解释过程不在你的掌控之中——这是人类交流的一个诅咒,语言意味着它们是如何被听到的,而不是它们的含义。
  • 毫无疑问,一个有用的观察是我们在这里得到了很多乞求。各种紧急情况,尽快,即将失去工作,跪在地板上,哭泣,扯掉头发,我很绝望,我无能为力,以及其他各种淫秽的情感胁迫。我还注意到它在某些文化中比其他文化更常见。我提到它的原因 - 很多 - 是它最终以不适合志愿者的方式向读者施加压力。

标签: ios xcode flutter


【解决方案1】:

我猜你有一些文件因为某种原因丢失了。

我希望这些步骤可以解决它:

  1. 备份你的 Flutter 项目文件夹
  2. 从你的 Flutter 项目中删除“ios”文件夹
  3. 运行flutter create -i swift,该命令将重新创建新的“ios”文件夹
  4. 运行你的 Flutter 项目

【讨论】:

  • 嗨 abdalmonem,我试了一下,但在第 3 步出现以下错误:“没有为输出目录指定选项。” “创建一个新的 Flutter 项目。” "用法:flutter create "
  • @Bisclavret ,你可以在其他路径创建一个新项目,然后将'ios'文件夹替换为旧项目,新项目的名称应该与旧项目相同
  • 仍然不知道在这里做什么。甚至不确定您建议我运行什么命令,因为您在步骤 3 中包含的命令是错误的。对不起,伙计。
  • 从你的想法创建新的flutter项目,与当前项目的名称相同,将'ios'文件夹从新项目复制到旧项目,仅此而已,注意你可能需要旧的'Info. plist'文件
  • 对不起,伙计,不知道该怎么做。一切都很简单,并且可以在装有 Android Studio 的 PC 上完美运行。我现在正试图将它移植到 ios 上,这绝对是一场噩梦。这一切以前都运行良好,但只是不会存档。现在它甚至不会运行。老实说,我不知道“根据您的想法创建新的颤振项目”是什么意思。我猜 .idea 是某种文件。不知道这是在哪里或如何使用它。
【解决方案2】:

最后我在另一个论坛找到了解决这个问题的方法:

似乎通过双击 Runner.xcworkspace 而不是 Runner.xcodeproj 打开项目,xcode 终于可以找出所有东西的位置。

我试过这个,它确实有效。现在我的应用程序运行时会出现一个新错误(当然是因为):

malloc: can't allocate region securely

但我会针对那个问题提出一个新问题。

【讨论】:

  • 我想知道您是如何在 mac 上构建如此规模的颤振项目而您不知道info.plist 的位置。如果您不知道它的位置,那么显然您缺少一些包依赖项。
  • 无论如何,我很高兴您找到了解决方案。再见
  • 是的,对不起,伙计,假设它是一个文件,因为它看起来像一个在 android 等效项中是徒劳的文件。讨厌所有与 mac、macos 和 ios 相关的东西。只是,充满了不必要的并发症和问题。一个必要的邪恶,因为他们不会让我在不从 mac 运行的情况下将我的应用程序推送到 ios。另一个讨厌他们所代表的一切的理由。在带有 Android Studio 的 PC 上没有这些问题。感谢您的所有建议。
【解决方案3】:

我以前也遇到过这样的问题。错误是因为我从pubspec.yaml 中删除了一个包依赖项。正如我们所知,删除一个包将删除它从pub.dev 下载的所有颤振文件,但忘记了delete permissionmethod 我手动添加到Info.plistAppDelegate.swift 作为该包的依赖项.

当 Xcode 在 AppDelegate.switf 中看到这个 methods 时,它会搜索所需的文件,但找不到它们,因为该包已从 pubspec.yaml 中删除。

所以交叉检查这 2 个文件的内容是否与需要它们的包匹配。

希望对您有所帮助。

编辑

根据您的pubspec.yaml,它们是一些keys,需要分别添加到您的AndroidManifestinfo.plist 文件中。我假设你没有从你的评论中做到这一点。

Locations

AndroidManifist 位于android/app/src/main/AndroidManifiest.xml info.plist 位于iso/Runner/Info.plist

  1. 对于firebase_admob 包,您需要将以下内容添加到您的AndroidManifest

&lt;meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="[ADMOB_APP_ID]"/&gt;

[ADMOD_APP_ID] 是您的应用 ID。查看firebase_admod,了解如何初始化应用ID以及如何初始化插件

然后您需要将以下内容添加到您的info.plist

<key>GADApplicationIdentifier</key> 

<string>[ADMOB_APP_ID]</string>
  1. 对于screen 0.0.5,您需要将以下权限添加到您的“AndroidManifest”中

&lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt;

  1. 对于image_picker: 0.6.1,您还需要向info.plist 添加一些权限。

将以下键添加到位于 /ios/Runner/Info.plist 中的 Info.plist 文件:

  • NSPhotoLibraryUsageDescription - 描述为什么您的应用需要 照片库的权限。这称为隐私 - 照片 可视化编辑器中的库使用说明。
  • NSCameraUsageDescription - 描述为什么您的应用需要访问 相机。这在可视化编辑器中称为隐私 - 相机使用说明。
  • NSMicrophoneUsageDescription - 描述为什么您的应用需要访问 如果您打算录制视频,请使用麦克风。这称为隐私 可视化编辑器中的麦克风使用说明。

Android 无需配置 - 插件应该开箱即用

  1. 为了避免多余,您需要浏览pubspec.yaml pub.dev 页面中的包,然后按照说明添加所有依赖项以使包正常工作。

我希望你的项目现在编译!

【讨论】:

  • 我根本没有从 pubspec 中删除任何东西,我所有的插件都还在,并且在应用程序中仍然需要。我不知道 info.plist 在哪里,也从未听说过 appdelegate.swift。所以肯定也没有编辑过这些文件。
  • 我们可以看看你的 pubspec.yaml 吗?
  • 当然,伙计,我已将其添加到原始问题中。谢谢。
  • 嗨,伙计,对不起,我很久以前就做过这一切了。正如我最初所说,这几个月都运行良好,这意味着我已经完成了所有这些设置。然后它就停止工作了。
  • 为了逗你开心,我还是查了。这是来自我的 AndroidManifest.xml 文件:
【解决方案4】:

有时我的项目正常工作时也会遇到 ios 编译错误,我创建了一个具有相同名称的干净项目,将我的代码复制到那里,它会变得更好。

如果找不到解决方案,建议您尝试一下。

【讨论】:

  • 问题是我真的不知道如何在 xcode 中执行此操作。在我的真实计算机上,我可以打开所有文件并将它们复制并粘贴到 android studio 中。使用 mac 和 xcode,它实际上无法理解任何自己的文件扩展名,我必须在文本编辑器中打开所有内容,这绝对是系统的噩梦。确实需要能够正确解决此问题。
  • 您是否尝试更改 File->Workspace Settings 并将构建系统设置为 Legacy Build System 或 New Build System ?
  • 你好,Cenk。我一直在研究你的建议,从头开始构建一个基本的应用程序。我构建了原始应用程序,运行它。工作正常。我只将插件添加到我的 pubspec 文件中,所有内容都变成了一大堆。今天我已经解决了许多错误几个小时。每次我解决一个错误,都会出现一个新错误。这是来自一个空白应用程序。这个平台有多不稳定?
  • 文件下也没有“工作区设置”。已将屏幕截图添加到原始问题。
  • 我有最新的 xcode,你的更新根本没有告诉我如何进入这个设置屏幕。正如我在更新中向您展示的那样,我没有这些选项。请参阅上面我原来的问题中的屏幕截图。谢谢。
【解决方案5】:

您绝对不需要清除整个 ios/ 文件夹。

1) flutter clean为什么不这样做

2)rm ios/Podfile.lock

3)rm -rf ios/Pods

4) rm -rf ~/.pub-cache/hosted/pub.dartlang.org/(或您设置的任何地方)

5)flutter packages get

然后运行/构建您的应用程序,但您通常会这样做。

【讨论】:

  • 谢谢@blaneyneil。我的 Mac 上没有任何文件看起来像这样: 4) rm -rf ~/.pub-cache/hosted/pub.dartlang.org/ 但我还是运行了命令。现在我得到与以前完全相同的 autoorientation.h 错误(从 xcode 运行时),但现在在运行 flutter run -v 时,我得到一个新错误,指出“在 build/ 时找不到构建的应用程序包ios/iphoneos/runner.app
猜你喜欢
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2021-08-27
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多