iOS 构建失败并显示“ld:无法生成位码包”

dhs*_*gml 6 ios bitcode flutter codemagic

使用 CodeMagic 构建 iOS 时出现以下错误。

\n
    Running Xcode build...                                          \nXcode archive done.                                         14.3s\nFailed to build iOS app\nError output from Xcode build:\n\xe2\x86\xb3\n    ** ARCHIVE FAILED **\n\n\nXcode\'s output:\n\xe2\x86\xb3\n    Writing result bundle at path:\n        /var/folders/m7/h1mg7c7x40ddjz6mxjxm3htr0000gn/T/flutter_tools.o4LK5x/flutter_ios_build_temp_dirDQZb2l/temporary_xcresult_bundle\n\n    ld: bitcode bundle could not be generated because \'/Users/builder/programs/flutter_2_10_1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_armv7/Flutter.framework/Flutter\' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build file \'/Users/builder/programs/flutter_2_10_1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_armv7/Flutter.framework/Flutter\'\n    clang: error: linker command failed with exit code 1 (use -v to see invocation)\n    note: Using new build system\n    note: Planning\n    note: Build preparation complete\n    note: Building targets in dependency order\n    /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 15.2.99. (in target \'FMDB\' from project \'Pods\')\n\n    Result bundle written to path:\n        /var/folders/m7/h1mg7c7x40ddjz6mxjxm3htr0000gn/T/flutter_tools.o4LK5x/flutter_ios_build_temp_dirDQZb2l/temporary_xcresult_bundle\n\n\nError (Xcode): Bitcode bundle could not be generated because \'/Users/builder/programs/flutter_2_10_1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_armv7/Flutter.framework/Flutter\' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build file \'/Users/builder/programs/flutter_2_10_1/bin/cache/artifacts/engine/ios/Flutter.xcframework/ios-arm64_armv7/Flutter.framework/Flutter\'\n\nEncountered error while archiving for device.\n
Run Code Online (Sandbox Code Playgroud)\n

为了解决这个问题,我在project.pbxproj中将ENABLE_BITCODE值更改为YES,但出现了同样的错误。

\n
97C147071CF9000F007C117D /* Release */ = {\n        isa = XCBuildConfiguration;\n        baseConfigurationReference = 7AFA3C8E1D35SGSDC0083082E /* Release.xcconfig */;\n        buildSettings = {\n            ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n            CLANG_ENABLE_MODULES = YES;\n            CURRENT_PROJECT_VERSION = 4;\n            DEVELOPMENT_TEAM = 56KC6SGDDR;\n            ENABLE_BITCODE = YES;\n            INFOPLIST_FILE = Runner/Info.plist;\n            LD_RUNPATH_SEARCH_PATHS = (\n                "$(inherited)",\n                "@executable_path/Frameworks",\n            );\n            PRODUCT_BUNDLE_IDENTIFIER = com.aaa.bbbMarket;\n            PRODUCT_NAME = "$(TARGET_NAME)";\n            SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";\n            SWIFT_VERSION = 5.0;\n            VERSIONING_SYSTEM = "apple-generic";\n        };\n        name = Release;\n    };\n
Run Code Online (Sandbox Code Playgroud)\n

下面是我用于构建 iOS 的 CodeMagic 设置。\n我在 CodeMagic 中的设置

\n

我们的应用程序已经首先使用 xcode 构建并更新到苹果商店,我们现在正在设置额外的 CI/CD。

\n

我该如何解决这个问题?任何帮助将不胜感激。谢谢。

\n

Mik*_*rev 5

我认为解决方案是相反的,您需要禁用位码,因为 Flutter 不使用它。您可以通过将 Podfile 编辑为如下内容来完成此操作:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |build_configuration|
      build_configuration.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到更多详细信息https://github.com/flutter/flutter/issues/78589