我在将 Flutter 应用程序分发到使用 Agora SDK 的 App Store 时遇到问题。分发过程失败,并出现以下资产验证错误,表明多个 Agora 框架文件中存在 bitcode:
Asset validation failed
Invalid Executable. The executable 'Runner.app/Frameworks/AgoraReplayKitExtension.framework/AgoraReplayKitExtension' contains bitcode. (ID: 10f7ca5e-1101-4206-b6c1-d1668fc290a4)
* Asset validation failed
Invalid Executable. The executable 'Runner.app/Frameworks/AgoraRtcKit.framework/AgoraRtcKit' contains bitcode. (ID: 449470b6-da31-4f54-808d-6bcc360f898e)
我尝试使用 Podfile 中的脚本从 Agora 框架中删除位码,但错误仍然存在。这是我尝试剥离位码的 Podfile 的相关部分:
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/AgoraRtcEngine_iOS/ReplayKit/Frameworks/AgoraReplayKitExtension.framework/AgoraReplayKitExtension",
"Pods/AgoraRtcEngine_iOS/RtcBasic/Frameworks/AgoraRtcKit.framework/AgoraRtcKit",
]
framework_paths.each do |framework_relative_path|
strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
end
尽管如此,我仍然收到位码错误。我可能缺少什么,如何解决此问题以成功分发我的应用程序?
附加信息:
Podfile.lock:
任何帮助将不胜感激!
您遇到的与位码相关的资产验证失败的问题是因为您的应用程序由于某些框架(AgoraReplayKitExtension.framework 和 AgoraRtcKit.framework)中包含位码而被拒绝。
Apple 自 Xcode 14 起已弃用位码支持,包含位码的应用程序可能会在提交过程中失败。要解决此问题,您需要确保在项目设置中禁用位码。
以下是解决该问题的步骤:
第 1 步:在 Xcode 中禁用 Bitcode
1.在 Xcode 中打开您的项目。
2.在项目导航器中,选择您的项目(左侧边栏中的根项目)。
3.选择你的目标(通常命名为Runner)。
4.转到“构建设置”选项卡。
5.在搜索栏中,输入启用位码。
确保调试和发布配置的启用位码均设置为否。
第2步:验证Agora SDK兼容性
确保您使用的是最新版本的 Agora SDK,因为旧版本可能不符合位码弃用。检查 Agora 官方文档以获取更新并确保与 Xcode 14+ 兼容。
第 3 步:确保在 Podspec 中禁用 Bitcode(如果使用 CocoaPods)
第 4 步:第 4 步:清洁和构建