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

创建CocoaPod时添加.xcassets至podspec遇验证错误

解决CocoaPod验证时的xcassets资源引用错误

我之前也碰到过一模一样的问题,这是因为你的resource_bundles配置重复匹配了xcassets目录里的Contents.json文件,导致CocoaPods处理资源时出现冲突。先把你遇到的错误贴出来:

- ERROR | [iOS] unknown: Encountered an unknown error (Unable to find other source ref for /Users/jhgonzalez/Desktop/MyApp/Me/cocoaPod/JCore-ui/LibraryComponents/Resources/JCore-ui.xcassets/Contents.json for target JCore-ui.) during validation.

问题根源

你在resource_bundles里同时声明了*.xcassets和**/*.json两个规则,而xcassets目录本身就自带Contents.json文件。CocoaPods会先完整处理整个xcassets资源包,接着又试图单独处理这个目录里的json文件,这种重复引用就引发了验证错误。

解决步骤

  1. 简化resource_bundles配置
    完全不需要单独匹配json文件,xcassets作为资源bundle会被完整打包,里面的所有子文件(包括Contents.json)都会被正确识别和处理。把你的配置改成:

    s.resource_bundles = { 'JCore' => ['LibraryComponents/Resources/*.xcassets'] }
    
  2. 如果存在独立的JSON文件(不在xcassets内)
    要是你的Resources目录下还有其他不属于xcassets的json文件,建议把它们放到单独的子目录(比如LibraryComponents/Resources/StandaloneJSON/),然后明确指定路径,彻底避免和xcassets里的文件冲突:

    s.resource_bundles = { 
      'JCore' => [
        'LibraryComponents/Resources/*.xcassets',
        'LibraryComponents/Resources/StandaloneJSON/**/*.json'
      ] 
    }
    
  3. 清理缓存后重新验证
    缓存有时候会残留旧的配置信息,执行以下命令清理后再跑验证:

    pod cache clean --all
    pod spec lint JCore.podspec --verbose
    

按照上面的步骤调整后,应该就能顺利通过podspec验证了。

内容的提问来源于stack exchange,提问作者Josué H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:27:09