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

iOS项目添加JWTDecode后编译报错:framework not found

解决iOS分享扩展中JWTDecode.framework找不到的编译错误

我之前碰到过类似的分享扩展依赖Pods的问题,结合你的情况,给你几个针对性的排查和解决步骤,应该能搞定这个报错:

1. 先确认Podfile的Target配置是否精准

首先检查你的Podfile里的分享扩展target名称是否和Xcode里的扩展Target完全匹配(大小写、连字符都要一致)。如果主App和扩展是分开的target,Podfile的结构应该是这样的:

target 'YourMainAppName' do
  # 主App需要的Pods(如果有的话)
end

target 'YourShareExtensionName' do
  pod 'JWTDecode', '~> 2.3'
end

如果你的项目用了use_frameworks!,确保这个声明放在所有target的外面(全局生效),或者在扩展target里也单独声明。

2. 彻底清理Pods并重新安装

很多时候是Pods缓存或者安装不彻底导致的,按这个流程来:

  • 关闭Xcode
  • 在项目目录执行:rm -rf Podfile.lock Pods
  • 重新执行pod install,注意看终端输出,确认针对分享扩展target的JWTDecode安装过程没有报错
  • 必须打开生成的.xcworkspace文件,而不是原来的.xcodeproj——这是很多人容易踩的坑!

3. 检查分享扩展Target的Build Settings

这一步很关键,确保Xcode能找到Pods的framework:

  • 选中分享扩展Target,进入Build Settings
  • 找到Framework Search Paths,确认里面包含$(inherited)和${PODS_ROOT}/JWTDecode,并且设置为recursive
  • 找到Other Linker Flags,确保里面有$(inherited)——这个配置会自动引入Pods的链接规则,缺失的话就会找不到framework

4. 验证Embed Frameworks配置

有时候只在Link Binaries With Libraries里有Pods的framework还不够,还要检查:

  • 进入分享扩展Target的Build Phases
  • 查看Embed Frameworks是否包含JWTDecode.framework,并且设置为Embed & Sign(CocoaPods通常会自动添加,但手动确认下更稳妥)

5. 重置Xcode缓存

如果以上都不行,试试清空Xcode的缓存:

  • 执行rm -rf ~/Library/Developer/Xcode/DerivedData
  • 重启Xcode,然后Clean Build Folder(快捷键Cmd+Shift+K),再重新编译

额外技巧:添加inherit! :search_paths

如果你的扩展target和主App有依赖关系,可以在Podfile的扩展target里加上inherit! :search_paths,让它继承主App的Pods搜索路径:

target 'YourShareExtensionName' do
  inherit! :search_paths
  pod 'JWTDecode', '~> 2.3'
end

按这些步骤走下来,应该能解决ld: framework not found JWTDecode的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:41:18