首页 > 解决方案 > React Native iOS 发布构建链接问题

问题描述

我最近将我的项目从 rn 0.57.x 升级到了 0.60.5。现在我无法成功创建发布版本。它失败了clang: error: linker command failed with exit code 1。似乎失败的原因是使用发布方案时不会构建 pods 项目的静态库。

但是,使用调试方案构建(或在我的升级前 rn 0.57 项目上使用发布方案)会在构建输出文件夹中生成丢失的 .a 文件,并且一切正常。

我尝试了其他帖子中的几个建议修复,但我无法克服错误。我在本地和我的 MS App Center CI 上都有同样的问题。我一直在互联网上挖掘并花了几天时间摆弄 XCode 构建设置而没有解决方案。

我在用:

出于对我的 rn 升级技能的好奇,我使用 rn cli init 创建了一个全新的 0.60.5 项目。令我惊讶的是,新的示例项目也没有构建,并且失败并显示相同的消息。 https://bitbucket.org/geekazoid_at/rn60test(初始提交是 0.60.5,提交 30545e3 是 0.61.0-rc.0,两者都以同样的方式失败。)

我坚信,如果我可以构建 rn60test,我也将能够修复我的项目构建问题。随意检查它并运行xcodebuild它或尝试在 XCode 中构建它(在发布方案中两者都以相同的方式失败)。

我仍然不相信这可能是一个错误,仅仅是因为问题发生在如此基本的任务中,它不可能被忽视。所以我最终来到这里,因为 Github 建议“问题”应该放在 stackoverflow 上。

我不明白为什么发布版本在升级后会突然产生不同的工件(缺少静态库)。这是构建输出的一部分:

ld: warning: directory not found for option '-L/Users/vsts/Library/Developer/Xcode/DerivedData/MyAwesomeProject-fofogldymcvznxdtbzasfqctwyio/Build/Intermediates.noindex/ArchiveIntermediates/OperatorApp/BuildProductsPath/Release-iphoneos/CocoaLumberjack'
... more ld -L warnings...
... more ld -L warnings...
... more ld -L warnings...
ld: warning: directory not found for option '-L/Users/vsts/Library/Developer/Xcode/DerivedData/MyAwesomeProject-fofogldymcvznxdtbzasfqctwyio/Build/Intermediates.noindex/ArchiveIntermediates/OperatorApp/BuildProductsPath/Release-iphoneos/react-native-splash-screen'
ld: warning: directory not found for option '-L/Users/vsts/Library/Developer/Xcode/DerivedData/MyAwesomeProject-fofogldymcvznxdtbzasfqctwyio/Build/Intermediates.noindex/ArchiveIntermediates/OperatorApp/BuildProductsPath/Release-iphoneos/yoga'
ld: warning: directory not found for option '-Fode_modules'
ld: warning: directory not found for option '-Feact-native-background-fetchios'
ld: library not found for -lCocoaLumberjack
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** ARCHIVE FAILED **


The following build commands failed:
    Ld /Users/vsts/Library/Developer/Xcode/DerivedData/MyAwesomeProject-fofogldymcvznxdtbzasfqctwyio/Build/Intermediates.noindex/ArchiveIntermediates/OperatorApp/IntermediateBuildFilesPath/MyAwesomeProject.build/Release-iphoneos/MyAwesomeProject.build/Objects-normal/armv7/MyAwesomeProject normal armv7
    Ld /Users/vsts/Library/Developer/Xcode/DerivedData/MyAwesomeProject-fofogldymcvznxdtbzasfqctwyio/Build/Intermediates.noindex/ArchiveIntermediates/OperatorApp/IntermediateBuildFilesPath/MyAwesomeProject.build/Release-iphoneos/MyAwesomeProject.build/Objects-normal/arm64/MyAwesomeProject normal arm64

标签: iosxcodereact-native

解决方案


我在这个月更新了我的应用程序(0.57 -> 0.60.5),我使用了这个链接:

https://react-native-community.github.io/upgrade-helper/

回滚您所做的所有更新,然后尝试一下。

更新后,卸载您的应用程序并再次安装。


推荐阅读