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

Xcode 9归档报错:Use of undeclared type 'MyCustomType',真机编译正常求助

Xcode 9归档报错Use of undeclared type 'MyCustomType'但真机编译正常的原因分析

碰到过好多次这种归档和真机编译不一致的坑了,我来给你捋捋几个最常见的原因:

  • Framework的Target Membership配置遗漏
    很多时候我们只在Debug配置下给主项目勾选了MyCustomType framework的成员资格,但归档用的Release配置没勾!你可以选中主项目的文件,打开右侧的文件检查器,拉到Target Membership部分,切换到Release配置,看看MyCustomType对应的复选框有没有打勾,大概率是这里漏了。

  • Build Settings里的搜索路径配置差异
    Debug和Release的Framework Search Paths可能不一样。真机Debug时能找到framework的存放路径,但归档用的Release配置里没把这个路径加进去,导致编译器找不到MyCustomType。去主项目的Build Settings里搜索Framework Search Paths,对比Debug和Release的设置,确保Release里也包含了MyCustomType的正确路径,推荐用$(SRCROOT)这类相对路径变量,避免硬编码。

  • Framework的编译版本不匹配
    你的MyCustomType framework可能只编译了Debug版本,而归档时主项目用的是Release配置,自然链接不到对应的framework版本。去这个framework的项目里,检查Build Settings的Build Configuration,确认它也生成了Release版本,并且主项目在Release配置下引用的是这个Release版的framework。

  • Scheme的归档阶段配置缺失
    你当前使用的Scheme,在归档阶段可能没把MyCustomType framework的Target包含进去。点击Xcode顶部的Scheme,选择Edit Scheme,切换到Archive标签,看看Build列表里有没有这个framework的Target,没有的话就加上,有时候真机运行时会自动关联,但归档需要手动配置。

  • Xcode 9的缓存bug
    Xcode 9的缓存机制偶尔会抽风,真机编译时缓存还能正常读取,但归档时缓存出了问题。试试按住Option键点击顶部的Product菜单,选择Clean Build Folder,然后去~/Library/Developer/Xcode/DerivedData目录下删除对应项目的缓存文件,之后再重新归档试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:56:38