You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter应用自动签名模式下无法部署至实体iPhone设备的问题求助

解决Flutter自动签名部署实体iPhone失败的问题

作为刚从Android转Flutter的开发者,遇到iOS构建循环和签名问题确实挺闹心的,我结合你提供的错误信息和尝试过的方法,给你几个针对性的解决方案:

1. 先解决「Cycle inside Runner」构建循环错误

这个错误是导致构建失败的核心原因,提示里明确说有一个复制命令把Runner.app复制到了自身目录下(Runner.app/Runner.app),属于循环引用问题。你可以这么处理:

  • 打开ios/Runner.xcworkspace一定要用这个文件,不是xcodeproj
  • 在Xcode左侧选中Runner target,切换到「Build Phases」标签页
  • 依次检查「Copy Bundle Resources」「Copy Files」「Embed Frameworks」这几个阶段:
    • 看看有没有重复添加的Runner.app条目,或者路径指向错误的复制命令,直接删掉这个有问题的条目
    • 如果找不到明显的重复项,也可以尝试删除「Copy Files」阶段里所有和Runner.app相关的内容(如果有的话)

2. 统一iOS部署目标版本,消除版本警告

你的Pod里有两个依赖(Reachability、MTBBarcodeScanner)还在使用iOS 8.0作为部署目标,而你的Xcode只支持9.0-14.5.99,这会导致警告甚至构建异常,修改Podfile来统一版本:

  • 打开项目根目录下的ios/Podfile
    • 取消注释第一行的platform :ios, '9.0',把全局部署目标设为9.0
    • 修改post_install代码块,确保所有Pod的部署目标都强制设为9.0(不要用delete,而是直接赋值):
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'] = '9.0'
    end
  end
end
  • 打开终端,进入项目的ios目录,执行以下命令更新Pods:
pod deintegrate
pod install

3. 调整构建系统和签名设置,适配Android Studio的自动构建

你之前切换传统构建模式没用,反而Android Studio提示用新构建系统,那我们改回默认的新构建系统:

  • 在Xcode里,点击顶部菜单「File」>「Workspace Settings」
  • 把Build System设置为「New Build System(Default)」,然后关闭Xcode
  • 手动删除路径ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings(这个是之前切换传统模式生成的配置文件)
  • 回到Android Studio,执行flutter clean清理缓存
  • 再检查Xcode的签名设置:重新打开Runner.xcworkspace,选中Runner target的「Signing & Capabilities」标签,确认「Automatically manage signing」已勾选,并且Team选择的是你的开发团队(VU929CKC2Q)

4. 最后验证设备兼容性

确保你的实体iPhone的iOS版本在9.0-14.5之间(因为你的Xcode支持的范围是这个),如果设备系统版本太高,可能需要升级Xcode到最新版本。

完成以上步骤后,回到Android Studio重新点击「运行」,应该就能正常部署到实体iPhone了。

内容的提问来源于stack exchange,提问作者Gob

火山引擎 最新活动