Flutter build iOS 得到错误: 请求但没有找到带标识符的扩展点

我刚刚升级到 Xcode 13.3-beta,运行一个 flutter 项目得到了这个错误:

Error output from Xcode build:
↳
2022-03-02 17:45:38.148 xcodebuild[62848:6695836] Requested but did not find extension point with identifier
Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in
com.apple.dt.IDEWatchSupportCore
2022-03-02 17:45:38.148 xcodebuild[62848:6695836] Requested but did not find extension point with identifier
Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of
plug-in com.apple.dt.IDEWatchSupportCore
** BUILD FAILED **

现在,我很困惑,我正在模拟器上运行一个 iOS 应用程序,为什么要排除像 watch OS 这样的错误呢?

我完全不知道如何解决这个错误。

有人能帮我吗?

67748 次浏览

就我而言,它的“反应原住民”应用程序的问题在于可可豆荚。 重新安装 pods 很有帮助。请在下面的项目文件夹中运行

rm -rf ios/Pods && npx pod-install
  1. 您可以尝试安装最新的 xcode13.3
  2. 然后您可以尝试 xcode-select --install来安装命令工具

A workaround that worked for me was to install the previous stable Xcode version 13.2.1 and build it from the IDE.

您可以安装多个版本,因此不必更改当前设置中的任何内容。

Https://xcodereleases.com/

通过运行修正了这个问题。

xcrun -sdk macosx --show-sdk-path

这将输出当前的 skd 路径。

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk

将此文件添加到您的. zhrc 文件中。

export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk

找出来

source ~/.zshrc

快跑

 xcrun -sdk macosx --show-sdk-version

好吧,刚刚找到一个解决方案,可能听起来超级愚蠢,但更新我的 Mac 操作系统到 Moterey 12.3解决了这个问题,没有改变所需的代码。

找到解决办法:

  1. 检查应用程序商店中 Xcode 的更新(它应该被更新 但只是为了确认)
  2. 启动 Xcode; 它会要求您安装其他软件。安装完成后,错误将消失。

检查 Xcode 是否有一些更新。

xcode-select --install

如果您从上面的命令得到下面的消息,请尝试:

错误: 命令行工具已经安装,请使用“软件更新”来安装更新

  sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

另外,您应该检查是否有可用的 macOS 更新。

点击左上角的 Apple 图标 > About this mac > Software update (例如,macOS Monterey 12.3)

这对我来说很有效。这是一个 https://github.com/nvm-sh/nvm/issues/2764 我跑:

➜  ~ source ~/.nvm/nvm.sh
➜  ~ nvm deactivate
/Users/username/.nvm/*/bin removed from ${PATH}


➜  ~ source ~/.nvm/nvm.sh

好吧,非常奇怪,但是多次运行 xcrun 似乎可以解决这个问题。我最近也更新到了 Xcode 13.3。

xcrun -sdk iphoneos --show-sdk-path

第一次显示错误时。第二次显示正确答案。我运行了所有三个 sdks,iphoneos,macosx,手表和所有显示错误的第一次。我还运行了所有三个 sdks 的五个选项:

xcrun -sdk iphoneos --show-sdk-path
xcrun -sdk iphoneos --show-sdk-version
xcrun -sdk iphoneos --show-sdk-build-version
xcrun -sdk iphoneos --show-sdk-platform-path
xcrun -sdk iphoneos --show-sdk-platform-version

The build error from xcodebuild went away after that, although I'm not certain which of the commands fixed it.

我也遇到了同样的问题,我试了@user1503606和@MCCCS建议,可惜都没有成功。

看看 这个答案,这个问题源于 XCode 13.3,正如@y2ducky 所建议的那样,降级应该会解决这个问题。

解决方案:

  • Downgrade to Xcode 13.2.1 (you can find older versions here https://developer.apple.com/download/all/ then expand it and move Xcode (Xcode.app) to Applications folder, which will replace your current Xcode 13.)
  • 等待苹果修改 Xcode

使用 xcode 版本“13.2.1”对我来说很有用,看起来“13.3”做了一些不同的事情

To avoid hard coding the version you can add this to your .profile:

export SDKROOT=$(xcrun -sdk macosx --show-sdk-path)

重新加载配置文件(源 你的侧写路径)并运行

xcrun -sdk macosx --show-sdk-version

来核实

XCode 13.3就有这个问题。

这是由这个答案指出的-Stackoverflow 答案-iOS 运行时的颤动,构建但不存档

给出的三种解决方案是

  • Modify the code

  • 降级到 Xcode 13.2.1

  • 等待苹果修改 Xcode

对于我自己,我使用 CodeMagic,并且没有奢侈的降级我的 Archive。XCode 的更新可能需要几个月的时间。所以修改代码是唯一的选择。我找到了2022年3月15日开放的 这个问题。最终有了这个解决方案。.

打开您的 Podfile 并粘贴 pod“ dkimagePickerController/photoGallery”,: git = > “ https://github.com/miguelpruivo/DKImagePickerController.git”,如下所示:

`target 'Runner' do
use_frameworks!
use_modular_headers!
#Workaround for segmentation fault:11 while archiving
#Add the below line
pod 'DKImagePickerController/PhotoGallery', :git => 'https://github.com/miguelpruivo/DKImagePickerController.git'


flutter_install_all_ios_pods File.dirname(File.realpath(FILE))
end`

是的,我知道你的错误说你的错误是通过 WatchOS。然而,据我所知,这是 Xcode 版本13.3中出现的问题。在 Xcode 13.3中,如果您有一个使用 UI _ USER _ INTERFACE _ IDIOM ()的代码,那么当您运行 Archive 时,您将得到一个“内存不足”错误。将“ UI _ USER _ INTERFACE _ IDIOM ()”更改为“ UIDvice.current.userInterfaceidiom”可以解决此错误。这个问题通常发生在使用-DKImagePickerController/PhotoGallery 的颤振吊舱上。

我能在不碰任何与手表相关的东西的情况下解决这个问题。最重要的是,我确保我的颤振项目有一个最低支持水平为12,然而,这可能是完全不相关的。

最终,降级可能是解决方案。同样,如果有人好奇的话,我的许多链接也会指向其他的解决方案。

运行命令 sudo xcode-select -s /Applications/Xcode.app

在 Android 工作室运行应用程序时也遇到了这个问题,解决方法是..。

  • 启动 XCode,
  • 打开传送门,
  • 从 xcode 运行应用程序,
  • stop the app in xcode, 然后它可以很好地运行这个应用程序,而不会出现 Android Studio 的这个错误。

这是另一个帮助我解决这个问题的方法。转到关于这个 mac-> 存储和删除在 Xcode 开发人员设置的支持 watch 操作系统。

使用 xcode 13.3.1,蒙特雷英特尔: 降级 Flutter sdk 到 Flutter-> 2.10.0 Dart-> 2.16.0

可在此下载: Https://docs.flutter.dev/development/tools/sdk/releases?tab=macos

用 flutter —— version 更改终端中的有效 sdk 路径

这包括新项目。

2022年5月1日

重新启动 iPhone 为我解决了这个问题。

我带来了另一个解决方案。

我尝试了这个问题中提到的多种解决方案,但都失败了。 所以,我刚刚尝试从颤振启动项目。它的确造得很完美。在添加了一些库之后,库开始需要更高的 ios 版本。

我通常像这样用 Podfile 升级 ios 版本,

# Uncomment this line to define a global platform for your project
platform :ios, '12.0'

但是,我没有这样做,而是根据这个链接用 Runner.xcworkspace 和 ios/Flutter/AppframeworkInfo.plist 升级了 ios 版本。 Https://docs.flutter.dev/deployment/ios#review-xcode-project-settings

在那之后,我终于成功地建立了一个项目。

这也可能是 pubspec.lock文件的问题。某些版本的库可能试图使用监视支持。那是我的案子。所以,我修改了一些库的版本,然后它工作得很好。

This solution worked for me

  • 尝试 xcode-select —— install 如果命令行开发人员工具已经安装,请尝试通过
  • Sudo xcode-select-r

如果它是一个颤动的项目,下面的步骤可能会有所帮助:

  • Update MacOS
  • 更新 Xcode 和命令行工具
  • 在项目文件夹中运行 flutter pub upgradeflutter pub get
  • 删除项目的 ios 文件夹中的 podfile.lock
  • 在项目文件夹中运行 cd iospod repo updatepod install

I faced the same problem when updating the project with Flutter 3. After several attempts, 下面的解决方案对我很有效.

我已经删除了 ios文件夹中的 podfile.lock文件,然后运行以下命令。

  1. flutter pub upgrade
  2. flutter pub get
  3. cd ios
  4. 实际上,这对我来说是个错误,但我忽略了它
  5. pod install

还请确保您使用的是最新的 MacOSXcode。 我希望这能帮到别人。

My Xcode 版本是13.2 and my Flutter version is 3.0.1 stable I found the solution by downgrading flutter version and upgrading again

  1. 打开终端
  2. flutter downgrade and wait for the process to finish. Once done, go to step 3
  3. 等待过程结束。当过程结束时重新编译您的项目

。我希望这个解决方案可以帮助人们与类似的问题!

文件 /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Xcode/PrivatePlugIns/IDEWatchSupportCore.ideplugin/Contents/Resources/IDEWatchSupportCore.xcplugindata中有一个错误

您应该进行备份,然后在 plist 编辑器中打开它,并完全删除以下项目:

  • Root/plug-in/ Xcode. DebuggerFoundation. AppExtensionHosts.watch OS
  • Root/plug-in/ Xcode. DebuggerFoundation. AppExtensionToBundleIdentifierMap.watch OS

经过几天在网上尝试所有的解决方案。我最终删除了项目中的 ios 文件夹,并使用 flutter .再次创建了它 然后打开终端,进入项目并执行以下操作。

  • pub get
  • cd ios
  • pod install

你现在可以运行应用程序了。

最后,我找到了解决的办法,希望这对你有所帮助。

将颤振通道从稳定变为主通道

code@kazus-MacBook-Air ios %flutter channel master
code@kazus-MacBook-Air ios %flutter channel
Flutter channels:
* master
beta
stable

enter image description here

可能是这样的:

试着关掉你的苹果手表。我知道... 我知道。我忽略它很长一段时间,然后深入挖掘日志、错误消息、研究等。

当构建手表时,设备名称的格式会发生变化,有时可以挂起 Flutter 工具,因为——嗯,因为它们是垃圾,没有考虑到这一点。

我基本上就是不能使用我的苹果手表当我建立在扑动(有时) ,喜欢所有。我必须把它彻底关掉。

在您获得一个成功的构建之后,您可能无法重新打开它并使构建成功。只是碰运气而已。

我每隔几周就会遇到这个问题,而且100% 的情况下,都是我的 Apple Watch 在运行,改变 Flutter 读取的构建目标,大概是通过 Xcode。

耸耸肩

In my case it was as simple as a new location added to assets within pubspec.yaml


assets:
- assets/images/
- assets/images/icons # this line broke the whole project because of a missing /


对我的案例有帮助的是运行最新版本(版本: 13.4.0.0.1.1651278267)的 update Xcode CLI ) ,只显示-所有-安装-力量:

softwareupdate --all --install --force

我也遇到过同样的问题,我可以通过从包文件夹中手动删除图像选择器新的包,并将图像选择器包的版本设置为 image _ picker: 0.8.4来解决这个问题,希望它能有所帮助,也许如果你能分享所有的错误信息,那么我可以帮助你。

我找到的解决办法是:

转到 https://developer.apple.com/download/all/

搜索: 命令行工具 | 下载我的 Xcode 版本13.4.1

正常安装包,安装后打开 xcode 并再次尝试 Build。

= = > Open Xcode

==> Go to Build Setting


==> Filter with FLUTTER_ROOT

==> Change FLUTTER_ROOT PATH (Put Flutter Sdk Path)

==> Flutter Clean

= = > Flutter Build IOS

在我的情况下,这是我的错误

Error output from Xcode build:
↳
2022-05-18 15:24:19.369 xcodebuild[2195:13656] Requested but did not find extension point with identifier
Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of
plug-in com.apple.dt.IDEWatchSupportCore
2022-05-18 15:24:19.369 xcodebuild[2195:13656] Requested but did not find extension point with identifier
Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension
Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
** BUILD FAILED **


/Users/user/flutter/packages/flutter_tools/bin/xcode_backend.sh:12: parse error near `('
Command PhaseScriptExecution failed with a nonzero exit code

我怀疑 /Users/user/flutter/packages/flutter_tools/bin/xcode_backend.sh:12

原创内容:

...
function follow_links() (
...
)


PROG_NAME="$(follow_links "${BASH_SOURCE[0]}")"
...

我把它改成

...
function follow_links() {
...
}


PROG_NAME="$(follow_links "$0")"
...

那么构造就是 成功

我的结论是“ Error output from Xcode build”只是一个警告。 错误是由于其他原因造成的。 在我的情况下,它是在 xcode_backend.sh

如果出现这样的错误,

错误: 无法在声音空安全的情况下运行,因为下列依赖项 don't support null safety:

运行此命令 flutter run --no-sound-null-safety

当 xcode select 没有链接到 CommandLineTools 时,xcode 就会出现这个问题 运行以下命令链接它

// reset to the default command line tools path
xcode-select -r


// Link xcode-select with CommandLineTools
sudo xcode-select -s /Library/Developer/CommandLineTools

If that not working. Maybe problem from the keychain is not unlock.

你需要解开它

security unlock-keychain

或者有密码

security unlock-keychain -p <password>

Hope this way can help you, thanks.

在我的例子中,我只在一个项目中出现了这个错误。

The solution was to open Xcode, go to 目标-> 建立阶段-> 运行脚本. Disable or delete run scripts if any.

对我来说,起作用的是

  1. 删除 pubspec.lock
  2. 删除 Podfile.lock
  3. 飞得很干净
  4. 摇摆建造输入输出系统

首先确保 dart:htmldart:js包没有在任何文件中使用。如果您看到其中一个包正在被使用,请删除它并构建项目。

如果一切正常,执行以下命令来解决这个问题:

首先删除命令行工具

sudo rm -rf /Library/Developer/CommandLineTools

重新安装 CommandLineTools

xcode-select --install

选择 CommandLineTools

sudo xcode-select -s /Library/Developer/CommandLineTools