xcode16 打包报错bitcode

第一步在:targets中将搜索bitcode 将enable bitcode设置成NO

第二步如果是cocopods管理的第三方库,可以再podfile文件中添加:

objectivec 复制代码
post_install do |installer|
  
#  解决xcode16打包的bitcode问题
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/YYSocketKit/YYSocketKit/Classes/Framework/YYSocketIOKit.framework/YYSocketIOKit",       # 替换为实际路径
   "Pods/AliPlayerSDK_iOS/AlivcConan.framework/AlivcConan",               # 替换为实际路径
   "Pods/AliPlayerSDK_iOS/AliyunMediaDownloader.framework/AliyunMediaDownloader", # 替换为实际路径
   "Pods/AliPlayerSDK_iOS/AliyunPlayer.framework/AliyunPlayer",           # 替换为实际路径
   "Pods/HyphenateLite/HyphenateLite.framework/HyphenateLite",        # 替换为实际路径
   "Pods/LQBaseLib/LQBaseLib/Classes/Vendor/RobotPenSDK/RbtBezierLib.framework/RbtBezierLib",            # 替换为实际路径
   "Pods/LQBaseLib/LQBaseLib/Classes/Vendor/RobotPenSDK/RbtCloudRecog.framework/RbtCloudRecog",          # 替换为实际路径
   "Pods/LQBaseLib/LQBaseLib/Classes/Vendor/RobotPenSDK/RobotPen.framework/RobotPen",                    # 替换为实际路径
   "Pods/LQBaseLib/LQBaseLib/Classes/Vendor/RobotPenSDK/RobotSimpleWhiteboard.framework/RobotSimpleWhiteboard", # 替换为实际路径
   "Pods/AliPlayerSDK_iOS/alivcffmpeg.framework/alivcffmpeg"              # 替换为实际路径
   # 确保路径正确,否则脚本会执行失败
 ]

 framework_paths.each do |framework_relative_path|
   strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
 end
  1. 找到正确的框架路径

    • 这些路径通常在 Pods/ 目录下,对应着各个第三方库的pod名称。

    • 最可靠的方法是去你项目目录下的 Pods 文件夹里手动查看 ,确认每个报错框架的具体路径。例如,YYSocketIOKit 框架的实际路径可能类似于 Pods/YYSocketIOKit/YYSocketIOKit.framework/YYSocketIOKit

    • 路径结构通常是 "Pods/[Pod名称]/[框架名].framework/[框架名]"注意最后一个 [框架名] 是没有后缀的可执行文件

  2. 执行 Pod Install :保存 Podfile 的修改后,在终端中运行 pod installpod update。这会应用更改,并在安装完成后执行你添加的脚本。如果脚本执行成功,你会在终端日志中看到类似 "Stripping bitcode: ..." 的输出信息。

  3. 重新打包 :完成后,清理构建文件夹 (Clean Build Folder, Shift+Cmd+K) ,然后重新进行 Archive 和上传。

验证 Bitcode 是否已移除

你可以在终端中使用以下命令来检查指定框架的 Bitcode 是否已被成功移除123:

bash

复制代码
otool -l <framework_path> | grep __LLVM | wc -l
  • <framework_path> 替换为框架的实际路径(例如 Pods/YYSocketIOKit/YYSocketIOKit.framework/YYSocketIOKit)。

  • 如果命令返回 0,则表示该框架的 Bitcode 已被成功移除。