You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Video SDK v3.5.0 构建Any iOS Device(arm64,armv7)归档包失败

iOS Video SDK v3.5.0 armv7架构归档构建失败解决方案

根因说明

报错为Flipper调试框架不支持armv7架构导致的链接错误。Flipper是开发阶段使用的调试工具,官方仅提供arm64、x86_64架构的二进制实现,2021年起已停止armv7架构支持,因此同时编译armv7+arm64架构的归档包时,会找不到armv7架构下的Flipper相关符号。
你本地arm64架构编译正常,是因为Flipper提供了对应arm64的符号实现。

解决方案

方案1:移除armv7架构支持(优先推荐)

armv7架构仅对应iPhone 5及更早的旧设备,当前市面设备占有率不足1%,如果你的团队没有兼容旧设备的需求,直接移除armv7架构即可快速解决问题,生成的包可覆盖所有iPhone 5s及以后的主流设备:

  • 打开Xcode项目,进入Build Settings -> Architectures配置项
  • 将Architectures的值从$(ARCHS_STANDARD)修改为仅arm64
  • 在Excluded Architectures配置中,针对Any iOS Device添加armv7
  • 重新执行归档构建即可

方案2:保留armv7架构,Release模式禁用Flipper

如果确实需要兼容armv7架构的旧设备,需要在Release构建模式下完全移除Flipper相关依赖:

  1. 修改Podfile,在post_install钩子中添加Release模式下过滤Flipper编译参数的逻辑:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      if config.name != 'Debug'
        config.build_settings['OTHER_CFLAGS'] ||= ['$(inherited)']
        config.build_settings['OTHER_CFLAGS'] = config.build_settings['OTHER_CFLAGS'].reject { |flag| flag.downcase.include? 'flipper' }
      end
    end
  end
end
  1. 修改AppDelegate代码,将所有Flipper相关的头文件引用、初始化代码用DEBUG宏包裹,确保Release模式下不会引用Flipper相关类:
// 头文件引用部分添加Debug判断
#ifdef DEBUG
#import <FlipperKit/FlipperClient.h>
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
#import <SKIOSNetworkAdapter/SKIOSNetworkAdapter.h>
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Flipper初始化部分添加Debug判断
  #ifdef DEBUG
    FlipperClient *client = [FlipperClient sharedClient];
    SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
    [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
    [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
    [client addPlugin:[FlipperKitReactPlugin new]];
    [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
    [client start];
  #endif

  // 其余原有初始化逻辑不变
  return YES;
}
  1. 执行pod install重新安装依赖后,再次执行归档构建即可

内容的提问来源于stack exchange,提问作者Ramesh Vaidyanathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:45:03