运行项目到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,并确保安装的是完整版本。
---10
相似问题