xcode 16 上传到 appStore 报错包含 bitcode

532 阅读1分钟

修改PodFile文件

添加以下代码

# PodFile文件
  # post_install 钩子,在cocoapods 安装完成后执行
  post_install do |installer|
    # 解决第三方包包含bitcode,上传AppStore失败问题
    # 通过命令行查找 bitcode_strip 工具的路径,并去掉末尾的换行符。bitcode_strip 是一个用于从框架中剥离 Bitcode 的工具。
    bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
    # 剥离Bitcode 接收 Bitcode 剥离工具的路径和框架相对路径
    def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
      # 构建并执行命令  剥离指定框架的 Bitcode
      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/AgoraAIDenoiseExtension.xcframework/ios-arm64_armv7/AgoraAIDenoiseExtension.framework/AgoraAIDenoiseExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraCIExtension.xcframework/ios-arm64_armv7/AgoraCIExtension.framework/AgoraCIExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraCore.xcframework/ios-arm64_armv7/AgoraCore.framework/AgoraCore",
      "Pods/AgoraRtcEngine_iOS/AgoraDav1dExtension.xcframework/ios-arm64_armv7/AgoraDav1dExtension.framework/AgoraDav1dExtension",
      "Pods/AgoraRtcEngine_iOS/Agorafdkaac.xcframework/ios-arm64_armv7/Agorafdkaac.framework/Agorafdkaac",
      "Pods/AgoraRtcEngine_iOS/Agoraffmpeg.xcframework/ios-arm64_armv7/Agoraffmpeg.framework/Agoraffmpeg",
      "Pods/AgoraRtcEngine_iOS/AgoraFullAudioFormatExtension.xcframework/ios-arm64_armv7/AgoraFullAudioFormatExtension.framework/AgoraFullAudioFormatExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraReplayKitExtension.xcframework/ios-arm64_armv7/AgoraReplayKitExtension.framework/AgoraReplayKitExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraRtcKit.xcframework/ios-arm64_armv7/AgoraRtcKit.framework/AgoraRtcKit",
      "Pods/AgoraRtcEngine_iOS/AgoraSoundTouch.xcframework/ios-arm64_armv7/AgoraSoundTouch.framework/AgoraSoundTouch",
      "Pods/AgoraRtcEngine_iOS/AgoraSpatialAudioExtension.xcframework/ios-arm64_armv7/AgoraSpatialAudioExtension.framework/AgoraSpatialAudioExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraSuperResolutionExtension.xcframework/ios-arm64_armv7/AgoraSuperResolutionExtension.framework/AgoraSuperResolutionExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraVideoProcessExtension.xcframework/ios-arm64_armv7/AgoraVideoProcessExtension.framework/AgoraVideoProcessExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraFDExtension.xcframework/ios-arm64_armv7/AgoraFDExtension.framework/AgoraFDExtension",
      "Pods/AgoraRtcEngine_iOS/AgoraVideoSegmentationExtension.xcframework/ios-arm64_armv7/AgoraVideoSegmentationExtension.framework/AgoraVideoSegmentationExtension"
    ]
    
    # 遍历数组,调用剥离函数
    framework_paths.each do |framework_relative_path|
      strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
    end
  end

clean后 安装cocoa依赖

  • xcode cmd + shift + k 执行clean
  • 项目根目录下执行 pod install

PodFile文件中添加的代码是由pods_install钩子触发,所以要安装依赖才可生效