Flutter iOS 构建失败:DVTCoreDeviceEnabledState_Disabled

回答 18 浏览 2.2万 2023-03-31

flutter build ipa 在使用 Xcode 14.3 和 Flutter 3.7.9 的 macOS v13.3 (Ventura) 上失败。

日志输出:

xcodebuild[83777:409216] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled)

flutter run 在 iOS 模拟器上运行没有问题。

Iceman 提问于2023-03-31
我有同样的错误。我的问题始于缺少文件 libarclite_iphoneos.a (stackoverflow.com/questions/75574268/…),当我应用修复程序时,在模拟器上运行没有问题,但当我尝试构建 ipa 时,会发生此错误。Fabio 2023-04-01
Flutter 现在存在问题: github.com/flutter/flutter/issues/123903Fabio 2023-04-01
18 个回答
#1楼
得票数 42

目前,这是唯一适合我构建 Archive ipa 的解决方案。无需回滚到 Xcode 14.2。

所以现在的解决方案是,打开 ios/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh 文件。

找到这一行:

if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi

修改为

if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink -f "${source}")"
fi

添加 -f 并保存文件。

这对我有用。希望这可以帮助。

Bm Mn 提问于2023-04-05
这个对我有用。仅供参考:以防您的文件不断恢复。不要使用 Android studio 或 Xcode 打开文件。使用TextEdit编辑和保存文件。Tri yulianto 2023-05-27
#2楼
得票数 13

您不需要回滚到 Xcode 14.2。以下步骤在 14.3 版本中对我有用:

  1. 确保您将版本 11 作为目标处理:

    在 podfile 文件中...

    代替

     post_install do |installer|
       installer.pods_project.targets.each do |target|
         flutter_additional_ios_build_settings(target)
       end
     end
    

     post_install do |installer|
       installer.pods_project.targets.each do |target|
         flutter_additional_ios_build_settings(target)
         target.build_configurations.each do |config|
           config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
         end
       end
     end
    
  2. 确保调试包含在 LaunchAction Xcode 架构中。在 Runner.xcscheme 文件中,您需要确保包含类似的内容......

     <LaunchAction
        buildConfiguration = "Debug"
        //...more lines
     </LaunchAction>
    
David L 提问于2023-04-06
Peter Mortensen 修改于2023-04-29
IPHONEOS_DEPLOYMENT_TARGET 本身不起作用,但将 LaunchAction 设置为 Debug 为我解决了问题。Craig Rees 2023-05-12
#3楼
得票数 8

我遇到过同样的问题。 执行flutter upgrade(从版本3.7.9到3.7.10)后,它再次工作。

barbrady 提问于2023-04-12
barbrady 修改于2023-04-12
很好,它对我也有用。我之前使用的是 3.7.7 版本,现在使用的是 3.7.11 版本,没有任何警告/错误消息。注意:我还按照上述答案中 Bm Mn 的建议,使用 Flutter 版本 3.7.7 对 Pods-Runner-frameworks.sh 文件进行了修改,但没有成功。也许这两个答案一起就是解决方案。Coala Jedi 2023-04-17
#4楼
得票数 3

我将构建配置从发布模式更改为调试模式,并且构建成功。

您可以从 Xcode 更改构建配置。转到产品选项,然后方案。编辑方案,在下拉菜单中把它改为调试。

Kiumars Chalangi 提问于2023-04-23
Peter Mortensen 修改于2023-04-29
#5楼
得票数 2

将 Flutter 升级到 3.7.12,然后将构建配置从发布模式更改为调试模式。之后,iOS 模拟器应该可以工作了。

感谢 Kiumars 的回答

Kasidit Phuttawajana 提问于2023-04-24
Peter Mortensen 修改于2023-04-29
#6楼 已采纳
得票数 1

下载 Xcode 14.2 版本,您可以使用 Xcode Select 来实现此目的。

Carlos Luan 提问于2023-04-01
Cyril 修改于2023-04-08
#7楼
得票数 1

我遇到了这个错误,我按照以下步骤修复了它:

  1. 首先我删除了 Xcode 14.3
  2. 我下载了 Xcode_14.2
  3. 安装了它
Juan Zubiria 提问于2023-04-03
Peter Mortensen 修改于2023-04-29
14.2 的链接现在似乎是 download.developer.apple.com /Developer_Tools/Xcode_14.2/...Nick 2023-04-04
#8楼
得票数 1

就我而言,有两种方法对我有用。第一种方法是将 Xcode (14.3) 回滚到 (14.2)。第二种方式是将Flutter升级到3.7.12,然后打开ios/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh文件。找到这一行

if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi

将其更改为:

if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink -f "${source}")"
fi
figureAi 提问于2023-04-21
Peter Mortensen 修改于2023-04-29
#9楼
得票数 1

将 cocoapods 更新到 1.12.1 为我解决了这个问题。

domfz 提问于2023-05-25
#10楼
得票数 0

您可以在 Xcode 中构建 iOS 应用程序,它会给您有关错误的更具体原因。

就我而言,原因是 ruby​​ 语言的方法名称已更改。

enter image description here

我通过将 ReadDotEnv.rb 中的 exists 修改为 exist 修复了该错误。 (.../ios/.symlinks/plugins/flutter_config/ios/Classes/ReadDotEnv.rb)

  if File.exist?("#{envs_root}../.envfile")
    envFilePath = "#{envs_root}../.envfile"
  elsif File.exist?("#{envs_root}/.envfile")
    envFilePath = "#{envs_root}.envfile"
debug_ing 提问于2023-04-05
#11楼
得票数 0

您可以通过升级 Flutter 版本来解决该问题。以下是 Xcode 14.3 官方修复的更改日志。

这里

nifesi 提问于2023-04-17
#12楼
得票数 0

我将频道更改为 master 并运行flutter upgrade。并重新更改为stable channel并再次运行flutter upgrade。之后,我的构建运行良好。

mahan 提问于2023-04-10
Peter Mortensen 修改于2023-04-29
#13楼
得票数 0

就我而言,我使用的是 Flutter 版本 3.7.1,升级到 3.7.12 解决了这个问题。

Thobias Silva 提问于2023-04-26
Peter Mortensen 修改于2023-04-29
#14楼
得票数 0

检查您的 pod 是否正确安装,如果您忘记为 ios 应用程序安装 pod,则可能会发生这种情况

schn 提问于2023-05-03
通过额外的支持信息可以改进您的答案。请编辑添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何撰写良好答案的更多信息。Community 2023-05-03
#15楼
得票数 0

这个建议对我有用:

在 podfile 文件中...

代替

 post_install do |installer|
   installer.pods_project.targets.each do |target|
     flutter_additional_ios_build_settings(target)
   end
 end

 post_install do |installer|
   installer.pods_project.targets.each do |target|
     flutter_additional_ios_build_settings(target)
     target.build_configurations.each do |config|
       config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
     end
   end
 end

并将支持的平台更改为此 在此处输入图像描述

Tomdwipo 提问于2023-06-11
Tomdwipo 修改于2023-06-12
#16楼
得票数 0

原来,如果你需要同意程序许可协议(PLA)https://appstoreconnect.apple.com/的更新,你会得到这个错误

如果您在 XCode 中打开应用程序,您将在选择开发团队的屏幕上看到有关此问题的红色错误文本。接受许可证并在XCode中单击“重试...”后,它在IntelliJ中正常编译。

Magnus 提问于2023-06-20
#17楼
得票数 -1

运行:

Flutter clean

或者从 Xcode build clean也可以。

Paras Rai 提问于2023-04-24
Peter Mortensen 修改于2023-04-29
在什么背景下?从命令行?这不会导致Command 'Flutter' not found吗?Peter Mortensen 2023-04-29
#18楼
得票数 -1

出现此问题是因为您将 Xcode 更新到版本 14.3

要解决此问题,您必须通过以下命令将 flutter 升级到版本 3.7.1:

$ cd flutter
$ git checkout 3.7.1
$ flutter build ipa
SwiftiSwift 提问于2023-05-11