ios - 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 构建设置而没有解决方案。
我在用:
- 可可豆:1.7.5
- X代码:10.3 10g8
出于对我的 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
解决方案
我在这个月更新了我的应用程序(0.57 -> 0.60.5),我使用了这个链接:
https://react-native-community.github.io/upgrade-helper/
回滚您所做的所有更新,然后尝试一下。
更新后,卸载您的应用程序并再次安装。
推荐阅读
- numpy - 将批处理矩阵(3d 数组,每个矩阵是一个图像)重塑为 2d(图像网格)
- solr - Solr 查询结果缓存工作机制是什么?
- c# - 将字符串转换为 DateTime 的问题
- python - Python-使用for循环获取多个输入并通过if条件打印多个输出
- python-3.x - 给定父模块,更改子模块的日志级别
- acumatica - 在 Acumatica 自定义代码中保留销售订单行
- scala - 我需要在 Scala 中创建一个新的 DF 并附加我已经拥有的行。我该怎么做呢?
- sql - SQL Server 视图中导致重复
- jquery - 尽管数量已更改,但库存未更新
- npm - Yarn 不会使用指定的注册表