You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Debug模式构建正常,切换至Release模式出现clang库文件找不到错误

解决Release模式归档找不到libRNGoogleSignIn.a的问题

我之前也踩过类似的Release构建找不到静态库的坑,给你几个实际有效的排查和解决方向:

  • 检查Release模式的Library Search Paths
    打开项目的Build Settings,切换到Release配置,确认Library Search Paths里包含了libRNGoogleSignIn.a所在的路径。很多时候Debug和Release的搜索路径是分开配置的,可能你只在Debug里加了路径,Release没同步过去。另外注意路径尽量用相对路径或者完整绝对路径,避免Xcode解析出错。

  • 验证RNGoogleSignIn的Release编译配置:
    找到RNGoogleSignIn的子项目,进入它的Build Settings,确认Release模式下的编译是正常启用的。可以单独尝试编译这个子项目的Release版本,如果编译失败,那就是第三方库本身的Release配置有问题,需要先修复这个库的编译问题再归档主项目。

  • 彻底清理构建缓存:
    直接删除报错里提到的整个DerivedData目录:

    rm -rf /Users/vagrant/Library/Developer/Xcode/DerivedData/myProject-afhcainiqkrasrazkmlyzpkzbhne/
    

    然后回到Xcode,执行Cmd+Shift+K清理Build Folder,再重新尝试归档。有时候缓存里的旧文件会干扰Release构建,清理后大概率能解决这类找不到文件的问题。

  • 检查Scheme的Archive配置:
    点击Xcode顶部的Scheme,选择Edit Scheme,切换到Archive标签页,确认Build Configuration是Release,并且在Build列表里勾选了RNGoogleSignIn这个目标。如果Scheme里没包含这个库的Release编译,Xcode归档时就不会生成对应的静态库文件。

  • 确认Build Phases的依赖顺序:
    在主项目的Build Phases里,确保Target Dependencies中包含RNGoogleSignIn,并且它的顺序在Link Binary With Libraries之前。如果依赖顺序错了,Xcode会先尝试链接静态库,但此时库还没编译生成,自然会报找不到文件的错误。

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

火山引擎 最新活动