Xcode 16 中包含位码的框架的资产验证失败

问题描述 投票:0回答:1

enter image description here我正在尝试分发使用针对 iOS 18 的 Xcode 16 构建的 iOS 应用程序,但由于某些框架中与位码相关的资产验证错误,上传到 App Store 失败。

错误消息:

  1. 无效的可执行文件:可执行文件“Runner.app/Frameworks/CardinalMobile.framework”包含位码。 (ID:46cd66e0-569f-4b82-b196-2e2114a7cd77)
  2. 无效的可执行文件:可执行文件“Runner.app/Frameworks/PPRiskMagnes.framework”包含位码。 (ID:67ec9477-c6fa-4fba-a5a3-29ebbf92d8e3)

问题: 在 iOS 18 和 Xcode 16 上分发包含带有位码的第三方框架的应用程序时,如何解决这些资产验证错误?此环境中的位码是否存在已知的兼容性问题,或者我应该遵循的具体步骤来解决此问题?

任何建议或指导将不胜感激。谢谢!

我已经尝试过以下方法但没有成功:

  • 在项目的构建设置中禁用 Bitcode。
  • 清理构建文件夹并重建项目。
  • 确保所有框架都是使用相同的位码设置构建的。
ios flutter testflight ios18 xcode16
1个回答
0
投票

我的 MoeEngage 遇到了同样的问题,我通过在 Podfile 上添加一些代码来解决,也许你可以修改你的框架的框架路径

post_install do |installer|
  bitcode_strip_path = `xcrun --find bitcode_strip`.chop!

  def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
    framework_path = File.join(Dir.pwd, framework_relative_path)
    command = "#{bitcode_strip_path} #{framework_path} -r -o #{framework_path}"
    puts "Stripping bitcode: #{command}"
    system(command)
  end

  framework_paths = [
    "Pods/MoEngage-iOS-SDK/Frameworks/MoEngage.xcframework/ios-arm64_armv7/MoEngage.framework/MoEngage",
    "Pods/MoEngage-iOS-SDK/Frameworks/MOAnalytics.xcframework/ios-arm64_armv7/MOAnalytics.framework/MOAnalytics",
    "Pods/MoEngage-iOS-SDK/Frameworks/MoEngageCore.xcframework/ios-arm64_armv7/MoEngageCore.framework/MoEngageCore",
    "Pods/MoEngage-iOS-SDK/Frameworks/MOMessaging.xcframework/ios-arm64_armv7/MOMessaging.framework/MOMessaging",
    "Pods/MORichNotification/Frameworks/MORichNotification.xcframework/ios-arm64_armv7/MORichNotification.framework/MORichNotification"
  ]

  framework_paths.each do |framework_relative_path|
    strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.