【问题标题】:Flutter build iOS got error: Requested but did not find extension point with identifierFlutter build iOS 出现错误:已请求但未找到带标识符的扩展点
【发布时间】:2022-06-14 17:18:50
【问题描述】:

我刚升级到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 应用程序,为什么会出现 watchOS 之类的错误?

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

谁能帮帮我?

【问题讨论】:

  • 祝你好运,我也遇到了这个错误。
  • 没有,我发现这个错误在模拟器上随便出现,真机没有这个问题。
  • 您找到问题了吗?
  • 我看到了同样的错误。昨天构建的相同代码。我只提交了一个带有 url 更改的提交。我在尝试构建发行版 ipa 并将其存档时得到了这个。
  • 我今天早上将Xcode升级到13.3,我也遇到了同样的错误,但是当我尝试在MATLAB中配置C编译器时出现了。我不是 macOS/iOS/watchOS 开发人员,所以这个错误让我很困惑。

标签: ios xcode flutter


【解决方案1】:

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

xcrun -sdk iphoneos --show-sdk-path

第一次显示错误。第二次显示正确答案。我用所有三个 sdk、iphoneos、macosx、watchos 运行它,并且第一次都显示了错误。我还使用所有三个 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

xcodebuild 的构建错误在那之后消失了,尽管我不确定哪个命令修复了它。

【讨论】:

  • 在这个命令之后,我在 Flutter 运行 iOS 更新项目以兼容 Xcode 时收到了这条消息。升级 project.pbxproj 升级 Runner.xcscheme
【解决方案2】:

找到解决方案:

  1. 在 App Store 中检查 Xcode 的更新(应该更新 已经,但只是为了确认)
  2. 启动 Xcode;它会要求您安装其他软件。安装完成后,错误就会消失。

【讨论】:

  • 我已经尝试了这个论坛页面上的所有内容......但没有任何效果!更新到 XCODE 13.3 时,我开始收到此错误。现在我根本无法构建应用程序。我该怎么办???
【解决方案3】:

通过运行解决了这个问题。

xcrun -sdk macosx --show-sdk-path 

这会输出你当前的 skd 路径。

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

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

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

来源

source ~/.zshrc

现在运行

 xcrun -sdk macosx --show-sdk-version

【讨论】:

  • 您不需要在“export”行的目标周围加上坟墓符号(反引号)。
  • 我试过了,并没有解决我的问题。
  • 是的,我同意@JustinN,在删除“export”行目标周围的反引号后,我的问题就解决了。
  • @JustinN 你能指定什么是正确的“出口”行
  • 有什么理由不export SDKROOT=$(xcrun -sdk macosx --show-sdk-path)??我不想每年都更新我的 zshrc
【解决方案4】:

为避免对版本进行硬编码,您可以将其添加到您的 .profile:

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

重新加载配置文件(来源您的配置文件的路径)并运行

xcrun -sdk macosx --show-sdk-version

验证

【讨论】:

    【解决方案5】:

    很遗憾,XCode 13.3 出现了这个问题。

    这个答案指出了这一点 - Stackoverflow Answer- Flutter for iOS run, build but not archive

    给出的三个解决方案是

    • 修改代码

    • 降级到 Xcode 13.2.1

    • 等待Apple修改Xcode

    就我自己而言,我使用 CodeMagic,并且没有机会降级我的存档。 XCode 可能需要几个月的时间来更新。所以修改代码是唯一的选择。我能够找到this issue 于 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 时会收到“Out of Memory”错误。将“UI_USER_INTERFACE_IDIOM()”更改为“UIDevice.current.userInterfaceIdiom”可解决该错误。通常使用 - DKImagePickerController/PhotoGallery 的颤振 pod 会出现此问题。

    我能够在不触及任何与手表相关的东西的情况下解决此问题。最重要的是,我确保我的 Flutter 项目的最低支持级别为 12,但这可能完全不相关。

    最终降级可能是解决方案。如果有人对深入了解它感到好奇,我的许多链接也会指向其他解决方案。

    【讨论】:

      【解决方案6】:

      在我的例子中,它的 React Native 应用程序的问题在于可可豆荚。 重新安装 pod 有帮助。在你的项目文件夹下面运行

      rm -rf ios/Pods && npx pod-install
      

      【讨论】:

      • 这个错误不是cocoapods引起的。它是xcodebuild 的输出。
      • @DaumantasVersockas 在我的情况下,它也是 xcodebuild 的输出,它是由 xcode 更新后需要重新安装的 cocoapods 引起的
      • 据我了解,问题可能是由升级的构建系统引起的,它对二进制目标使用不同的名称。如果您更新了已经解决此问题的版本,这是有道理的。 ??
      • 我还在 Xcode 13.4 中使用 react native 并安装 pod 解决了这个问题。
      【解决方案7】:

      好的,刚刚找到了一个听起来可能非常愚蠢的解决方案,但将我的 Mac OS 更新到 Moterey 12.3 解决了这个问题,无需更改代码。

      【讨论】:

        【解决方案8】:

        对我有用的解决方法是安装以前的稳定 Xcode 版本 13.2.1 并从 IDE 构建它。

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

        https://xcodereleases.com/

        【讨论】:

          【解决方案9】:

          检查 Xcode 是否有更新。

          xcode-select --install
          

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

          xcode-select: error: 命令行工具已安装,使用“软件更新”安装更新

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

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

          点击左上角的苹果图标 > 关于本机 > 软件更新(例如,macOS Monterey 12.3)

          【讨论】:

            【解决方案10】:

            如果是颤振项目,以下步骤可能会有所帮助:

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

            【讨论】:

              【解决方案11】:

              在尝试从 Android Studio 运行应用程序时也遇到了这个问题。解决了这个问题...

              • 启动 XCode,
              • 打开 Runner,
              • 从 xcode 运行应用程序,
              • 在 xcode 中停止应用程序, ...然后在 Android Studio 中运行该应用程序并没有出现此错误。

              【讨论】:

              • 好,简单的解决方案,对我有用。
              • 也为我工作。它发生在我测试风味并且无法在模拟器上启动 XCode 生产版本时。我不知道为什么会这样。
              【解决方案12】:
              1. 你可以尝试安装最新的xcode13.3
              2. 那你可以试试xcode-select --install安装命令工具

              【讨论】:

              • 我已经在 Xcode 13.3 中
              • 这是修复。谢谢
              【解决方案13】:

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

              【讨论】:

                【解决方案14】:

                也遇到了同样的问题,我试过@user1503606 和@MCCCS suggestion,可惜没用。

                查看this answer,问题源于 XCode 13.3,正如@y2ducky 建议的那样,降级应该可以解决问题。

                解决方案:

                • 降级到 Xcode 13.2.1(你可以在这里找到旧版本 https://developer.apple.com/download/all/ 然后展开它并将 Xcode (Xcode.app) 移动到 Applications 文件夹,它将替换你当前的 Xcode 13。)
                • 等待 Apple 修改 Xcode

                【讨论】:

                  【解决方案15】:

                  使用 xcode 版本“13.2.1”对我有用。似乎“13.3”正在做一些不同的事情

                  【讨论】:

                    【解决方案16】:

                    这是另一个帮助我解决此问题的方法。转到关于此 Mac -> 存储并在 Xcode 开发人员设置中删除对 watchOS 的支持。

                    【讨论】:

                      【解决方案17】:

                      适用于 xcode 13.3.1,Monterey intel: 将 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 日运行

                      【讨论】:

                        【解决方案18】:

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

                        【讨论】:

                          【解决方案19】:

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

                          我尝试了这个问题中提到的多种解决方案,但都失败了。 所以,我只是尝试从颤振开始项目。它确实构建得很完美。添加一些库后,库开始需要更高的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

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

                          【讨论】:

                            【解决方案20】:

                            这也可能是您的pubspec.lock 文件的问题。某些版本的库可能会尝试使用 Watch Support。那是我的情况。所以,我修复了一些库的版本,然后它运行良好。

                            【讨论】:

                              【解决方案21】:

                              这个解决方案对我有用

                              • 试试 xcode-select --install 如果已经安装了命令行开发工具,请尝试修复它
                              • sudo xcode-select -r

                              【讨论】:

                                【解决方案22】:

                                我在使用 Flutter 3 更新项目时遇到了同样的问题。经过多次尝试,以下解决方案对我有用

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

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

                                另外请确保您使用的是最新的MacOSXcode。 我希望这对其他人有帮助。

                                【讨论】:

                                  【解决方案23】:

                                  我的 Xcode 版本是 13.2,我的 Flutter 版本是 3.0.1 稳定版 我通过降级flutter版本并再次升级

                                  找到了解决方案
                                  1. 打开终端
                                  2. flutter downgrade 并等待该过程完成。完成后,转到第 3 步
                                  3. flutter upgrade 并等待该过程完成。过程完成后重新编译您的项目

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

                                  【讨论】:

                                    【解决方案24】:

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

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

                                    • 根目录/插件/扩展/Xcode.DebuggerFoundation.AppExtensionHosts.watchOS
                                    • 根目录/插件/扩展/Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS

                                    【讨论】:

                                      【解决方案25】:

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

                                      • pub get
                                      • cd ios
                                      • pod install

                                      您现在可以运行该应用了。

                                      【讨论】:

                                        【解决方案26】:

                                        终于找到了解决办法,希望对你有帮助。

                                        将颤振通道从稳定更改为主

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

                                        【讨论】:

                                          【解决方案27】:

                                          这对我有用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
                                          

                                          【讨论】:

                                          • 这与这里有什么关系?
                                          猜你喜欢
                                          • 2022-08-19
                                          • 2022-08-05
                                          • 2022-08-16
                                          • 2022-12-16
                                          • 2022-06-24
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多