运行项目到iOS,Build失败,iOS的版本是18.0,iPhone16

来源:2-5 iOS开发者如何快速上手Flutter开发(二)

__潇湘夜雨__

2024-12-01

Xcode版本是16.1
ios版本是18.0,iPhone16
Flutter的版本是3.24.0
但是Xcode编译失败。
如果是用Xcode直接编译Runner.xcodeproj,是可以编译通过,运行成功的。
老师帮我看一下是什么情况,是Xcode的版本过高导致的吗还是其他情况
截图如下:
图片描述

写回答

1回答

CrazyCodeBoy

2024-12-02

如果 Flutter 已是最新版本但问题仍未解决,请尝试以下详细操作:


---

1. 清理并重新构建项目

执行以下命令清理 Flutter 和 iOS 项目缓存:

flutter clean
rm -rf ios/Pods ios/Podfile.lock ios/.symlinks ios/Flutter/Flutter.framework
flutter pub get
cd ios
pod install
cd ..
flutter run


---

2. 检查 iOS 代码签名配置

Flutter 使用 Xcode 的代码签名设置,如果签名不正确会导致问题:

1. 打开 ios/Runner.xcworkspace。


2. 在 General > Signing & Capabilities 中:

确保勾选 Automatically manage signing。

选择你的团队(Team)。



3. 在 Build Settings 中:

确保模拟器的 CODE_SIGN_IDENTITY 设置为 iOS Developer 或 Don't Code Sign。





---

3. 检查 Run Script Phase

Xcode 的 Run Script Phase 配置可能引发问题:

1. 打开 ios/Runner.xcworkspace。


2. 在项目设置中,找到 Build Phases。


3. 定位到名为 Run Script 的部分。


4. 检查脚本内容是否与 Flutter 项目所需的脚本一致:

"${FLUTTER_ROOT}/packages/flutter_tools/bin/xcode_backend.sh" build


5. 确保勾选了 Based on dependency analysis。




---

4. 解决签名冲突问题

错误日志显示:

Failed to package ... Flutter.framework: replacing existing signature ... not allowed

这表示 Flutter.framework 的签名存在冲突,可能是 iOS 框架重复签名导致。

尝试以下方法解决:

1. 在 ios/Podfile 中,添加以下配置禁用重复签名:

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['EXPANDED_CODE_SIGN_IDENTITY'] = ""
      config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
      config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
    end
  end
end


2. 执行以下命令重新安装 Pods:

cd ios
pod install
cd ..
flutter run




---

5. 针对模拟器设置正确目标

错误日志显示:

Using the first of multiple matching destinations

这是因为模拟器目标存在多个匹配项,Flutter 未正确选择设备。

通过指定模拟器设备运行项目:

flutter run -d <device-id>

使用以下命令查看可用设备 ID:

flutter devices


---

6. 降级模拟器或设备版本

如果使用 iOS 18.0 的模拟器问题依旧,尝试以下操作:

1. 打开 Xcode。


2. 转到 Window > Devices and Simulators。


3. 添加或下载较低版本(如 iOS 17.x)的模拟器。




---

7. 升级 CocoaPods

确保你的 CocoaPods 是最新版本:

sudo gem install cocoapods
pod repo update


---

8. 检查 Xcode 配置

即使 Xcode 是最新版本,仍需确保以下配置:

1. 打开 ios/Runner.xcworkspace。


2. 确保目标版本(Deployment Target)设置正确,建议设置为 iOS 11 或更高版本。


3. 在 Xcode 的 Preferences > Locations 中,检查命令行工具是否正确指向 Xcode 16.1。




---

9. 尝试重新安装 Flutter 和 Xcode

如果以上方法仍未解决问题,可能需要:

1. 卸载并重新安装 Flutter SDK。


2. 卸载并重新安装 Xcode,并确保安装的是完整版本。




---


1
0

慕课甄选-Flutter零基础极速入门到进阶实战

全新Flutter从入门到进阶,实战仿携程网App

661 学习 · 316 问题

查看课程