只有在发布版本中,clang会报错:找不到文件或目录:'/Users/vagrant/Library/Developer/Xcode/DerivedData'。

4
在调试模式下构建项目没有问题,但当我切换到Release模式时,出现了以下错误:

clang: error: no such file or directory: '/Users/vagrant/Library/Developer/Xcode/DerivedData/myProject-afhcainiqkrasrazkmlyzpkzbhne/Build/Intermediates.noindex/ArchiveIntermediates/skimitarDevelopment/BuildProductsPath/Release-iphoneos/libRNGoogleSignIn.a'

我不确定为什么会出现这个错误,因为`libRNGoogleSignIn.a`在所有目标的构建阶段(Build Phases)中都已经链接。
这是我第一次遇到这个问题,我尝试过清理我的项目、删除DerivedData文件夹、完全退出(重新启动)XCode,但都没有成功。
错误信息中提到的`libRNGoogleSignIn.a`文件是指这个项目的产品(https://github.com/Asimetriq/rn-google-sign-in/tree/master/ios),它作为库被添加到我的主项目中。我右键点击Libraries,选择将RNGoogleSignIn.xcodeproj添加到我的项目中,然后在Build Phases中的链接步骤中添加libRNGoogleSignIn.a
我不确定这是否有关,但是该文件被用红色突出显示:enter image description here。文件已经链接,但我不知道为什么它从未出现在DerivedData中。 enter image description here
3个回答

4

问题出在这里。我的主要项目目标是iOS 10.3,而这个新创建的cocoa touch静态库默认针对iOS 11+。

只要我将库的目标版本设置为较低版本,即在我的情况下是10,它就可以正确构建。


这很有帮助,为了记录,请确保为Xcode项目和库目标设置正确的版本。即点击灰色的斗兽场图标,选择构建设置,向下滚动到iOS部署目标设置(或搜索它)。 - chris
我尝试了很多次这个解决方案,对我有效的是先单独构建RNGoogleSignIn成功,然后再构建整个项目。 - Hussam Kurd

0

RNGoogleSignin的默认是7.0,将其更改至少为8.0应该可以解决问题。


0

另一个解决方案可能是删除派生数据目录并重新构建


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接