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

Xcode 15 旧Objective-C项目模拟器运行失败但归档成功求助

解决方案

1. 排查AFNetworking库的架构与集成问题

  • 先确认你用的AFNetworking库是否支持模拟器的x86_64架构,直接在终端执行以下命令查看:
    lipo -info /path/to/AFNetworking-library.a
    
    如果输出里没有x86_64,说明该库仅支持真机,需要重新编译包含x86_64的版本,或者改用CocoaPods集成(自动适配多架构)。
  • 若你是直接将库拖入项目,去Build Phases > Link Binary With Libraries中检查AFNetworking库是否正确添加、路径是否有效,避免因路径失效导致找不到库。

2. 修正架构配置,弃用VALID_ARCHS

  • 删除手动设置的VALID_ARCHS,Xcode 12+后该配置已被弃用,改用EXCLUDED_ARCHS并区分构建环境:
    • 针对模拟器使用的Debug配置:搜索EXCLUDED_ARCHS,展开后为Debug设置arm64;用于归档的Release配置保持默认空值即可。
    • 主项目的Build Settings > Architectures需设置为Standard Architectures (arm64, x86_64),不要手动指定单一架构。

3. 解决执行路径与lipo报错

  • 设置EXCLUDED_ARCHS=arm64后出现"Executable Path is a Directory"错误,检查Build Settings > Packaging > Executable Path是否被错误修改,默认应为$(EXECUTABLE_NAME),不要手动设置为目录路径。
  • 归档时的lipo: no input files specified错误,通常是Release配置也排除了arm64,导致未生成有效可执行文件。确保Release的EXCLUDED_ARCHS为空,且库本身包含arm64架构(归档适配真机)。

4. 清理缓存后重新构建

  • 按以下步骤彻底清理缓存:
    1. 关闭Xcode,删除项目目录下的DerivedData文件夹(可通过Xcode菜单File > Project Settings找到路径)。
    2. 打开项目,按下Cmd+Shift+K执行Clean Build Folder。
    3. 选择模拟器目标,重新执行构建。

5. 同步子项目的架构配置

  • 你集成的3个子项目/框架,需与主项目的架构配置保持一致:
    • 打开子项目的Build Settings,确认Architectures和EXCLUDED_ARCHS设置与主项目匹配。
    • 检查子项目输出的库是否包含多架构,避免子项目仅编译真机架构导致模拟器链接失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:00:15