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

Xcode 13创建带第三方依赖的自定义Framework通过CocoaPods导入报符号缺失错误

问题解决步骤
    1. 校验依赖版本一致性
      你编译testSDK时使用的Alamofire版本必须和podspec中声明的版本完全匹配,建议将podspec中Alamofire依赖的范围符~>删除,锁死精确版本:
s.dependency 'Alamofire', '5.4.1'

避免用户项目中其他依赖拉高Alamofire版本导致API符号不匹配。

    1. 开启BUILD_LIBRARY_FOR_DISTRIBUTION配置
      打包testSDK之前,在你的Framework项目的Build Settings中找到Build Libraries for Distribution,将值设置为YES。这个配置是Swift Framework实现二进制兼容的必需项,未开启的情况下,不同Xcode版本编译的产物会出现符号不匹配问题,本地同环境编译正常但跨环境集成就会报错。
    1. 校验Framework链接类型
      确认你打包testSDK时,对Alamofire等第三方依赖的链接方式:
    • 如果你是动态链接Alamofire(没有把Alamofire符号打进testSDK),podspec中声明Alamofire依赖是正确的,同时要确保打包时没有设置ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES为YES,避免符号重复。
    • 如果你是静态链接Alamofire(已经把Alamofire符号打进testSDK),需要删除podspec中的Alamofire依赖声明,否则用户集成时会重复引入Alamofire导致符号冲突。
    1. 修正架构配置
      删除podspec中如下两段配置:
s.pod_target_xcconfig = {
 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64'
 }
 s.user_target_xcconfig = { 
 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' 
 }

该配置是旧版Xcode适配M1芯片的临时方案,Xcode 14及之后版本已经原生支持模拟器arm64架构,强制排除会导致架构不匹配引发符号缺失问题,替换为如下配置即可:

s.pod_target_xcconfig = {
  'ONLY_ACTIVE_ARCH' => 'NO'
}
    1. 清理缓存重新集成
      用户集成前执行如下操作清空缓存:
  1. 清空Xcode Derived Data目录
  2. 执行pod deintegrate删除旧的Pod配置
  3. 执行pod cache clean --all清空本地Pod缓存
  4. 重新执行pod install集成

内容的提问来源于stack exchange,提问作者Tolga İskender

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:06:03