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

使用Pods/SPM构建64位架构项目,旧依赖不支持arm64求解决方案

针对旧项目依赖不支持arm64真机的解决方案

一、CocoaPods依赖处理

  • 优先更新依赖版本:直接查看对应Pod的仓库,确认是否有支持arm64的新版本,多数旧库后续会补充64位支持,这是成本最低的解决方式。
  • 手动修改Pod架构配置:
    1. 找到目标Pod的podspec文件,修改s.ios.deployment_target到支持arm64的最低版本(比如iOS 11+),同时添加s.ios.archs = ['arm64', 'x86_64']。
    2. 若无法修改podspec,进入项目Pods目录,打开对应库的Xcode项目,修改Build Settings:
      • 将Architectures设为$(ARCHS_STANDARD)
      • 确保Build Active Architecture Only在Release模式下为NO
      • 搜索Valid Architectures(Xcode12+需手动添加该选项),加入arm64
  • 替换为兼容替代库:如果原库已废弃,选择功能匹配且全面支持arm64的库替换,比如旧JSON解析库可替换为SwiftyJSON。

二、Swift Package Manager依赖处理

  • 切换包版本/分支:检查SPM包的仓库,是否有专门支持arm64的分支或新版本,在Xcode的Package Dependencies里切换对应版本。
  • 本地修改包代码:将SPM包克隆到本地,修改其项目的架构配置(参考CocoaPods的架构修改步骤),然后在Xcode中把依赖改为本地路径导入,自定义编译参数。
  • 编译为静态库导入:将不支持arm64的SPM包单独编译成支持arm64的静态库,再手动将库文件和头文件导入项目,替代SPM依赖。

三、项目层面的强制兼容操作

  • 指定真机编译架构:在项目主Target的Build Settings中:
    • 将Architectures设为arm64(仅针对真机配置)
    • 确保Excluded Architectures中没有arm64项
  • 合并二进制架构:如果依赖只有x86_64的二进制文件,尝试获取或自行编译arm64版本,用lipo命令合并为通用架构:
    lipo -create /path/to/x86_64/library /path/to/arm64/library -output /path/to/universal/library
    
    替换原依赖的库文件即可。
  • 降级Xcode版本:Xcode14对旧架构的兼容性限制更严格,若旧方案在Xcode13及以下有效,可考虑降级到对应版本,低版本对arm64的兼容处理更宽松。

四、关于Xcode14.2无Rosetta选项的说明

Intel芯片Mac本身基于x86架构,Rosetta是为Apple Silicon Mac适配x86应用设计的,因此Intel Mac上的Xcode不存在“用Rosetta打开”的选项,属于正常情况,无需额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:10:36