我无法解决“无法为模拟器构建应用程序”的问题。 '

时间:2021-07-20 01:31:56

标签: ios xcode flutter dart

昨天,我创建了一个名为 sample1 的 flutter 项目。 我工作得很好。 但是当我今天尝试打开该文件并尝试运行它时,出现错误。

日志说

Running "flutter pub get" in sample1...                            603ms
Launching lib/main.dart on iPhone 8 in debug mode...
Running pod install...                                           1,313ms
Running Xcode build...                                                  
Xcode build done.                                           11.8s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳

    Command PhaseScriptExecution failed with a nonzero exit code
    note: Using new build system
    note: Building targets in parallel
    note: Planning build
    note: Analyzing workspace
    note: Constructing build description
    note: Build preparation complete
    warning: Capabilities for Signing & Capabilities may not function correctly because its entitlements use a placeholder team ID. To resolve
    this, select a development team in the Runner editor. (in target 'Runner' from project 'Runner')

Could not build the application for the simulator.
Error launching application on iPhone 8.

我想我已经尝试了这里写的所有内容,除了像

pub upgrade
pub run

因为它说

zsh: command not found: pub

Could not build the application for the simulator. Error launching application on iPhone 11 Pro Max

安卓版本运行良好。 请帮助我。 谢谢

编辑** 我刚刚创建了一个新项目,它似乎运行良好,但我担心下次打开它时将无法运行。

4 个答案:

答案 0 :(得分:3)

在此之前,您首先需要在所需的 iOS 设备或模拟器上运行成功的 Xcode 构建直接从 Xcode

如果您已成功完成此操作,请转至:the instructions to run with Hot Reload⚡️ on iOS from VsCode & Android Studio

如果没有 - 按照这 8 个步骤来构建和运行你的 Xcode ->

1.打开 Xcode - 执行所有经典设置(使用您的 dev account 作为团队登录并选择唯一的捆绑标识符)

S.Shot Xcode Signing & Capabilities

2. 如果您的 Mac 上没有安装 cocoapods

来自终端 cd ~

然后:对于 M1 Mac 运行以下:

arch -x86_64 sudo gem install ffi
sudo gem install cocoapods

对于 intel macs 只需运行:

sudo gem install cocoapods

3.现在一旦你在你的机器上安装了 cocoapods
cd yourflutterprojectroot

flutter clean
flutter pub get

4.更新和安装 Pod:

对于 M1 Mac

cd ios
arch -x86_64 pod update
pod install
arch -x86_64 pod update

对于英特尔 mac:

cd ios
pod update
pod install
pod update

5.连接你的 iPhone(如果你想在真机上运行)

在您的 iPhone 设置中 - 将自动锁定设置为从不(并解锁它!) - 将您的 iPhone 或 iPad 连接到 Mac 使用 USB 数据线并在 iPhone 上接受提示“信任计算机” >

S.Shot iPhone Prompt


6.从 Xcode 运行 Xcode Build 确保选择您的设备或模拟器

Select device in Xcode & Run

运行此警报后应提示选择Ok

S.Shot Xcode Could not Launch "Runner"

如果此警报没有提示并且构建完全失败 尝试设置您的 Runner > Info > Configurations like this 但首先尝试查看您是否可以执行第 7 步 - 如果可以,请不要执行改变什么


7.在您的 iPhone 设置 > 常规 > 将出现一个新菜单 - 导航到它并点击“验证应用”或“接受”

Developer iPhone Settings

8.现在再次运行 Xcode Build - 它应该构建

Xcode 构建完成

??✨



现在 -

你已经成功地完成了所有事情??✨ - 恭喜 - 成功了 -

  • 但是,如果您想从 VSCode 或 Android Studio直接运行该怎么办?

这篇文章会很长 - 所以我对第二个问题的答案分开了:

find here the instructions to run with Hot Reload⚡️ on iOS from VsCode & Android Studio

在那里见! (如果对您有帮助,请务必对这部分进行投票)


答案 1 :(得分:0)

您应该尝试去 flutter/bin/cache 删除 bin 文件夹中的缓存文件夹,然后运行 ​​flutter upgrade 然后 flutter doctor 并重新运行您的应用

答案 2 :(得分:0)

运行像 flutter pub upgrade 这样的命令,而不仅仅是 pub upgrade。

答案 3 :(得分:0)

<块引用>

你的第一个问题是关于在 iOS 上运行你的 Flutter 应用 - 你已经在 running your first Xcode Build :)

现在 - 我将回答 VSCode 和 Android Studio - 你的第二个问题:

我如何运行我的 Flutter 应用程序在真正的 iOS 设备或模拟器上热重载 ⚡️?

要开始使用,您首先需要按照 my first answer 中的说明运行 成功的 Xcode Build - 直接从 Xcode


完成后,请按照以下步骤操作:


    • 确保您的设备仍处于连接和解锁状态 - 在终端中运行 flutter devices

它会告诉您是否检测到您的设备或模拟器(应该是因为您刚刚完成了成功的 Xcode 构建)


  1. 在 VsCode 或 Android Studio 中打开您的 Flutter 项目并确保您的设备仍处于解锁状态 - 仅当您想在模拟器上运行时才打开一个新模拟器

使用终端命令进行第一次热重载⚡️ :

在你的 Flutter 项目根目录中运行 flutter run 要么 运行flutter run -d yourDeviceID 如果它不直接在您的 iOS 设备或模拟器上运行

您将在此处找到您的 iOS 设备 ID:

Picture of Menu to find Device ID

选择Add Additional Simulators

Picture Device ID

第一次运行flutter runflutter run -d yourDeviceID后会提示错误

Error Allow Developer to open App

Cancel 并转到您的 Mac > 系统偏好设置 > 安全和隐私 - 并允许文件执行

Security & Privacy Screen

然后稍等片刻,应用可能会自行启动或再次尝试flutter runflutter run -d yourDeviceID

成功后,您现在可以通过在终端中按 r 来使用热重载

  • 在 VsCode 或 Android Studio 中保存时热重载 - 按照以下说明进行操作:

HotReload Tab

热重载⚡️使用 VsCode :

F8 或在 main.dart 中选择 ▷ « 开始调试 »

就是这样!您现在可以在 物理 设备上使用 VsCode 进行 Hot Reload⚡️ 的强大功能! ??

Android Studio 上的热重载⚡️:

选择您的 iOS 设备并运行 (如果您正确地遵循了所有内容,它应该会出现)