2

我没有用于 Flutter 开发的 mac,所以我使用 codemagic。在我构建应用程序时出现错误。我搜索了很多次,但没有找到原因。我不知道“存档失败”是什么意思有人可以帮助我。

note: Build preparation complete
/Users/builder/clone/ios/Pods/Pods.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target 'OrderedSet' from project 'Pods')
/Users/builder/clone/ios/Pods/Pods.xcodeproj: warning: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.5.99. (in target 'Flutter' from project 'Pods')

无法构建 iOS 应用 Xcode 构建的错误输出:↳ ** ARCHIVE FAILED **

Xcode 的输出:↳ ld: 无法生成位码包,因为 '/Users/builder/programs/flutter_2_2_1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-armv7_arm64/Flutter.framework/Flutter' 构建时没有完整的位码。位码的所有框架和 dylib 必须从 Xcode 存档或安装构建文件“/Users/builder/programs/flutter_2_2_1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-armv7_arm64/Flutter.framework/Flutter”生成clang:错误:链接器命令失败,退出代码 1(使用 -v 查看调用) 注意:使用新的构建系统 注意:并行构建目标 注意:规划构建 注意:分析工作空间 注意:构建构建描述 注意:构建准备完成 /用户/builder/clone/ios/Pods/Pods.xcodeproj:警告:iOS 部署目标' IPHONEOS_DEPLOYMENT_TARGET' 设置为 8.0,但支持的部署目标版本范围为 9.0 到 14.5.99。(在项目“Pods”的目标“OrderedSet”中)/Users/builder/clone/ios/Pods/Pods.xcodeproj:警告:iOS 部署目标“IPHONEOS_DEPLOYMENT_TARGET”设置为 8.0,但支持的部署目标版本范围为9.0 至 14.5.99。(在项目“Pods”的目标“Flutter”中)

4

1 回答 1

0

正如错误消息所述,问题在于您的项目中设置了多个相互矛盾的部署目标。最有可能:您的应用程序声明支持 iOS 8 及更高版本(我认为这仍然是空白/示例 Flutter 应用程序附带的),但您使用的一些插件仅支持 iOS 9。

解决方案:

  1. 确定您需要/想要支持的版本。在撰写本文时,iOS 14 已经发布,iOS 15 已经发布。苹果官方建议开发者支持最新的两个版本。但是,在实践中,您可能需要支持最后的 3-4 个版本。因此,iOS 9+ 绝对足够,但甚至可能与 11+ 一起使用。

  2. 在您的PodFile(位于您的应用程序的/ios文件夹中):

platform :ios, '8.0' 根据您的需要查找并设置号码。

  1. project.pbxproj文件/ios/Runner.xcodeprojec夹中的文件中:

查找所有IPHONEOS_DEPLOYMENT_TARGET = 8.0;行并在此处设置数字。

  1. 或者,如果您仍然有问题,请将其添加到 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['ENABLE_BITCODE'] = 'NO'
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
    end
  end
end

这将确保正确设置所有目标(而不是第 3 步)。另外,它将禁用位码生成,这可能是 Codemagic 的问题,如本文所述。

于 2022-02-01T10:27:35.593 回答